Add a pseudoclass that matches img elements that are backed by an attachment
[WebKit-https.git] / Source / WebCore / ChangeLog
index 573a56f..bb2e019 100644 (file)
+2018-11-07  Dan Bernstein  <mitz@apple.com>
+
+        Add a pseudoclass that matches img elements that are backed by an attachment
+        https://bugs.webkit.org/show_bug.cgi?id=191286
+        <rdar://problem/45823554>
+
+        Reviewed by Dean Jackson.
+
+        Test: fast/css/has-attachment.html
+
+        Added a :has-attachment pseudoclass, enabled only when the attachment element is enabled at
+        runtime, that matches elements (currently only img elements qualify) that have an attachment
+        element in their shadow DOM.
+
+        * css/CSSSelector.cpp:
+        (WebCore::CSSSelector::selectorText const): Handle the new PseudoClassHasAttachment value.
+        * css/CSSSelector.h: Added a new value to the PseudoClassType enum.
+
+        * css/SelectorChecker.cpp:
+        (WebCore::SelectorChecker::checkOne const): Check the new PseudoClassHasAttachment value
+          using the new hasAttachment test function.
+
+        * css/SelectorCheckerTestFunctions.h:
+        (WebCore::hasAttachment): Added. Tests if the element is an img element that has an
+          attachment.
+
+        * css/SelectorPseudoClassAndCompatibilityElementMap.in: Added has-attachment.
+
+        * css/parser/CSSParserContext.cpp:
+        (WebCore::CSSParserContext::CSSParserContext): Initialize new attachmentEnabled member based
+          on RuntimeEnabledFeatures.
+        (WebCore::operator==): Compare new attachmentEnabled member.
+        * css/parser/CSSParserContext.h:
+        (WebCore::CSSParserContextHash::hash): Include new attachmentEnabled member.
+
+        * css/parser/CSSSelectorParser.cpp:
+        (WebCore::CSSSelectorParser::consumePseudo): Reject :has-attachment if the attachment
+          element is not enabled.
+
+        * cssjit/SelectorCompiler.cpp:
+        (WebCore::SelectorCompiler::addPseudoClassType): Handle PseudoClassHasAttachment.
+
+2018-11-07  Don Olmstead  <don.olmstead@sony.com>
+
+        Make generic MainThreadSharedTimer implementation
+        https://bugs.webkit.org/show_bug.cgi?id=191327
+
+        Reviewed by Michael Catanzaro.
+
+        No new tests. No change in behavior.
+
+        Moves generic implementation for MainThreadSharedTimerGlib.cpp into
+        MainThreadSharedTimer.cpp.
+
+        * platform/MainThreadSharedTimer.cpp:
+        (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
+        (WebCore::MainThreadSharedTimer::setFireInterval):
+        (WebCore::MainThreadSharedTimer::stop):
+        (WebCore::MainThreadSharedTimer::invalidate):
+        * platform/MainThreadSharedTimer.h:
+        * platform/SourcesGLib.txt:
+        * platform/glib/MainThreadSharedTimerGLib.cpp: Removed.
+
+2018-11-07  Ali Juma  <ajuma@chromium.org>
+
+        IntersectionObserverEntry doesn't keep JS wrappers of rects alive
+        https://bugs.webkit.org/show_bug.cgi?id=191330
+
+        Reviewed by Chris Dumez.
+
+        Retain wrappers of each rect in an IntersectionObserverEntry as long as the entry's wrapper
+        is alive, by adding these wrappers as opaque roots.
+
+        Test: intersection-observer/intersection-observer-entry-keeps-js-wrappers-of-rects-alive.html
+
+        * bindings/js/JSIntersectionObserverEntryCustom.cpp:
+        (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren):
+        * dom/DOMRectReadOnly.idl:
+        * page/IntersectionObserverEntry.h:
+        (WebCore::IntersectionObserverEntry::rootBounds const): Make this return a raw pointer instead of a RefPtr so that it
+        can be called in JSIntersectionObserverEntry::visitAdditionalChildren, which can be called from non-main threads.
+        (WebCore::IntersectionObserverEntry::boundingClientRect const): Ditto.
+        (WebCore::IntersectionObserverEntry::intersectionRect const): Ditto.
+
+2018-11-07  Simon Fraser  <simon.fraser@apple.com>
+
+        TileController::tileSize() should not have side effects
+        https://bugs.webkit.org/show_bug.cgi?id=191349
+
+        Reviewed by Zalan Bujtas.
+
+        Calling TileController::tileSize() would recompute a new tile size and set m_tileSizeLocked,
+        which caused test failures if logging was enabled when running tests.
+
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::tileSize const):
+        (WebCore::TileController::computeTileSize):
+        * platform/graphics/ca/TileController.h:
+        * platform/graphics/ca/TileGrid.cpp:
+        (WebCore::TileGrid::revalidateTiles):
+
+2018-11-07  Charlie Turner  <cturner@igalia.com>
+
+        [EME][GStreamer] Ensure key id buffers are present and simplify lifetime management of ClearKey class.
+        https://bugs.webkit.org/show_bug.cgi?id=191157
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        This is in preparation for moving the clearkey decryptor behind a
+        new decrypt API in CDMInstance, which will be sent into the
+        pipeline to handle key management and decryption. This is for a
+        later patch.
+
+        Covered by existing clear key tests in media/encrypted-media.
+
+        * platform/graphics/gstreamer/GStreamerCommon.h:
+        (WebCore::GstMappedBuffer::data const): Add a const data accessor,
+        since we are now providing operator=='s on const objects of this
+        class that need const access to the data pointer.
+        (WebCore::GstMappedBuffer::operator==): Add a swap of the new
+        equality operator so you don't have to remember to have the
+        GstBuffer on the RHS of the equality all the time.
+        (WebCore::operator==): Define an equality operator between Gst
+        buffers and WebCore's mapped buffers. Gst creates a ref and a
+        separate read view under the covers in the memcmp call, so we do
+        not need to map the buffer ourselves.
+        * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
+        (webkit_media_clear_key_decrypt_class_init): Remove setup/release
+        bindings.
+        (webkit_media_clear_key_decrypt_init): Initialize gcrypt cipher
+        here once instead of for every buffer to be decrypted.
+        (webKitMediaClearKeyDecryptorFinalize): And destroy the cipher
+        context when the decryptor is destroyed.
+        (webKitMediaClearKeyDecryptorFindAndSetKey): Factor out the key
+        retrieval and context setting in this method, call it for each
+        sample.
+        (webKitMediaClearKeyDecryptorDecrypt): Base key id buffer into
+        this function, and remove cipher creation / destroy methods.
+        * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
+        (webkit_media_common_encryption_decrypt_class_init): Remove
+        setup/release bindings.
+        (webkitMediaCommonEncryptionDecryptTransformInPlace): Ensure a key
+        id is present and pass it to the decrypt class method.
+        (webKitMediaCommonEncryptionDecryptDefaultSetupCipher): Deleted.
+        (webKitMediaCommonEncryptionDecryptDefaultReleaseCipher): Deleted.
+        * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
+
+2018-11-07  Frederic Wang  <fwang@igalia.com>
+
+        [Cairo] Move state change operations from GraphicsContextCairo to CairoOperations
+        https://bugs.webkit.org/show_bug.cgi?id=179610
+
+        Unreviewed build fix.
+
+        * platform/graphics/cairo/GraphicsContextCairo.cpp: Add missing include.
+
+2018-11-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        ServiceWorker Inspector: Uncaught Exception: null is not an object (evaluating 'resource.target.addResource')
+        https://bugs.webkit.org/show_bug.cgi?id=191339
+
+        Reviewed by Matt Baker.
+
+        * workers/service/ServiceWorkerJob.cpp:
+        (WebCore::ServiceWorkerJob::fetchScriptWithContext):
+        Use the Service Worker's identifier, not this static but otherwise unknown identifier.
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        sender.replaceTrack() fails with InvalidStateError if the transceiver.direction is "inactive"
+        https://bugs.webkit.org/show_bug.cgi?id=191202
+
+        Reviewed by Eric Carlson.
+
+        Covered by updated test.
+
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        (WebCore::RTCPeerConnection::removeTrack):
+        Update as per spec, in particular make sure to not stop the sender when removing the track.
+
+2018-11-06  Justin Fan  <justin_fan@apple.com>
+
+        [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
+        https://bugs.webkit.org/show_bug.cgi?id=191291
+
+        Reviewed by Myles Maxfield.
+
+        Test: webgpu/render-pipelines.html
+        Also update test webgpu/webgpu-basics.html to create a WebGPURenderPipeline.
+
+        Begin implementation of WebGPURenderPipeline and WebGPUSwapChain. A WebGPURenderPipeline is backed by a
+        GPURenderPipeline, created lazily using the properties of the passed-in WebGPURenderPipelineDescriptor.
+        On Metal-supported systems, GPURenderPipeline is an interface to a MTLRenderPipelineState.
+        The MTLRenderPipelineState is created with the WebGPUDevice currently configured on the WebGPURenderingContext.
+
+        * CMakeLists.txt:
+        * Configurations/FeatureDefines.xcconfig:
+        * DerivedSources.make:
+        * Modules/webgpu/GPUDevice.cpp:
+        (WebCore::GPUDevice::createRenderPipeline const):
+        * Modules/webgpu/GPUDevice.h:
+        * Modules/webgpu/GPUPipelineDescriptorBase.h:
+        * Modules/webgpu/GPUPipelineStageDescriptor.h:
+        * Modules/webgpu/GPURenderPipelineDescriptor.h:
+        (WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor):
+        (WebCore::GPURenderPipelineDescriptor::primitiveTopology):
+        * Modules/webgpu/WebGPUDevice.cpp:
+        (WebCore::WebGPUDevice::createRenderPipeline const):
+        * Modules/webgpu/WebGPUDevice.h:
+        (WebCore::WebGPUDevice::adapter const):
+        (WebCore::WebGPUDevice::device const):
+        * Modules/webgpu/WebGPUDevice.idl:
+        * Modules/webgpu/WebGPUPipelineDescriptorBase.h:
+        * Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
+        * Modules/webgpu/WebGPUPipelineStageDescriptor.h:
+        * Modules/webgpu/WebGPUPipelineStageDescriptor.idl:
+        * Modules/webgpu/WebGPURenderPipeline.cpp:
+        (WebCore::WebGPURenderPipeline::create):
+        (WebCore::WebGPURenderPipeline::WebGPURenderPipeline):
+        * Modules/webgpu/WebGPURenderPipeline.h:
+        * Modules/webgpu/WebGPURenderPipeline.idl:
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.h:
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
+        * Modules/webgpu/WebGPURenderingContext.cpp:
+        (WebCore::WebGPURenderingContext::create):
+        (WebCore::WebGPURenderingContext::WebGPURenderingContext):
+        * Modules/webgpu/WebGPURenderingContext.h:
+        * Modules/webgpu/WebGPUShaderModule.h:
+        (WebCore::WebGPUShaderModule::module const):
+        * Modules/webgpu/WebGPUShaderStage.h:
+        * Modules/webgpu/WebGPUShaderStage.idl:
+        * Modules/webgpu/WebGPUSwapChain.cpp:
+        (WebCore::WebGPUSwapChain::configure):
+        (WebCore::WebGPUSwapChain::reshape):
+        (WebCore::WebGPUSwapChain::markLayerComposited):
+        * Modules/webgpu/WebGPUSwapChain.h:
+        (WebCore::WebGPUSwapChain::WebGPUSwapChain):
+        * Modules/webgpu/WebGPUSwapChain.idl:
+        * Modules/webgpu/cocoa/GPURenderPipeline.h:
+        (WebCore::GPURenderPipeline::platformRenderPipeline const):
+        * Modules/webgpu/cocoa/GPURenderPipelineMetal.mm: Added.
+        (WebCore::setFunctionsForPipelineDescriptor):
+        (WebCore::GPURenderPipeline::create):
+        (WebCore::GPURenderPipeline::GPURenderPipeline):
+        * Modules/webgpu/cocoa/GPUSwapChain.h:
+        (WebCore::GPUSwapChain::platformLayer const):
+        * Modules/webgpu/cocoa/GPUSwapChainMetal.mm:
+        (WebCore::GPUSwapChain::create):
+        (WebCore::GPUSwapChain::GPUSwapChain):
+        (WebCore::GPUSwapChain::setDevice):
+        (WebCore::GPUSwapChain::reshape):
+        (WebCore::GPUSwapChain::present):
+        * Sources.txt:
+        * SourcesCocoa.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/WebCoreBuiltinNames.h:
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        Add support for sender/receiver getCapabilities
+        https://bugs.webkit.org/show_bug.cgi?id=191192
+
+        Reviewed by Eric Carlson.
+
+        Expose sender/receiver RTCRtpCapabilities to JS.
+        Add corresponding IDL and plumbing down to libwebrtc peer connection factory.
+        Covered by rebased tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/mediastream/PeerConnectionBackend.cpp:
+        (WebCore::PeerConnectionBackend::receiverCapabilities):
+        (WebCore::PeerConnectionBackend::senderCapabilities):
+        * Modules/mediastream/PeerConnectionBackend.h:
+        * Modules/mediastream/RTCRtpCapabilities.idl: Added.
+        * Modules/mediastream/RTCRtpReceiver.cpp:
+        (WebCore::RTCRtpReceiver::getCapabilities):
+        * Modules/mediastream/RTCRtpReceiver.h:
+        * Modules/mediastream/RTCRtpReceiver.idl:
+        * Modules/mediastream/RTCRtpSender.cpp:
+        (WebCore::RTCRtpSender::getCapabilities):
+        * Modules/mediastream/RTCRtpSender.h:
+        * Modules/mediastream/RTCRtpSender.idl:
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
+        (WebCore::PeerConnectionBackend::receiverCapabilities):
+        (WebCore::PeerConnectionBackend::senderCapabilities):
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/mediastream/RTCPMuxPolicy.h:
+        * platform/mediastream/RTCRtpCapabilities.h: Added.
+        * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
+        (WebCore::typeFromKind):
+        (WebCore::fromStdString):
+        (WebCore::toChannels):
+        (WebCore::toRTCRtpCapabilities):
+        (WebCore::LibWebRTCProvider::receiverCapabilities):
+        (WebCore::LibWebRTCProvider::senderCapabilities):
+        * platform/mediastream/libwebrtc/LibWebRTCProvider.h:
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        Calling sender.replaceTrack() twice produces a new transceiver and its corresponding m= section
+        https://bugs.webkit.org/show_bug.cgi?id=191261
+
+        Reviewed by Eric Carlson.
+
+        Handle the case of replacing a track in a sender that has no track.
+        In particular, do not create a new m-section as was implied by plan B implementation.
+        Instead, set the track directly on the rtc sender.
+        Covered by webrtc/video-addTransceiver.html.
+
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):
+        (WebCore::LibWebRTCMediaEndpoint::addTransceiver):
+        (WebCore::LibWebRTCMediaEndpoint::setSenderSourceFromTrack):
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
+        (WebCore::LibWebRTCPeerConnectionBackend::setSenderSourceFromTrack):
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
+        (WebCore::LibWebRTCRtpSenderBackend::replaceTrack):
+
+2018-11-06  Chris Dumez  <cdumez@apple.com>
+
+        Post too much text to iFrame could crash webkit
+        https://bugs.webkit.org/show_bug.cgi?id=190947
+        <rdar://problem/45678231>
+
+        Reviewed by Geoffrey Garen.
+
+        Optimize SuffixTree (Which is used by XSSAuditor) to stop storing each Node's
+        children as a static array of 128 pointers and use a dynamic array (vector)
+        instead. This uses way less memory. Also make SuffixTree and SuffixTree::Node
+        as fast allocated for performance. This part of the change is based on the
+        following Blink change:
+        - https://chromium.googlesource.com/chromium/src.git/+/6ca590e1c7edaa7c56cac9e3e3c39cf398ca8d4d
+
+        Also update the XSSAuditor to construct the SuffixTree lazily since there are
+        many cases (including the one in this bug) where we were spending a significant
+        amount of time building the SuffixTree and then never querying it.
+
+        * html/parser/XSSAuditor.cpp:
+        (WebCore::XSSAuditor::init):
+        (WebCore::XSSAuditor::decodedHTTPBodySuffixTree):
+        (WebCore::XSSAuditor::isContainedInRequest):
+        * html/parser/XSSAuditor.h:
+        * platform/text/SuffixTree.h:
+        (WebCore::SuffixTree::mightContain):
+        (WebCore::SuffixTree::Node::Node):
+        (WebCore::SuffixTree::Node::~Node):
+        (WebCore::SuffixTree::Node::find):
+        (WebCore::SuffixTree::Node::end):
+        (WebCore::SuffixTree::build):
+        (WebCore::SuffixTree<Codebook>::Node::childAt):
+        (WebCore::SuffixTree::Node::at): Deleted.
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        Support onremovetrack for RTCPeerConnection removed tracks
+        https://bugs.webkit.org/show_bug.cgi?id=191299
+
+        Reviewed by Eric Carlson.
+
+        When applying SDP, LibWebRTCMediaEndpoint gets notified of a removed track.
+        In that case, make sure to remove it from its remote stream(s) so as
+        to notify the application of the changes.
+        Work around the receiver missing the list of streams by storing in a map
+        the list of the remote streams for a given remote track.
+
+        Covered by rebased test.
+
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
+        (WebCore::LibWebRTCMediaEndpoint::removeRemoteTrack):
+        (WebCore::LibWebRTCMediaEndpoint::removeRemoteStream):
+        (WebCore::LibWebRTCMediaEndpoint::stop):
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
+
+2018-11-06  Timothy Hatcher  <timothy@apple.com>
+
+        REGRESSION (r237878): css-dark-mode/supported-color-schemes.html is failing on Mojave
+        https://bugs.webkit.org/show_bug.cgi?id=191338
+
+        Reviewed by Dean Jackson.
+
+        * page/Page.cpp:
+        (WebCore::Page::appearanceDidChange): Add back call to didChangeStyleSheetEnvironment().
+        It was dropped by mistake when I moved code to appearanceDidChange(). This is needed to
+        update styles for semantic colors and from controls when the media prefers-color-scheme
+        media query is not used on the page.
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        Make mDNS ICE Candidate an experimental flag again
+        https://bugs.webkit.org/show_bug.cgi?id=191262
+
+        Reviewed by Dean Jackson.
+
+        Rename mdnsICECandidatesEnabled to webRTCICECandidatesEnabled.
+        This allows grouping the WebRTC runtime flags.
+        No change of behavior.
+
+        * Modules/mediastream/PeerConnectionBackend.cpp:
+        (WebCore::PeerConnectionBackend::newICECandidate):
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::webRTCMDNSICECandidatesEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setWebRTCMDNSICECandidatesEnabled):
+        (WebCore::RuntimeEnabledFeatures::mdnsICECandidatesEnabled const): Deleted.
+        (WebCore::RuntimeEnabledFeatures::setMDNSICECandidatesEnabled): Deleted.
+
+2018-11-06  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Implement text-underline-offset and text-decoration-thickness
+        https://bugs.webkit.org/show_bug.cgi?id=190774
+
+        Reviewed by Dean Jackson.
+
+        Because of our existing infrastructure for text decorations, adding support for these
+        is fairly simple. This patch updates our existing functions to handle thick & placed
+        underlines, as well as updating our repaint code to correcly handle repainting them.
+        It also handles animations.
+
+        Tests: animations/text-decoration-thickness.html
+               animations/text-underline-offset.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-2.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-3.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-auto-length.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-baseline.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-auto.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-length.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-repaint.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-under-auto.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset-under-length.html
+               fast/css3-text/css3-text-decoration/text-decoration-offset.html
+               fast/css3-text/css3-text-decoration/text-decoration-thickness-length.html
+               fast/css3-text/css3-text-decoration/text-decoration-thickness-repaint.html
+
+        * page/animation/CSSPropertyAnimation.cpp:
+        (WebCore::blendFunc):
+        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
+        * platform/graphics/FontMetrics.h:
+        (WebCore::FontMetrics::underlinePosition const):
+        (WebCore::FontMetrics::setUnderlinePosition):
+        (WebCore::FontMetrics::underlineThickness const):
+        (WebCore::FontMetrics::setUnderlineThickness):
+        * platform/graphics/cocoa/FontCocoa.mm:
+        (WebCore::Font::platformInit):
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::addToLine):
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::canUseForStyle):
+        * rendering/TextDecorationPainter.cpp:
+        (WebCore::TextDecorationPainter::paintTextDecoration):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::changeAffectsVisualOverflow const):
+        * rendering/style/TextDecorationThickness.h:
+        (WebCore::TextDecorationThickness::resolve const):
+        * style/InlineTextBoxStyle.cpp:
+        (WebCore::computeUnderlineOffset):
+        (WebCore::visualOverflowForDecorations):
+        * style/InlineTextBoxStyle.h:
+        (WebCore::textDecorationStrokeThickness): Deleted.
+
+2018-11-06  John Wilander  <wilander@apple.com>
+
+        Resource Load Statistics: Remove cap on partitioned cache max age if it matches a network reload (redirect-only)
+        https://bugs.webkit.org/show_bug.cgi?id=189760
+        <rdar://problem/44612242>
+
+        Reviewed by Youenn Fablet and Antti Koivisto.
+
+        No new tests. Existing test fleshed out.
+
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::isRedirection const):
+        * platform/network/ResourceResponseBase.h:
+        (WebCore::ResourceResponseBase::isRedirection const): Deleted.
+            Moved to the implementation file so that I can export it without warning.
+
+2018-11-06  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Spelling dots are drawn in the wrong place
+        https://bugs.webkit.org/show_bug.cgi?id=190764
+
+        Reviewed by Dean Jackson.
+
+        - Dots should not be clipped.
+        - Dots should be horizontally centered.
+        - Dots should be drawn behind the text.
+        - Distance from the baseline to the top of the dot should be 11.035% of font size.
+        - Dot diameter should be 13.247% of the font size.
+        - Distance between the dots (right side of the left dot to left side of the right dot) should be 9.457% of the font size.
+        - The "font size" used in these calculations should be clamped so it's 10px <= font size <= 40px.
+
+        Tests: editing/spelling/spelling-dots-position-2.html
+               editing/spelling/spelling-dots-position-3.html
+               editing/spelling/spelling-dots-position.html
+               editing/spelling/spelling-dots-repaint.html
+
+        * platform/graphics/cocoa/GraphicsContextCocoa.mm:
+        (WebCore::colorForMarkerLineStyle): Align iOS and macOS implementations.
+        (WebCore::GraphicsContext::drawDotsForDocumentMarker): Place the dots correctly.
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::addToLine): The KnownToHaveNoOverflow flag should be cleared if the element has spelling dots,
+            because there is no guarantee the spelling dots will lie inside the layout rect of the element.
+        (WebCore::InlineFlowBox::addTextBoxVisualOverflow): Update the repaint rects to include splling dot positions.
+        * rendering/InlineFlowBox.h: Comments should explain why, not say what.
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::paint): Draw the dots behind the text.
+        (WebCore::InlineTextBox::hasMarkers const): Convenience.
+        (WebCore::InlineTextBox::paintPlatformDocumentMarkers): Refactor bounds information into a helper function.
+        (WebCore::InlineTextBox::calculateUnionOfAllDocumentMarkerBounds const): Use for repaint rect calculation.
+        (WebCore::InlineTextBox::calculateDocumentMarkerBounds const): Place the dots correctly.
+        (WebCore::InlineTextBox::paintPlatformDocumentMarker): Call the helper method.
+        (WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers const):
+        (WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers): Deleted.
+        * rendering/InlineTextBox.h: Declare the helper methods.
+        * rendering/SimpleLineLayout.cpp: Simple line layout doesn't know how to paint spelling dots, so make the presence of
+            spelling dots opt us out of SLL.
+        (WebCore::SimpleLineLayout::canUseForWithReason):
+        * rendering/SimpleLineLayoutCoverage.cpp:
+        (WebCore::SimpleLineLayout::printReason):
+        * rendering/SimpleLineLayoutCoverage.h: Add a new opt-out reason.
+
+2018-11-06  Per Arne Vollan  <pvollan@apple.com>
+
+        REGRESSION (r230523): Caps lock indicator not shown in password field
+        https://bugs.webkit.org/show_bug.cgi?id=190056
+
+        Reviewed by Ryosuke Niwa.
+
+        When WindowServer access is blocked, GetCurrentModifiers() always returns 0. Instead of calling
+        GetCurrentModifiers(), store the current modifiers from the key event argument in the method
+        WebKit::WebPage::keyEvent, and use the stored value to detect if Caps lock is on. Additionally,
+        the modifiers needs to be updated when the window becomes active.
+
+        Test: fast/events/detect-caps-lock.html
+
+        * Sources.txt:
+        * platform/PlatformKeyboardEvent.h:
+        * platform/graphics/FontTaggedSettings.cpp:
+        * platform/mac/KeyEventMac.mm:
+        (WebCore::PlatformKeyboardEvent::currentCapsLockState):
+        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
+        * testing/Internals.cpp:
+        (WebCore::Internals::capsLockIsOn):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2018-11-06  Javier Fernandez  <jfernandez@igalia.com>
+
+        CSS grid elements with justify-content: space-around have extra whitespace, sometimes a lot
+        https://bugs.webkit.org/show_bug.cgi?id=191308
+
+        Reviewed by Dean Jackson.
+
+        The CSS WG resolved [1] that Content Alignment should account to the
+        track sizing algorithm.
+
+        The sizing algorithm has been modified so that two new steps (1.5
+        and 2.5) were added to compute the Content Alignment offsets after
+        resolving the columns' and rows' sizes respectively.
+
+        This change decouples the Content Alignment logic from the tracks
+        position, so that we can use it as part of the track sizing algorithm.
+
+        I also had to store the whole ContentAlignmentData structure in two
+        class attributes. We need both, position and distribution offsets, to
+        be used in different parts of the layout logic.
+
+        [1] https://github.com/w3c/csswg-drafts/issues/2557
+
+        Tests: imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-001.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-percent-cols-spanned-shrinkwrap-001.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html
+               imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-percent-rows-spanned-shrinkwrap-001.html
+
+        * rendering/GridTrackSizingAlgorithm.cpp:
+        (WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::repeatTracksSizingIfNeeded):
+        (WebCore::RenderGrid::layoutBlock):
+        (WebCore::RenderGrid::gridItemOffset const):
+        (WebCore::RenderGrid::trackSizesForComputedStyle const):
+        (WebCore::RenderGrid::populateGridPositionsForDirection):
+        (WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
+        (WebCore::contentDistributionOffset):
+        (WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
+        (WebCore::RenderGrid::nonCollapsedTracks const):
+        * rendering/RenderGrid.h:
+        (WebCore::ContentAlignmentData::isValid):
+        (WebCore::ContentAlignmentData::defaultOffsets):
+
+2018-11-06  Sihui Liu  <sihui_liu@apple.com>
+
+        IndexedDB: WAL file keeps growing
+        https://bugs.webkit.org/show_bug.cgi?id=191294
+        <rdar://problem/41333493>
+
+        Reviewed by Chris Dumez.
+
+        When we quit apps, the database connection may not be shut down properly, and WAL file will be retained on disk.
+        On the next open of database connection, new logs will be appended to the original WAL file, which keeps 
+        increasing size of the WAL file. We should do a manual checkpoint when we open a IndexedDB to make sure previous
+        log is written to database and truncate WAL file.
+
+        Test: IndexedDB.IndexedDBTempFileSize
+
+        * platform/sql/SQLiteDatabase.cpp:
+        (WebCore::SQLiteDatabase::open):
+
+2018-11-06  Ali Juma  <ajuma@chromium.org>
+
+        IntersectionObserver doesn't keep target's JS wrapper alive
+        https://bugs.webkit.org/show_bug.cgi?id=190235
+
+        Reviewed by Ryosuke Niwa.
+
+        Retain JS wrappers of targets in queued entries using a vector of GCReachableRef owned by
+        IntersectionObserver, which gets cleared after the entries have been delivered.
+
+        Make IntersectionObserver::takeRecords return a struct which has both the vector of GCReachableRefs
+        for targets and the vector of intersection observer entries, so that the GCReachableRefs survive
+        until the creation of JS wrappers for the entries.
+
+        Modify IntersectionObserver::hasPendingActivity to keep the observer alive while it has
+        entries to deliver.
+
+        Tests: intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html
+               intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html
+               intersection-observer/target-deleted.html
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSIntersectionObserverEntryCustom.cpp:
+        (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren): Keep the target element's wrapper alive while the
+        IntersectionObserverEntry's wrapper is alive.
+        * page/IntersectionObserver.cpp:
+        (WebCore::IntersectionObserver::takeRecords): Change return type to include GCReachableRefs for each record's target, so that
+        each target can be kept until a JS wrapper is constructed for its IntersectionObserverEntry.
+        (WebCore::IntersectionObserver::appendQueuedEntry):
+        (WebCore::IntersectionObserver::notify): Erase GCReachableRefs for targets after delivering the corresponding records.
+        (WebCore::IntersectionObserver::hasPendingActivity const): Keep the IntersectionObserver alive until queued entries are delivered.
+        (WebCore::IntersectionObserver::stop):
+        * page/IntersectionObserver.h:
+        * page/IntersectionObserver.idl:
+        * page/IntersectionObserverEntry.h:
+        (WebCore::IntersectionObserverEntry::target const): Make this return a raw pointer instead of a RefPtr so that it
+        can be called in JSIntersectionObserverEntry::visitAdditionalChildren, which runs on the GC thread (it's illegal to ref a Node
+        on a non-main thread).
+        * page/IntersectionObserverEntry.idl:
+
+2018-11-06  Timothy Hatcher  <timothy@apple.com>
+
+        <picture> container doesn't update when prefers-color-scheme media query changes
+        https://bugs.webkit.org/show_bug.cgi?id=190913
+        rdar://problem/45608456
+
+        Reviewed by Dean Jackson.
+
+        Test: css-dark-mode/prefers-color-scheme-picture-element.html
+
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::isAppearanceDependent): Added.
+        (WebCore::MediaQueryEvaluator::evaluate const): Keep track of appearanceDependentResults.
+        * css/MediaQueryEvaluator.h:
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::addAppearanceDependentMediaQueryResult): Added.
+        (WebCore::StyleResolver::hasMediaQueriesAffectedByAppearanceChange const): Added.
+        * css/StyleResolver.h:
+        (WebCore::StyleResolver::hasAppearanceDependentMediaQueries const): Added.
+        * dom/Document.cpp:
+        (WebCore::Document::evaluateMediaQueryList): Call checkAppearanceDependentPictures.
+        (WebCore::Document::checkAppearanceDependentPictures): Added.
+        (WebCore::Document::addAppearanceDependentPicture): Added.
+        (WebCore::Document::removeAppearanceDependentPicture): Added.
+        * dom/Document.h:
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Call addAppearanceDependentPicture.
+        * html/HTMLPictureElement.cpp:
+        (WebCore::HTMLPictureElement::~HTMLPictureElement): Call removeAppearanceDependentPicture.
+        (WebCore::HTMLPictureElement::didMoveToNewDocument): Ditto.
+        (WebCore::HTMLPictureElement::appearanceChangeAffectedPicture const): Added.
+        * html/HTMLPictureElement.h:
+        * page/Page.cpp:
+        (WebCore::Page::appearanceDidChange): Added.
+        (WebCore::Page::setUseSystemAppearance): Call appearanceDidChange.
+        (WebCore::Page::setUseDarkAppearance): Call appearanceDidChange.
+        * page/Page.h:
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::evaluateMediaQueriesForAppearanceChange): Added.
+        * style/StyleScope.h:
+
+2018-11-06  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r237834.
+
+        Tests for this change crash on iOS Simulator
+
+        Reverted changeset:
+
+        "Spelling dots are drawn in the wrong place"
+        https://bugs.webkit.org/show_bug.cgi?id=190764
+        https://trac.webkit.org/changeset/237834
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] transitions/remove-transition-style.html crashes with GuardMalloc on
+        https://bugs.webkit.org/show_bug.cgi?id=191304
+        <rdar://problem/45819476>
+
+        Reviewed by Dean Jackson.
+
+        Ensure we remove animations from the m_allAnimations ListHashSet upon destruction.
+
+        * animation/AnimationTimeline.cpp:
+        (WebCore::AnimationTimeline::forgetAnimation):
+        (WebCore::AnimationTimeline::cancelDeclarativeAnimation):
+        * animation/AnimationTimeline.h:
+        * animation/DocumentTimeline.cpp:
+        (WebCore::DocumentTimeline::getAnimations const):
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::~WebAnimation):
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        RealtimeOutgoingAudioSourceCocoa should unobserve its source at destruction time
+        https://bugs.webkit.org/show_bug.cgi?id=191295
+
+        Reviewed by Eric Carlson.
+
+        Make RealtimeOutgoingAudioSource subclasses unobserve their source
+        inside their destructor instead of RealtimeOutgoingAudioSource.
+        This is consistent with how starting to observe works.
+        Covered by existing tests.
+
+        * platform/mediastream/RealtimeOutgoingAudioSource.cpp:
+        (WebCore::RealtimeOutgoingAudioSource::unobserveSource):
+        * platform/mediastream/RealtimeOutgoingAudioSource.h:
+        * platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:
+        (WebCore::RealtimeOutgoingAudioSourceLibWebRTC::~RealtimeOutgoingAudioSourceLibWebRTC):
+        * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:
+        (WebCore::RealtimeOutgoingAudioSourceCocoa::RealtimeOutgoingAudioSourceCocoa):
+        (WebCore::RealtimeOutgoingAudioSourceCocoa::~RealtimeOutgoingAudioSourceCocoa):
+        * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h:
+
+2018-11-06  Youenn Fablet  <youenn@apple.com>
+
+        Make sure RTCIceCandidateStats address is undefined for host and peer reflexive case
+        https://bugs.webkit.org/show_bug.cgi?id=191263
+
+        Reviewed by Eric Carlson.
+
+        Test: webrtc/datachannel/getStats-no-prflx-remote-candidate.html
+
+        * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
+        (WebCore::fillRTCIceCandidateStats):
+
+2018-11-06  Thibault Saunier  <tsaunier@igalia.com>
+
+        [GStreamer][WebRTC] Handle setting max number of frame between keyframes
+        https://bugs.webkit.org/show_bug.cgi?id=190682
+
+        Reviewed by Philippe Normand.
+
+        That has been manually checked.
+
+        * platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:
+        (gst_webrtc_video_encoder_get_property):
+        (gst_webrtc_video_encoder_set_property):
+        (register_known_encoder):
+        (gst_webrtc_video_encoder_class_init):
+        * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
+        (WebCore::GStreamerVideoEncoder::InitEncode):
+
+2018-11-03  Alex Christensen  <achristensen@webkit.org>
+
+        [Mac] Implement safe browsing in WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=188871
+
+        Reviewed by Tim Horton.
+
+        * en.lproj/Localizable.strings:
+
+2018-11-06  Ali Juma  <ajuma@chromium.org>
+
+        [IntersectionObserver] Account for CSS zoom when computing client rects
+        https://bugs.webkit.org/show_bug.cgi?id=191282
+
+        Reviewed by Simon Fraser.
+
+        When computing rects for an IntersectionObserverEntry, account for the effective zoom when
+        converting from absolute to client coordinates.
+
+        Test: web-platform-tests/intersection-observer/bounding-box.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateIntersectionObservations):
+
+2018-11-06  Thibault Saunier  <tsaunier@igalia.com>
+
+        [GStreamer][WebRTC] Implement black frame generation
+        https://bugs.webkit.org/show_bug.cgi?id=190684
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Avoiding webrtc/video-mute-vp8.html to crash but it still fails because
+        we are missing the canvas bridging code.
+
+        * platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
+        (WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):
+        * platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
+
+2018-11-06  Thibault Saunier  <tsaunier@igalia.com>
+
+        [GStreamer][WebRTC] Do not try to handle framerate modulation in the encoder
+        https://bugs.webkit.org/show_bug.cgi?id=190683
+
+        Reviewed by Philippe Normand.
+
+        This has to already be handled in capturing pipeline or in libwebrtc itself.
+
+        No other encoder implementation do that, and libwebrtc is not happy with encoder that do not output the exact number of frames that have been passed in.
+
+        No regressions detected and libwebrtc is happier this way, less warning output and no more frame corruption in H264 streams found.
+
+        * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
+        (WebCore::GStreamerVideoEncoder::InitEncode):
+
+2018-11-06  Frederic Wang  <fwang@igalia.com>
+
+        Unreviewed, follow-up of previous commit.
+
+        Actually move OptionSet in the header since it's used there too.
+
+        * page/WindowFeatures.cpp:
+        * page/WindowFeatures.h:
+
+2018-11-06  Frederic Wang  <fwang@igalia.com>
+
+        Unreviewed build fix.
+
+        * page/WindowFeatures.cpp: Add missing header for OptionSet.
+        * platform/graphics/FontTaggedSettings.cpp: Add missing header for IntegerHash.
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Don't reset pending tasks when setting a null effect
+        https://bugs.webkit.org/show_bug.cgi?id=191301
+        <rdar://problem/45838422>
+
+        Reviewed by Dean Jackson.
+
+        The issue https://github.com/w3c/csswg-drafts/issues/2077 has changed the Web Animations API such that
+        we no longer reset pending tasks when setting a null effect on an animation.
+
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::setEffect):
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Update the API to allow the "auto" composite value
+        https://bugs.webkit.org/show_bug.cgi?id=191300
+        <rdar://problem/45838373>
+
+        Reviewed by Dean Jackson.
+
+        The Web Animations API has been changed such that the various "composite" properties are no longer optional and instead
+        allow an "auto" value in their enumeration.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * animation/CompositeOperationOrAuto.h: Copied from Source/WebCore/animation/KeyframeEffect.idl.
+        * animation/CompositeOperationOrAuto.idl: Copied from Source/WebCore/animation/KeyframeEffect.idl.
+        * animation/KeyframeEffect.cpp:
+        (WebCore::processKeyframeLikeObject):
+        (WebCore::processIterableKeyframes):
+        (WebCore::processPropertyIndexedKeyframes):
+        (WebCore::KeyframeEffect::getKeyframes):
+        * animation/KeyframeEffect.h:
+        * animation/KeyframeEffect.idl:
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Update the API to implement Animation.updatePlaybackRate()
+        https://bugs.webkit.org/show_bug.cgi?id=186510
+        <rdar://problem/41000641>
+
+        Reviewed by Dean Jackson.
+
+        The Web Animations API has been changed to allow for changes to an animation's playback rate both synchronously,
+        with the existing "playbackRate" property, and asynchronously, with the new updatePlaybackRate() method. In this
+        patch we update the various procedures to account for pending playback rate changes and the notion of an "effective
+        playback rate".
+
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::setEffect):
+        (WebCore::WebAnimation::setTimeline):
+        (WebCore::WebAnimation::setStartTime):
+        (WebCore::WebAnimation::setCurrentTime):
+        (WebCore::WebAnimation::effectivePlaybackRate const):
+        (WebCore::WebAnimation::setPlaybackRate):
+        (WebCore::WebAnimation::updatePlaybackRate):
+        (WebCore::WebAnimation::applyPendingPlaybackRate):
+        (WebCore::WebAnimation::playState const):
+        (WebCore::WebAnimation::resetPendingTasks):
+        (WebCore::WebAnimation::finish):
+        (WebCore::WebAnimation::play):
+        (WebCore::WebAnimation::runPendingPlayTask):
+        (WebCore::WebAnimation::reverse):
+        (WebCore::WebAnimation::runPendingPauseTask):
+        * animation/WebAnimation.h:
+        (WebCore::WebAnimation::playbackRate const):
+        * animation/WebAnimation.idl:
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Implement getTiming() and updateTiming()
+        https://bugs.webkit.org/show_bug.cgi?id=186511
+        <rdar://problem/41000677>
+
+        Reviewed by Dean Jackson.
+
+        The Web Animations API has been further simplified by removing the AnimationEffectTiming and AnimationEffectTimingReadOnly
+        interfaces, removing the "timing" property on AnimationEffect replacing it with getTiming() and updateTiming() methods. This
+        does not change the features of the API but simply how they are exposed.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * animation/AnimationEffect.cpp:
+        (WebCore::AnimationEffect::AnimationEffect):
+        (WebCore::AnimationEffect::~AnimationEffect):
+        (WebCore::AnimationEffect::phase const):
+        (WebCore::AnimationEffect::activeTime const):
+        (WebCore::AnimationEffect::overallProgress const):
+        (WebCore::AnimationEffect::simpleIterationProgress const):
+        (WebCore::AnimationEffect::currentIteration const):
+        (WebCore::AnimationEffect::currentDirection const):
+        (WebCore::AnimationEffect::transformedProgress const):
+        (WebCore::AnimationEffect::getTiming):
+        (WebCore::AnimationEffect::getComputedTiming):
+        (WebCore::AnimationEffect::updateTiming):
+        (WebCore::AnimationEffect::setIterationStart):
+        (WebCore::AnimationEffect::setIterations):
+        (WebCore::AnimationEffect::endTime const):
+        (WebCore::AnimationEffect::setDelay):
+        (WebCore::AnimationEffect::setEndDelay):
+        (WebCore::AnimationEffect::setFill):
+        (WebCore::AnimationEffect::setIterationDuration):
+        (WebCore::AnimationEffect::setDirection):
+        (WebCore::AnimationEffect::setTimingFunction):
+        (WebCore::AnimationEffect::activeDuration const):
+        * animation/AnimationEffect.h:
+        (WebCore::AnimationEffect::delay const):
+        (WebCore::AnimationEffect::endDelay const):
+        (WebCore::AnimationEffect::fill const):
+        (WebCore::AnimationEffect::iterationStart const):
+        (WebCore::AnimationEffect::iterations const):
+        (WebCore::AnimationEffect::iterationDuration const):
+        (WebCore::AnimationEffect::direction const):
+        (WebCore::AnimationEffect::timingFunction const):
+        * animation/AnimationEffect.idl:
+        * animation/AnimationEffectTiming.idl: Removed.
+        * animation/AnimationEffectTimingReadOnly.cpp: Removed.
+        * animation/AnimationEffectTimingReadOnly.h: Removed.
+        * animation/AnimationEffectTimingReadOnly.idl: Removed.
+        * animation/CSSAnimation.cpp:
+        (WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
+        * animation/CSSTransition.cpp:
+        (WebCore::CSSTransition::setTimingProperties):
+        * animation/DeclarativeAnimation.cpp:
+        (WebCore::DeclarativeAnimation::invalidateDOMEvents):
+        * animation/DocumentTimeline.cpp:
+        * animation/EffectTiming.idl:
+        * animation/KeyframeEffect.cpp:
+        (WebCore::KeyframeEffect::create):
+        (WebCore::KeyframeEffect::KeyframeEffect):
+        (WebCore::KeyframeEffect::copyPropertiesFromSource):
+        (WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
+        (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
+        (WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const):
+        * animation/KeyframeEffect.h:
+        * animation/OptionalEffectTiming.h: Renamed from Source/WebCore/animation/AnimationEffectTiming.h.
+        * animation/OptionalEffectTiming.idl: Renamed from Source/WebCore/animation/AnimationEffectTiming.cpp.
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::effectTimingDidChange):
+        (WebCore::WebAnimation::updatePlaybackRate):
+        * animation/WebAnimation.h:
+        (WebCore::WebAnimation::isRelevant const):
+        * bindings/js/JSAnimationEffectTimingReadOnlyCustom.cpp: Removed.
+        * bindings/js/WebCoreBuiltinNames.h:
+
+2018-11-06  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Update the Web Animations API to remove all the ReadOnly interfaces
+        https://bugs.webkit.org/show_bug.cgi?id=186512
+        <rdar://problem/41000691>
+
+        Reviewed by Dean Jackson.
+
+        The Web Animations API has been simplified by removing its various ReadOnly interfaces. In this patch,
+        we make the following changes, not adding code but merely merging and renaming files:
+
+        - AnimationEffectReadOnly and AnimationEffect are now a single AnimationEffect interface
+        - KeyframeEffectReadOnly and KeyframeEffect are now a single KeyframeEffect interface
+        - ComputedTimingProperties is now named ComputedEffectTiming
+        - AnimationEffectTimingProperties is now named EffectTiming
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * animation/AnimationEffect.cpp: Renamed from Source/WebCore/animation/AnimationEffectReadOnly.cpp.
+        (WebCore::AnimationEffect::~AnimationEffect):
+        (WebCore::AnimationEffect::timingDidChange):
+        (WebCore::AnimationEffect::localTime const):
+        (WebCore::AnimationEffect::phase const):
+        (WebCore::AnimationEffect::activeTime const):
+        (WebCore::AnimationEffect::overallProgress const):
+        (WebCore::AnimationEffect::simpleIterationProgress const):
+        (WebCore::AnimationEffect::currentIteration const):
+        (WebCore::AnimationEffect::currentDirection const):
+        (WebCore::AnimationEffect::directedProgress const):
+        (WebCore::AnimationEffect::transformedProgress const):
+        (WebCore::AnimationEffect::iterationProgress const):
+        (WebCore::AnimationEffect::getComputedTiming):
+        * animation/AnimationEffect.h: Renamed from Source/WebCore/animation/AnimationEffectReadOnly.h.
+        (WebCore::AnimationEffect::isKeyframeEffect const):
+        * animation/AnimationEffect.idl: Renamed from Source/WebCore/animation/AnimationEffectReadOnly.idl.
+        * animation/AnimationEffectTimingReadOnly.cpp:
+        * animation/AnimationEffectTimingReadOnly.h:
+        (WebCore::AnimationEffectTimingReadOnly::setEffect):
+        * animation/AnimationTimeline.cpp:
+        (WebCore::AnimationTimeline::removeAnimation):
+        (WebCore::AnimationTimeline::cssAnimationForElementAndProperty):
+        * animation/CSSTransition.cpp:
+        * animation/ComputedEffectTiming.h: Renamed from Source/WebCore/animation/ComputedTimingProperties.h.
+        * animation/ComputedEffectTiming.idl: Renamed from Source/WebCore/animation/ComputedTimingProperties.idl.
+        * animation/DeclarativeAnimation.cpp:
+        (WebCore::DeclarativeAnimation::initialize):
+        (WebCore::DeclarativeAnimation::flushPendingStyleChanges const):
+        (WebCore::DeclarativeAnimation::phaseWithoutEffect const):
+        (WebCore::DeclarativeAnimation::invalidateDOMEvents):
+        * animation/DeclarativeAnimation.h:
+        * animation/DocumentTimeline.cpp:
+        (WebCore::DocumentTimeline::getAnimations const):
+        (WebCore::DocumentTimeline::transitionDidComplete):
+        (WebCore::DocumentTimeline::computeExtentOfAnimation const):
+        (WebCore::DocumentTimeline::isRunningAnimationOnRenderer const):
+        (WebCore::DocumentTimeline::isRunningAcceleratedAnimationOnRenderer const):
+        (WebCore::DocumentTimeline::animatedStyleForRenderer):
+        (WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
+        (WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):
+        (WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):
+        (WebCore::DocumentTimeline::resolveAnimationsForElement):
+        * animation/EffectTiming.h: Renamed from Source/WebCore/animation/AnimationEffectTimingProperties.h.
+        * animation/EffectTiming.idl: Renamed from Source/WebCore/animation/AnimationEffectTimingProperties.idl.
+        * animation/KeyframeEffect.cpp:
+        (WebCore::invalidateElement):
+        (WebCore::CSSPropertyIDToIDLAttributeName):
+        (WebCore::IDLAttributeNameToAnimationPropertyName):
+        (WebCore::computeMissingKeyframeOffsets):
+        (WebCore::processKeyframeLikeObject):
+        (WebCore::processIterableKeyframes):
+        (WebCore::processPropertyIndexedKeyframes):
+        (WebCore::KeyframeEffect::create):
+        (WebCore::KeyframeEffect::KeyframeEffect):
+        (WebCore::KeyframeEffect::copyPropertiesFromSource):
+        (WebCore::KeyframeEffect::getKeyframes):
+        (WebCore::KeyframeEffect::processKeyframes):
+        (WebCore::KeyframeEffect::updateBlendingKeyframes):
+        (WebCore::KeyframeEffect::forceLayoutIfNeeded):
+        (WebCore::KeyframeEffect::setBlendingKeyframes):
+        (WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists):
+        (WebCore::KeyframeEffect::checkForMatchingFilterFunctionLists const):
+        (WebCore::KeyframeEffect::checkForMatchingFilterFunctionLists):
+        (WebCore::KeyframeEffect::checkForMatchingBackdropFilterFunctionLists):
+        (WebCore::KeyframeEffect::checkForMatchingColorFilterFunctionLists):
+        (WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
+        (WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
+        (WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):
+        (WebCore::KeyframeEffect::computedNeedsForcedLayout):
+        (WebCore::KeyframeEffect::computeStackingContextImpact):
+        (WebCore::KeyframeEffect::setTarget):
+        (WebCore::KeyframeEffect::apply):
+        (WebCore::KeyframeEffect::invalidate):
+        (WebCore::KeyframeEffect::computeShouldRunAccelerated):
+        (WebCore::KeyframeEffect::getAnimatedStyle):
+        (WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
+        (WebCore::KeyframeEffect::timingFunctionForKeyframeAtIndex):
+        (WebCore::KeyframeEffect::updateAcceleratedAnimationState):
+        (WebCore::KeyframeEffect::addPendingAcceleratedAction):
+        (WebCore::KeyframeEffect::animationDidSeek):
+        (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
+        (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
+        (WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const):
+        (WebCore::KeyframeEffect::renderer const):
+        (WebCore::KeyframeEffect::currentStyle const):
+        (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
+        (WebCore::containsRotation):
+        (WebCore::KeyframeEffect::computeTransformedExtentViaTransformList const):
+        (WebCore::KeyframeEffect::computeTransformedExtentViaMatrix const):
+        * animation/KeyframeEffect.h:
+        (WebCore::KeyframeEffect::ParsedKeyframe::ParsedKeyframe):
+        (WebCore::KeyframeEffect::target const):
+        (WebCore::KeyframeEffect::iterationComposite const):
+        (WebCore::KeyframeEffect::composite const):
+        (WebCore::KeyframeEffect::isRunningAccelerated const):
+        (WebCore::KeyframeEffect::hasPendingAcceleratedAction const):
+        (WebCore::KeyframeEffect::hasBlendingKeyframes const):
+        (WebCore::KeyframeEffect::animatedProperties const):
+        * animation/KeyframeEffect.idl:
+        * animation/KeyframeEffectOptions.h:
+        * animation/KeyframeEffectOptions.idl:
+        * animation/KeyframeEffectReadOnly.cpp: Removed.
+        * animation/KeyframeEffectReadOnly.h: Removed.
+        * animation/KeyframeEffectReadOnly.idl: Removed.
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::create):
+        (WebCore::WebAnimation::setEffect):
+        (WebCore::WebAnimation::setEffectInternal):
+        (WebCore::WebAnimation::setTimeline):
+        (WebCore::WebAnimation::applyPendingAcceleratedActions):
+        (WebCore::WebAnimation::computeRelevance):
+        * animation/WebAnimation.h:
+        (WebCore::WebAnimation::effect const):
+        * animation/WebAnimation.idl:
+        * bindings/js/JSAnimationEffectCustom.cpp: Renamed from Source/WebCore/bindings/js/JSAnimationEffectReadOnlyCustom.cpp.
+        (WebCore::toJSNewlyCreated):
+        (WebCore::toJS):
+        * bindings/js/JSWebAnimationCustom.cpp:
+        (WebCore::constructJSWebAnimation):
+        * bindings/js/WebCoreBuiltinNames.h:
+        * dom/Document.cpp:
+
+2018-11-06  Rob Buis  <rbuis@igalia.com>
+
+        Some minor X-Content-Type-Options parsing issues
+        https://bugs.webkit.org/show_bug.cgi?id=191107
+
+        Reviewed by Darin Adler.
+
+        Implement new parsing rules for X-Content-Type-Options [1]:
+        https://github.com/whatwg/fetch/pull/818
+
+        [1] https://fetch.spec.whatwg.org/#x-content-type-options-header
+
+        Test: web-platform-tests/fetch/nosniff/parsing-nosniff.html
+
+        * platform/network/HTTPParsers.cpp:
+        (WebCore::isHTTPTabOrSpace):
+        (WebCore::parseContentTypeOptionsHeader):
+
+2018-11-06  Frederic Wang  <fwang@igalia.com>
+
+        Overlay with -webkit-overflow-scrolling:touch doesn't become scrollable after added text makes it taller
+        https://bugs.webkit.org/show_bug.cgi?id=158342
+
+        Reviewed by Simon Fraser.
+
+        Resizing the content of a -webkit-overflow-scrolling:touch overflow node on iOS may make it
+        scrollable. However, the RenderLayerBacking's scrolling layer is not properly created
+        when RenderLayerCompositor::updateScrollCoordinatedLayer is called and hence the UIProcess
+        receives a null UIScrollView pointer when ScrollingTreeScrollingNodeDelegateIOS performs the
+        associated update. In debug mode this hits an ASSERT and in release mode the overflow node
+        remains unscrollable from the user's point of view. This patch fixes this issue by ensuring
+        the RenderLayerBacking's scrolling layer is created during updateScrollCoordinatedStatus.
+
+        Test: fast/scrolling/ios/update-scroll-coordinated-status.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus): Call updateConfiguration()
+        to ensure the scrolling layer is present and indicate whether a rebuild is necessary.
+
+2018-11-05  Zan Dobersek  <zdobersek@igalia.com>
+
+        Place Fontconfig-specific RefPtr specializations in RefPtrFontconfig.h
+        https://bugs.webkit.org/show_bug.cgi?id=191267
+
+        Reviewed by Michael Catanzaro.
+
+        Move the Fontconfig-specific RefPtr specialization declarations from
+        RefPtrCairo.h to RefPtrFontconfig.h, with definitions moved to the new
+        RefPtrFontconfig.cpp implementation file. These specializations are
+        not tied to Cairo in any way.
+
+        * platform/FreeType.cmake:
+        * platform/graphics/FontPlatformData.h:
+        * platform/graphics/cairo/RefPtrCairo.cpp:
+        * platform/graphics/cairo/RefPtrCairo.h:
+        * platform/graphics/freetype/FontCacheFreeType.cpp:
+        * platform/graphics/freetype/RefPtrFontconfig.cpp: Added.
+        (WTF::refIfNotNull):
+        (WTF::derefIfNotNull):
+        * platform/graphics/freetype/RefPtrFontconfig.h: Copied from Source/WebCore/platform/graphics/cairo/RefPtrCairo.h.
+
+2018-11-05  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Fix WebCore/Modules includes
+        https://bugs.webkit.org/show_bug.cgi?id=191287
+
+        Reviewed by Fujii Hironori.
+
+        No new tests. No change in behavior.
+
+        Add in applicationmanifest to the list of includes and sort the
+        modules directory.
+
+        * CMakeLists.txt:
+
 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
 
         Cache glyph paths and share underline skipping code between all the ports