Adopt WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics and WebKit::Netwo...
[WebKit-https.git] / Source / WebCore / ChangeLog
index 6888107..bd7c4b8 100644 (file)
+2019-02-27  John Wilander  <wilander@apple.com>
+
+        Adopt WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics and WebKit::NetworkProcessProxy
+        https://bugs.webkit.org/show_bug.cgi?id=195071
+        <rdar://problem/48417690>
+
+        Reviewed by Alex Christensen and Brent Fulgham.
+
+        No new tests. This patch maintains functionality covered by plenty of layout
+        tests under http/tests/resourceLoadStatistics/ and http/tests/storageAccess.
+
+        This patch adopts WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics
+        and makes the necessary infrastructure changes to support that.
+
+        The previous HashCountedSets in WebCore::ResourceLoadStatistics are now just
+        HashSets since we never used the counts for anything. This change simplified
+        encoding and decoding for IPC and will eventually simplify encoding and
+        decoding in loader/ResourceLoadStatistics.cpp when we obsolete statistics
+        model version 14 and below.
+
+        The patch also makes WebCore::RegistrableDomain's String constructor private.
+        A new create function WebCore::RegistrableDomain::uncheckedCreateFromString()
+        is introduced to better signal to users that creating a registrable domain
+        object with a string may create an object that doesn't match a registrable
+        domain in a valid HTTP-family URL. This change (private String constructor)
+        motivated a change in WebCore::AdClickAttribution where the Source and
+        Destination structs now take a URL as parameter instead of a String.
+
+        Finally, this patch harmonizes parameter and variable naming, going from
+        "origin" to "domain" and "mainFrame" to "topFrame."
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::parseAdClickAttribution const):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaSessionTitle const):
+        * loader/AdClickAttribution.h:
+        (WebCore::AdClickAttribution::Source::Source):
+        (WebCore::AdClickAttribution::Source::deletedValue):
+        (WebCore::AdClickAttribution::Destination::Destination):
+        (WebCore::AdClickAttribution::Destination::deletedValue):
+        (WebCore::AdClickAttribution::decode):
+        * loader/ResourceLoadObserver.cpp:
+        (WebCore::ResourceLoadObserver::logSubresourceLoading):
+        (WebCore::ResourceLoadObserver::logWebSocketLoading):
+        (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+        (WebCore::ResourceLoadObserver::statisticsForURL):
+        (WebCore::ResourceLoadObserver::statisticsForOrigin): Deleted.
+        * loader/ResourceLoadObserver.h:
+        * loader/ResourceLoadStatistics.cpp:
+        (WebCore::encodeHashSet):
+        (WebCore::ResourceLoadStatistics::encode const):
+        (WebCore::decodeHashCountedSet):
+        (WebCore::decodeHashSet):
+        (WebCore::ResourceLoadStatistics::decode):
+        (WebCore::appendHashSet):
+        (WebCore::ResourceLoadStatistics::toString const):
+        (WebCore::ResourceLoadStatistics::merge):
+        (WebCore::encodeHashCountedSet): Deleted.
+        (WebCore::encodeOriginHashSet): Deleted.
+        (WebCore::decodeOriginHashSet): Deleted.
+        (WebCore::appendHashCountedSet): Deleted.
+        * loader/ResourceLoadStatistics.h:
+        * platform/RegistrableDomain.h:
+        (WebCore::RegistrableDomain::uncheckedCreateFromString):
+        (WebCore::RegistrableDomain::RegistrableDomain):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resourceLoadStatisticsForURL):
+        (WebCore::Internals::resourceLoadStatisticsForOrigin): Deleted.
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-02-27  Justin Fan  <justin_fan@apple.com>
+
+        [Web GPU] Buffer updates part 2: setSubData, GPU/CPU synchronization
+        https://bugs.webkit.org/show_bug.cgi?id=195077
+        <rdar://problem/47805229>
+
+        Reviewed by Dean Jackson.
+
+        Implement GPUBuffer.setSubData and prevent the resolving of mapping promises if the buffer is scheduled to be 
+        used on the GPU, and add handlers to resolve such promises after command buffer execution completes. In addition,
+        update buffer sizes to u64 (unsigned long in C++) as per the updated Web GPU API.
+
+        Tests: webgpu/buffer-command-buffer-races.html
+               webgpu/map-read-buffers.html
+
+        * Modules/webgpu/WebGPUBindGroup.h:
+        (WebCore::WebGPUBindGroup::bindGroup const):
+        * Modules/webgpu/WebGPUBindGroupDescriptor.cpp:
+        (WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const): Rename binding -> bufferBinding to reduce confusion.
+        * Modules/webgpu/WebGPUBuffer.cpp: Small tweaks.
+        (WebCore::WebGPUBuffer::setSubData):
+        (WebCore::WebGPUBuffer::unmap): Correctly fail if buffer is destroyed.
+        (WebCore::WebGPUBuffer::destroy):
+        (WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):
+        * Modules/webgpu/WebGPUBuffer.h:
+        (WebCore::WebGPUBuffer::buffer const): Returned buffer is no longer const so that it can be used in completed handler callbacks.
+        * Modules/webgpu/WebGPUBuffer.idl: Enable setSubData.
+        * Modules/webgpu/WebGPUCommandBuffer.cpp:
+        (WebCore::WebGPUCommandBuffer::beginRenderPass):
+        * Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:
+        (WebCore::WebGPUProgrammablePassEncoder::setBindGroup const):
+        * Modules/webgpu/WebGPUProgrammablePassEncoder.h:
+        * Modules/webgpu/WebGPURenderPassEncoder.cpp:
+        (WebCore::WebGPURenderPassEncoder::setVertexBuffers):
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/graphics/gpu/GPUBuffer.h:
+        (WebCore::GPUBuffer::isTransferDst const): Added various state and flag getters.
+        (WebCore::GPUBuffer::isVertex const):
+        (WebCore::GPUBuffer::isUniform const):
+        (WebCore::GPUBuffer::isStorage const):
+        (WebCore::GPUBuffer::isReadOnly const):
+        (WebCore::GPUBuffer::isMappable const):
+        (WebCore::GPUBuffer::isMapWrite const):
+        (WebCore::GPUBuffer::isMapRead const):
+        (WebCore::GPUBuffer::isMapWriteable const):
+        (WebCore::GPUBuffer::isMapReadable const):
+        * platform/graphics/gpu/GPUBufferBinding.h:
+        * platform/graphics/gpu/GPUCommandBuffer.h:
+        (WebCore::GPUCommandBuffer::usedBuffers const):
+        (WebCore::GPUCommandBuffer::useBuffer):
+        * platform/graphics/gpu/GPUDevice.cpp:
+        (WebCore::GPUDevice::tryCreateBuffer): Pass Ref of itself for Buffer to request the Queue later, if needed.
+        (WebCore::GPUDevice::tryCreateBuffer const): Deleted.
+        * platform/graphics/gpu/GPUDevice.h:
+        * platform/graphics/gpu/GPUProgrammablePassEncoder.cpp: Retain the encoder's commandBuffer to reference its used resource buffers.
+        (WebCore::GPUProgrammablePassEncoder::GPUProgrammablePassEncoder):
+        * platform/graphics/gpu/GPUProgrammablePassEncoder.h:
+        (WebCore::GPUProgrammablePassEncoder::commandBuffer const):
+        * platform/graphics/gpu/GPURenderPassEncoder.h:
+        * platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
+        (WebCore::GPUBuffer::validateBufferCreate): Move validation out of tryCreate.
+        (WebCore::GPUBuffer::tryCreate): Create both shared and private buffers, depending on usage.
+        (WebCore::GPUBuffer::GPUBuffer):
+        (WebCore::GPUBuffer::~GPUBuffer): Call destroy instead of just unmap.
+        (WebCore::GPUBuffer::state const):
+        (WebCore::GPUBuffer::setSubData): Uses a cached collection of staging MTLBuffers to encode data copies to the implementation MTLBuffer.
+        (WebCore::GPUBuffer::commandBufferCommitted): Register on the GPUBuffer that the provided MTLCommandBuffer uses it, and is about to be committed.
+        (WebCore::GPUBuffer::commandBufferCompleted): MTLCommandBuffer's onCompletedHandler calls this.
+        (WebCore::GPUBuffer::reuseSubDataBuffer): SetSubData's blit command buffers call this to return a staging buffer to the pool.
+        (WebCore::GPUBuffer::registerMappingCallback):
+        (WebCore::GPUBuffer::runMappingCallback):
+        (WebCore::GPUBuffer::unmap):
+        (WebCore::GPUBuffer::destroy):
+        (WebCore::GPUBuffer::tryCreateSharedBuffer): Deleted.
+        * platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:
+        (WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder):
+        (WebCore::GPUProgrammablePassEncoder::setBindGroup):
+        * platform/graphics/gpu/cocoa/GPUQueueMetal.mm:
+        (WebCore::GPUQueue::submit): Ensure submitted buffers are in the correct state, and add completed handlers for synchronization.
+        * platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:
+        (WebCore::GPURenderPassEncoder::tryCreate):
+        (WebCore::GPURenderPassEncoder::GPURenderPassEncoder): Retain the commandBuffer for later reference.
+        (WebCore::GPURenderPassEncoder::setVertexBuffers): Mark vertex buffers as used before submission.
+        (WebCore::GPURenderPassEncoder::create): Deleted.
+
+        Buffer size updates in the IDL:
+        * Modules/webgpu/GPUBufferDescriptor.idl:
+        * Modules/webgpu/WebGPUBuffer.idl:
+        * Modules/webgpu/WebGPUBufferBinding.idl:
+        * Modules/webgpu/WebGPUCommandBuffer.idl:
+        * Modules/webgpu/WebGPURenderPassEncoder.idl:
+        * Modules/webgpu/WebGPUVertexAttributeDescriptor.idl:
+        * Modules/webgpu/WebGPUVertexInputDescriptor.idl:
+
+2019-02-27  Youenn Fablet  <youenn@apple.com>
+
+        Remove LeetCode FetchRequest quirk
+        https://bugs.webkit.org/show_bug.cgi?id=195100
+
+        Reviewed by Alex Christensen.
+
+        Covered by manual testing.
+
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::needsSignalQuirk):
+
+2019-02-27  Chris Dumez  <cdumez@apple.com>
+
+        Unable to log into chase.com on iPad when DeviceMotionEvent API is disabled
+        https://bugs.webkit.org/show_bug.cgi?id=195101
+        <rdar://problem/48423023>
+
+        Reviewed by Geoffrey Garen.
+
+        Add site-specific quirk for chase.com on iOS where we fire a dummy DeviceMotionEvent if the page
+        tries to register a "devicemotion" event listener and fails because the API is disabled. This is
+        needed to unblock the site and proceed with the login flow.
+
+        Unfortunately, document()->settings().needsSiteSpecificQuirks() is false on iOS so I could not
+        guard the quirk behind this flag.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::addEventListener):
+        (WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener):
+        * page/DOMWindow.h:
+
+2019-02-27  Antoine Quint  <graouts@apple.com>
+
+        Support Pointer Events on macOS
+        https://bugs.webkit.org/show_bug.cgi?id=195008
+        <rdar://problem/47454419>
+
+        Reviewed by Dean Jackson.
+
+        We now dispatch relevant pointer events as we prepare to dispatch mouse events. In most cases, this means we dispatch
+        a pointer event of the same type, with "mouse" being substituted by "pointer", and with the same properties with the
+        exception that if preventDefault() is called for a "pointerdown" event, the matching "mousedown" will not be dispatched,
+        and the same behavior also extends to "pointerup".
+
+        Tests: pointerevents/mouse/over-enter-out-leave.html
+               pointerevents/mouse/pointer-capture.html
+               pointerevents/mouse/pointer-event-basic-properties.html
+               pointerevents/mouse/pointer-events-before-mouse-events.html
+               pointerevents/mouse/pointerdown-prevent-default.html
+
+        * Configurations/FeatureDefines.xcconfig:
+        * dom/Document.cpp: All of the touch-action related members and functions should be iOS-specific since the touch-action
+        property does not have any effect on macOS.
+        (WebCore::Document::invalidateRenderingDependentRegions):
+        (WebCore::Document::nodeWillBeRemoved):
+        (WebCore::Document::updateTouchActionElements):
+        * dom/Document.h:
+        * dom/Element.cpp:
+        (WebCore::Element::dispatchMouseEvent): Dispatch a pointer event matching the mouse event that is about to be dispatched.
+        If preventDefault() is called in the event handler for either "pointerdown" or "pointerup", do not proceed with dispatching
+        the mouse event.
+        * dom/PointerEvent.cpp:
+        (WebCore::pointerEventType):
+        (WebCore::PointerEvent::create):
+        * dom/PointerEvent.h:
+        * page/EventHandler.cpp: Check both the pointer and mouse events to see if we need to dispatch "enter" and "leave" events.
+        (WebCore::hierarchyHasCapturingEventListeners):
+        (WebCore::EventHandler::updateMouseEventTargetNode):
+        * page/PointerCaptureController.cpp: Fix a build error which only happened on macOS.
+        (WebCore::PointerCaptureController::PointerCaptureController): Create the CapturingData for the unique mouse pointer.
+        (WebCore::PointerCaptureController::hasPointerCapture): The code did not match the spec cited in the comment, only the
+        pending target override needs to be considered to determine whether a given element has pointer capture enabled.
+        (WebCore::PointerCaptureController::dispatchEvent): Dispatch the provided pointer event, accounting for pointer capture if
+        it is set.
+        * page/PointerLockController.cpp: Fix a build error which only happened on macOS.
+        * style/StyleTreeResolver.cpp:
+        (WebCore::Style::TreeResolver::resolveElement): Code related to touch-action is only relevant to iOS.
+
+2019-02-27  Sihui Liu  <sihui_liu@apple.com>
+
+        Network Process is put to suspended when holding locked IndexedDB files
+        https://bugs.webkit.org/show_bug.cgi?id=195024
+        <rdar://problem/45194169>
+
+        Reviewed by Geoffrey Garen.
+
+        We found network process was suspended when IDBDatabase was being closed in the background database thread, 
+        holding locks to its database file. To avoid starvation or deadlock, we need to keep network process alive by 
+        taking background assertion in UI process until the closes are done and locks are released.
+
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::create):
+        (WebCore::IDBServer::IDBServer::IDBServer):
+        (WebCore::IDBServer::IDBServer::createBackingStore):
+        (WebCore::IDBServer::IDBServer::closeDatabase):
+        (WebCore::IDBServer::IDBServer::didCloseDatabase):
+        * Modules/indexeddb/server/IDBServer.h:
+        (WebCore::IDBServer::IDBServer::create):
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
+        (WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
+        (WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
+        (WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
+        (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
+        (WebCore::IDBServer::UniqueIDBDatabase::notifyServerAboutClose):
+        * Modules/indexeddb/server/UniqueIDBDatabase.h:
+
+2019-02-26  Simon Fraser  <simon.fraser@apple.com>
+
+        Have a single notion of scroll position in the scrolling tree and derive layoutViewport from it
+        https://bugs.webkit.org/show_bug.cgi?id=194973
+
+        Reviewed by Antti Koivisto.
+
+        This patch cleans up how the scrolling tree responds to scrolls.
+
+        First, ScrollingTreeScrollingNode::m_currentScrollPosition is "truth" for scrolling thread/
+        UI process scroll position.
+
+        On macOS where handleWheelEvent on the scrolling thread changes scroll position, the
+        bottleneck is ScrollingTreeScrollingNode::scrollTo() which sets the new scroll position,
+        update the visual viewport (for frame scrolls) updates the scrolledContentsLayer position,
+        updates related layers on this node (counter-scrolling layers etc), and then tells the
+        scrolling tree, which recurses through descendant nodes so they can adjust their layer
+        positions.
+
+        On iOS, the bottleneck is ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling(),
+        which does the above other than setting scrolledContentsLayer (since we're reacting to
+        layer state changes, not producing them).
+
+        updateLayersAfterAncestorChange() is renamed to relatedNodeScrollPositionDidChange(), and
+        ScrollingTree does the tree walk so classes don't have to implement
+        updateLayersAfterAncestorChange() just to talk children. The ScrollingTree tree walk knows
+        how to get the correct layoutViewport and to stop at frame boundaries (layer updates never
+        need to cross frame boundaries).
+
+        We preserve 'cumulativeDelta'; it's necessary for things like fixed inside overflow:scroll,
+        since the fixed state was computed with the "layout" scroll position, so we have to account
+        for the scroll delta since the last committed position. It's possible we could improve this
+        in future.
+
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling):
+        (WebCore::ScrollingTree::notifyRelatedNodesAfterScrollPositionChange):
+        (WebCore::ScrollingTree::notifyRelatedNodesRecursive):
+        (WebCore::ScrollingTree::mainFrameLayoutViewport):
+        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): Deleted.
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeFrameHostingNode.cpp:
+        (WebCore::ScrollingTreeFrameHostingNode::updateLayersAfterAncestorChange): Deleted.
+        * page/scrolling/ScrollingTreeFrameHostingNode.h:
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::updateViewportForCurrentScrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNode::localToContentsPoint const):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::relatedNodeScrollPositionDidChange):
+        (WebCore::ScrollingTreeNode::enclosingScrollingNodeIncludingSelf):
+        * page/scrolling/ScrollingTreeNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::minimumScrollPosition const):
+        (WebCore::ScrollingTreeScrollingNode::scrollLimitReached const):
+        (WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const):
+        (WebCore::ScrollingTreeScrollingNode::scrollBy):
+        (WebCore::ScrollingTreeScrollingNode::scrollTo):
+        (WebCore::ScrollingTreeScrollingNode::currentScrollPositionChanged):
+        (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
+        (WebCore::ScrollingTreeScrollingNode::localToContentsPoint const):
+        (WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::setScrollPosition): Deleted.
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
+        (WebCore::ScrollingTreeScrollingNodeDelegate::currentScrollPosition const):
+        (WebCore::ScrollingTreeScrollingNodeDelegate::scrollPosition const): Deleted.
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
+        * page/scrolling/ThreadedScrollingTree.h:
+        * page/scrolling/cocoa/ScrollingTreeFixedNode.h:
+        * page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
+        (WebCore::ScrollingTreeFixedNode::relatedNodeScrollPositionDidChange):
+        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Deleted.
+        * page/scrolling/cocoa/ScrollingTreeStickyNode.h:
+        * page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
+        (WebCore::ScrollingTreeStickyNode::relatedNodeScrollPositionDidChange):
+        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Deleted.
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition const): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange): Deleted.
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
+        (): Deleted.
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::~ScrollingTreeOverflowScrollingNodeMac): Deleted.
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterAncestorChange): Deleted.
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::scrollPosition const): Deleted.
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition): Deleted.
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition): Deleted.
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterDelegatedScroll): Deleted.
+        * page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::isAlreadyPinnedInDirectionOfGesture):
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::stretchAmount):
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::pinnedInDirection):
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::adjustScrollPositionToBoundsIfNecessary):
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollOffset const):
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollOnAxis):
+
+2019-02-22  Simon Fraser  <simon.fraser@apple.com>
+
+        Have a single notion of scroll position in the scrolling tree and derive layoutViewport from it
+        https://bugs.webkit.org/show_bug.cgi?id=194973
+
+        Reviewed by Antti Koivisto.
+
+        The "master" value for the scroll position of a ScrollingTreeScrollingNode is now its m_scrollPosition member;
+        layout viewports and layer positions will be set from this. This allows scrollPosition() to no longer be virtual
+        and require different code for each scrolling node subclass, and adds a choke point that we can use to update
+        the layout viewport.
+        
+        We can remove m_probableMainThreadScrollPosition on ScrollingTreeFrameScrollingNodeMac because this was really just
+        an alias for the scroll position.
+
+        Add some isRootNode() checks for things that should only affect the main frame.
+
+        * page/scrolling/ScrollingTree.h: Remove fixedPositionRect() which was unused, and is a per-frame thing so makes
+        no sense here.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::didChangeScrollPosition):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        (WebCore::ScrollingTreeFrameScrollingNode::layoutViewport const):
+        (WebCore::ScrollingTreeFrameScrollingNode::setLayoutViewport):
+        (WebCore::ScrollingTreeFrameScrollingNode::fixedPositionRect): Deleted.
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
+        (WebCore::ScrollingTreeScrollingNode::setScrollPositionInternal):
+        (WebCore::ScrollingTreeScrollingNode::didChangeScrollPosition):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        (WebCore::ScrollingTreeScrollingNode::scrollPosition const):
+        * page/scrolling/ios/ScrollingTreeIOS.cpp:
+        (WebCore::ScrollingTreeIOS::fixedPositionRect): Deleted.
+        * page/scrolling/ios/ScrollingTreeIOS.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition const): Deleted.
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::scrollPosition const): Deleted.
+
+2019-02-27  Ulrich Pflueger  <up@nanocosmos.de>
+
+        [MSE] SourceBuffer sample time increment vs. last frame duration check is broken
+        https://bugs.webkit.org/show_bug.cgi?id=194747
+        <rdar://problem/48148469>
+
+        Reviewed by Jer Noble.
+
+        Prevent unintended frame drops by including last frame duration in discontinuity check. 
+
+        Test: media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html
+
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
+
+2019-02-27  Timothy Hatcher  <timothy@apple.com>
+
+        REGRESSION: WebKit content crash in Base System (because NSAppearance is NULL).
+        https://bugs.webkit.org/show_bug.cgi?id=195086
+        rdar://problem/48419124
+
+        Reviewed by Tim Horton.
+
+        * platform/mac/ScrollAnimatorMac.mm:
+        (-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.
+
+2019-02-26  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Remove conditional compile guard for InsertIntoTextNodeCommand::doReapply
+        https://bugs.webkit.org/show_bug.cgi?id=195067
+        <rdar://problem/44812080>
+
+        Reviewed by Tim Horton.
+
+        This iOS-specific override was introduced to fix <rdar://problem/7114425>, in which the last typed character
+        would be revealed when redoing text input on iOS inside a password field. The associated change fixed this bug
+        by overriding doReapply on iOS to only insert text (instead of additionally handling password echo); however, it
+        really makes sense to skip password echo when redoing on all platforms, so we can just remove the platform-
+        specific guards around this logic.
+
+        Doing this allows us to add the `hasEditableStyle()` check on iOS when redoing text insertion, which results in
+        a very subtle behavior change covered by the new layout test below.
+
+        Test: editing/undo/redo-text-insertion-in-non-editable-node.html
+
+        * editing/InsertIntoTextNodeCommand.cpp:
+        (WebCore::InsertIntoTextNodeCommand::doReapply):
+        * editing/InsertIntoTextNodeCommand.h:
+
+2019-02-26  Keith Miller  <keith_miller@apple.com>
+
+        Code quality cleanup in NeverDestroyed
+        https://bugs.webkit.org/show_bug.cgi?id=194824
+
+        Reviewed by Mark Lam.
+
+        name_names.pl should not just assume the layout of LazyNeverDestroyed.
+
+        * dom/make_names.pl:
+        (printNamesCppFile):
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        Do not try to observe the timer when Page is nullptr
+        https://bugs.webkit.org/show_bug.cgi?id=195076
+
+        Reviewed by Tim Horton.
+
+        Covered by fast/dom/Window/timer-null-script-execution-context.html.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+
+2019-02-20  Jer Noble  <jer.noble@apple.com>
+
+        [Cocoa] Media elements will restart network buffering just before suspending
+        https://bugs.webkit.org/show_bug.cgi?id=193691
+
+        Reviewed by Eric Carlson.
+
+        API Test: WebKit.ProcessSuspendMediaBuffering
+
+        Allow the Page to suspend all media buffering in its child Documents.
+
+        * dom/Document.cpp:
+        (WebCore::Document::suspendAllMediaBuffering):
+        (WebCore::Document::resumeAllMediaBuffering):
+        * dom/Document.h:
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::dataBufferingPermitted const):
+        (WebCore::MediaElementSession::suspendBuffering):
+        (WebCore::MediaElementSession::resumeBuffering):
+        (WebCore::MediaElementSession::bufferingSuspended const):
+        * html/MediaElementSession.h:
+        * page/Page.cpp:
+        (WebCore::Page::suspendAllMediaBuffering):
+        (WebCore::Page::resumeAllMediaBuffering):
+        * page/Page.h:
+        (WebCore::Page::mediaPlaybackIsSuspended const):
+        (WebCore::Page::mediaBufferingIsSuspended const):
+        (WebCore::Page::mediaPlaybackIsSuspended): Deleted.
+        * platform/audio/PlatformMediaSession.h:
+        (WebCore::PlatformMediaSession::suspendBuffering):
+        (WebCore::PlatformMediaSession::resumeBuffering):
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::suspendAllMediaBufferingForDocument):
+        (WebCore::PlatformMediaSessionManager::resumeAllMediaBufferingForDocument):
+        * platform/audio/PlatformMediaSessionManager.h:
+
+2019-02-26  Youenn Fablet  <youenn@apple.com>
+
+        Move service worker response validation from the service worker client to the service worker itself
+        https://bugs.webkit.org/show_bug.cgi?id=194716
+
+        Reviewed by Geoffrey Garen.
+
+        Added response validation at service worker side.
+
+        No change of behavior except for now logging validation error messages in the console.
+        Covered by rebased tests.
+
+        * workers/service/context/ServiceWorkerFetch.cpp:
+        (WebCore::ServiceWorkerFetch::validateResponse):
+        (WebCore::ServiceWorkerFetch::processResponse):
+        (WebCore::ServiceWorkerFetch::dispatchFetchEvent):
+
+2019-02-26  Sihui Liu  <sihui_liu@apple.com>
+
+        [Mac WK2] storage/indexeddb/IDBObject-leak.html is flaky
+        https://bugs.webkit.org/show_bug.cgi?id=195036
+
+        Reviewed by Geoffrey Garen.
+
+        When connection to IDBServer is lost, IDBDatabase in web process should not only stop active transactions, but 
+        also transactions in committing process.
+
+        Also, TransactionOpration should clear its perform function when the operation is being completed, otherwise 
+        there is a reference cycle of TransactionOpration.
+
+        Covered by existing tests storage/indexeddb/IDBObject-leak.html.
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::connectionToServerLost): notify committing transasctions that connection is lost.
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::connectionClosedFromServer): notify IDBConnectionProxy that transaction ends.
+        * Modules/indexeddb/client/IDBConnectionProxy.cpp:
+        (WebCore::IDBClient::IDBConnectionProxy::forgetTransaction): clear finished transactions.
+        * Modules/indexeddb/client/IDBConnectionProxy.h:
+        * Modules/indexeddb/client/TransactionOperation.h:
+        (WebCore::IDBClient::TransactionOperation::doComplete): clear perform function unconditionally when the 
+        operation is in completion process. 
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=195066
+        <rdar://problem/48411682>
+
+        Reviewed by Tim Horton.
+
+        Now all the empty clearContentChangeObservers() implementations can be removed.
+
+        * dom/Document.cpp:
+        (WebCore::Document::platformSuspendOrStopActiveDOMObjects):
+        * loader/EmptyClients.h:
+        * page/ChromeClient.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::willDetachPage):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
+        (WebCore::ContentChangeObserver::didSuspendActiveDOMObjects): Might need to merge them.
+        (WebCore::ContentChangeObserver::willDetachPage):
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Move style recalc schedule observation logic to ContentChangeObserver
+        https://bugs.webkit.org/show_bug.cgi?id=195062
+        <rdar://problem/48409258>
+
+        Reviewed by Tim Horton.
+
+        Also rename registerDOMTimerForContentObservationIfNeeded to be consistent with the did* naming style.
+
+        * dom/Document.cpp:
+        (WebCore::Document::scheduleStyleRecalc):
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::didInstallDOMTimer):
+        (WebCore::ContentChangeObserver::didScheduleStyleRecalc):
+        (WebCore::ContentChangeObserver::registerDOMTimerForContentObservationIfNeeded): Deleted.
+
+2019-02-26  Chris Dumez  <cdumez@apple.com>
+
+        [iOS] Regression(PSON) Scroll position is no longer restored when navigating back to reddit.com
+        https://bugs.webkit.org/show_bug.cgi?id=195054
+        <rdar://problem/48330549>
+
+        Reviewed by Geoff Garen.
+
+        Add MaintainMemoryCache flag to indicate that the memory cache should not get purged.
+
+        * page/MemoryRelease.cpp:
+        (WebCore::releaseNoncriticalMemory):
+        (WebCore::releaseCriticalMemory):
+        (WebCore::releaseMemory):
+        * page/MemoryRelease.h:
+
+2019-02-26  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r241970.
+        https://bugs.webkit.org/show_bug.cgi?id=195057
+
+        made the QuickLook.LegacyQuickLookContent API test flakey
+        (Requested by estes on #webkit).
+
+        Reverted changeset:
+
+        "[iOS] Break a reference cycle between PreviewLoader and
+        ResourceLoader"
+        https://bugs.webkit.org/show_bug.cgi?id=194964
+        https://trac.webkit.org/changeset/241970
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Simplify content observation API by removing explicit DOMTimer observation.
+        https://bugs.webkit.org/show_bug.cgi?id=195023
+        <rdar://problem/48381885>
+
+        Reviewed by Tim Horton.
+
+        In the future we might decide that certain activities don't require DOMTimer observation, but that should
+        be internal to ContentChangeObserver.
+
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::startObservingContentChanges):
+        (WebCore::ContentChangeObserver::stopObservingContentChanges):
+        * page/ios/EventHandlerIOS.mm:
+        (WebCore::EventHandler::mouseMoved):
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Move observing logic from Document::updateStyleIfNeeded to ContentChangeObserver
+        https://bugs.webkit.org/show_bug.cgi?id=195032
+        <rdar://problem/48388063>
+
+        Reviewed by Tim Horton.
+
+        This might eventually turn into a regular start/stop content observing call.
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateStyleIfNeeded):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::startObservingStyleResolve):
+        (WebCore::ContentChangeObserver::stopObservingStyleResolve):
+
+2019-02-26  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Move CheckForVisibilityChange to ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=195035
+        <rdar://problem/48389123>
+
+        Reviewed by Tim Horton.
+
+        Visibility checking logic belongs to ContentChangeObserver.
+
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::elementImplicitVisibility):
+        (WebCore::ContentChangeObserver::StyleChange::StyleChange):
+        (WebCore::ContentChangeObserver::StyleChange::~StyleChange):
+        * rendering/updating/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::updateElementRenderer):
+        (WebCore::elementImplicitVisibility): Deleted.
+        (WebCore::CheckForVisibilityChange::CheckForVisibilityChange): Deleted.
+        (WebCore::CheckForVisibilityChange::~CheckForVisibilityChange): Deleted.
+
+2019-02-26  Philippe Normand  <pnormand@igalia.com>
+
+        [EGL] Runtime support for RGB565 pixel layout
+        https://bugs.webkit.org/show_bug.cgi?id=194817
+
+        Reviewed by Carlos Garcia Campos.
+
+        Currently our graphics pipeline always relies on a ARGB8888 (32
+        bpp) pixel configuration. On some low-end (old) embedded platforms
+        the graphics driver is sometimes optimized for 16 bpp
+        configurations, such as RGB565. On those platforms the application
+        can now set the WEBKIT_EGL_PIXEL_LAYOUT environment variable to
+        "RGB565" to adjust to the best pixel configuration supported by
+        the screen and graphics driver.
+
+        * platform/graphics/egl/GLContextEGL.cpp:
+        (WebCore::GLContextEGL::getEGLConfig):
+
+2019-02-26  Philippe Normand  <pnormand@igalia.com> and Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [WPE] Add API for webview background color configuration
+        https://bugs.webkit.org/show_bug.cgi?id=192305
+
+        Reviewed by Michael Catanzaro.
+
+        Adapt the FrameView API to allow a default non-white background color.
+
+        * page/Frame.cpp:
+        (WebCore::Frame::createView): Replace isTransparent argument with a background color one.
+        * page/Frame.h:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::recalculateBaseBackgroundColor): Use Color::transparent if m_isTransparent is true.
+        (WebCore::FrameView::updateBackgroundRecursively): Allow the fallback background color to be non-white, this is
+        used only in non-dark-mode-css build configurations.
+        * page/FrameView.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setViewIsTransparent): Use Color::transparent if transparent is true.
+
+2019-02-25  Yongjun Zhang  <yongjun_zhang@apple.com>
+
+        scalableNativeWebpageParameters() is not preserved on new page navigation.
+        https://bugs.webkit.org/show_bug.cgi?id=194892
+        <rdar://problem/47538280>
+
+        If a page's current default viewport configuration is scalableNativeWebpageParameters due to
+        the fact that m_canIgnoreScalingConstraints is true, loading a new page should preserve this
+        configuration until we derive the right values from viewport meta-tag.
+
+        Reviewed by Wenson Hsieh.
+
+        Test: fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html
+
+        * page/ViewportConfiguration.cpp:
+        (WebCore::ViewportConfiguration::canOverrideConfigurationParameters const): Use fixedNativeWebpageParameters().
+        (WebCore::ViewportConfiguration::updateDefaultConfiguration): Use nativeWebpageParameters.
+        (WebCore::ViewportConfiguration::nativeWebpageParameters): Return the appropriate default configuration
+            based on m_canIgnoreScalingConstraints and shouldIgnoreMinimumEffectiveDeviceWidth().
+        (WebCore::ViewportConfiguration::fixedNativeWebpageParameters): Renamed from nativeWebpageParameters()
+        (WebCore::ViewportConfiguration::scalableNativeWebpageParameters): Use fixedNativeWebpageParameters.
+        * page/ViewportConfiguration.h: Make nativeWebpageParameters() an instance method and change the old
+            static method to fixedNativeWebpageParameters which better reflects the actual behavior.
+
+2019-02-25  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Move observing logic from DOMWindow::clearTimeout to ContentChangeObserver
+        https://bugs.webkit.org/show_bug.cgi?id=194988
+        <rdar://problem/48343040>
+
+        Reviewed by Tim Horton.
+
+        ContentChangeObserver::removeDOMTimer takes care of the canceled timer removal.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::clearTimeout):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::startObservingDOMTimer):
+        (WebCore::ContentChangeObserver::stopObservingDOMTimer):
+        (WebCore::ContentChangeObserver::removeDOMTimer):
+
+2019-02-25  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Move observing logic from DOMTimer to ContentChangeObserver
+        https://bugs.webkit.org/show_bug.cgi?id=194987
+        <rdar://problem/48342910>
+
+        Reviewed by Tim Horton.
+
+        Content obvservation logic should all move to the ContentChangeObserver class.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+        (WebCore::DOMTimer::fired):
+        * page/Page.cpp:
+        (WebCore::Page::Page):
+        * page/Page.h:
+        (WebCore::Page::contentChangeObserver):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::ContentChangeObserver):
+        (WebCore::ContentChangeObserver::registerDOMTimerForContentObservationIfNeeded):
+        (WebCore::ContentChangeObserver::startObservingDOMTimer):
+        (WebCore::ContentChangeObserver::stopObservingDOMTimer):
+        (WebCore::ContentChangeObserver::containsObservedDOMTimer):
+        (WebCore::ContentChangeObserver::addObservedDOMTimer):
+        (WebCore::ContentChangeObserver::removeObservedDOMTimer):
+
+2019-02-25  John Wilander  <wilander@apple.com>
+
+        Introduce and adopt new class RegistrableDomain for eTLD+1
+        https://bugs.webkit.org/show_bug.cgi?id=194791
+        <rdar://problem/48179240>
+
+        Reviewed by Alex Christensen, Fujii Hironori, and Brent Fulgham.
+
+        A new API test was added. Plenty of existing layout tests under
+        http/tests/resourceLoadStatistics/ and http/tests/storageAccess/ test the code.
+
+        This patch introduces and adopts a new class called WebCore::RegistrableDomain
+        which represents a domain's eTLD+1 (effective top level domain plus one) and is
+        the basis for the term "site," as in same-site. Other popular names include
+        high-level domain, primary domain, and top privately controlled/owned domain.
+        Effective top level domains are enumerated on the Public Suffix List
+        (https://publicsuffix.org).
+
+        This class just uses the full domain for when the Public Suffix List cannot help
+        finding the registrable domain and for WebKit ports that haven't enabled
+        PUBLIC_SUFFIX_LIST. It also uses the string "nullOrigin" as a representation
+        for the null or unique origin (this matches how these origins were handled
+        before).
+
+        The implementation is a wrapper around a String and the functions and class
+        members that now make use of this new class used to handle regular String
+        objects which didn't help much in terms of type safety or guarantees that the
+        string had already been converted to an eTLD+1.
+
+        We've at least two bad bugs in the Storage Access API because of confusion
+        between a URL's eTLD+1 and its host. The usage of WebCore::RegistrableDomain
+        will prohibit such bugs in the future.
+
+        Partitioning in WebKit also uses eTLD+1 to a large extent. I plan to adopt
+        WebCore::RegistrableDomain for partitioning in a later patch.
+
+        This patch also enhances parameter naming by:
+        - Removing parts that refer to "primary" as in primaryDomain.
+        - Replacing references to "TopPrivatelyControlledDomain" with "RegistrableDomain."
+        - Replacing references to "TopPrivatelyOwnedDomain" with "RegistrableDomain."
+        - Using the term "domain" consistently instead of e.g. "host."
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/Document.cpp:
+        (WebCore::Document::hasRequestedPageSpecificStorageAccessWithUserInteraction):
+        (WebCore::Document::setHasRequestedPageSpecificStorageAccessWithUserInteraction):
+        * dom/Document.h:
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::parseAdClickAttribution const):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaSessionTitle const):
+        * loader/AdClickAttribution.cpp:
+        (WebCore::AdClickAttribution::url const):
+        (WebCore::AdClickAttribution::referrer const):
+        (WebCore::AdClickAttribution::toString const):
+        * loader/AdClickAttribution.h:
+        (WebCore::AdClickAttribution::Source::Source):
+        (WebCore::AdClickAttribution::Source::matches const):
+        (WebCore::AdClickAttribution::Source::deleteValue):
+        (WebCore::AdClickAttribution::Destination::Destination):
+        (WebCore::AdClickAttribution::Destination::matches const):
+        (WebCore::AdClickAttribution::Destination::deleteValue):
+        * loader/ResourceLoadObserver.cpp:
+        (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
+        (WebCore::ResourceLoadObserver::setLogUserInteractionNotificationCallback):
+        (WebCore::ResourceLoadObserver::setLogWebSocketLoadingNotificationCallback):
+        (WebCore::ResourceLoadObserver::setLogSubresourceLoadingNotificationCallback):
+        (WebCore::ResourceLoadObserver::setLogSubresourceRedirectNotificationCallback):
+        (WebCore::ResourceLoadObserver::logSubresourceLoading):
+        (WebCore::ResourceLoadObserver::logWebSocketLoading):
+        (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+        (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
+        (WebCore::ResourceLoadObserver::logFontLoad):
+        (WebCore::ResourceLoadObserver::logCanvasRead):
+        (WebCore::ResourceLoadObserver::logCanvasWriteOrMeasure):
+        (WebCore::ResourceLoadObserver::logNavigatorAPIAccessed):
+        (WebCore::ResourceLoadObserver::logScreenAPIAccessed):
+        (WebCore::ResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
+        (WebCore::ResourceLoadObserver::statisticsForOrigin):
+        (WebCore::primaryDomain): Deleted.
+        (WebCore::ResourceLoadObserver::ensureResourceStatisticsForPrimaryDomain): Deleted.
+        * loader/ResourceLoadObserver.h:
+        * loader/ResourceLoadStatistics.cpp:
+        (WebCore::ResourceLoadStatistics::encode const):
+        (WebCore::ResourceLoadStatistics::decode):
+        (WebCore::ResourceLoadStatistics::toString const):
+        (WebCore::ResourceLoadStatistics::merge):
+        (WebCore::ResourceLoadStatistics::primaryDomain): Deleted.
+        * loader/ResourceLoadStatistics.h:
+        (WebCore::ResourceLoadStatistics::ResourceLoadStatistics):
+        * page/Page.cpp:
+        (WebCore::Page::logNavigation):
+        (WebCore::Page::mainFrameLoadStarted):
+        * page/Page.h:
+        * page/PerformanceMonitor.cpp:
+        (WebCore::reportPageOverPostLoadResourceThreshold):
+        * platform/RegistrableDomain.h: Added.
+        (WebCore::RegistrableDomain::RegistrableDomain):
+        (WebCore::RegistrableDomain::isEmpty const):
+        (WebCore::RegistrableDomain::string const):
+        (WebCore::RegistrableDomain::operator!= const):
+        (WebCore::RegistrableDomain::operator== const):
+        (WebCore::RegistrableDomain::matches const):
+        (WebCore::RegistrableDomain::isolatedCopy const):
+        (WebCore::RegistrableDomain::isHashTableDeletedValue const):
+        (WebCore::RegistrableDomain::hash const):
+        (WebCore::RegistrableDomain::RegistrableDomainHash::hash):
+        (WebCore::RegistrableDomain::RegistrableDomainHash::equal):
+        (WebCore::RegistrableDomain::encode const):
+        (WebCore::RegistrableDomain::decode):
+        * platform/network/NetworkStorageSession.cpp:
+        (WebCore::NetworkStorageSession::shouldBlockThirdPartyCookies const):
+        (WebCore::NetworkStorageSession::shouldBlockCookies const):
+        (WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor):
+        (WebCore::NetworkStorageSession::removePrevalentDomains):
+        (WebCore::NetworkStorageSession::hasStorageAccess const):
+        (WebCore::NetworkStorageSession::getAllStorageAccessEntries const):
+        (WebCore::NetworkStorageSession::grantStorageAccess):
+        (WebCore::getPartitioningDomain): Deleted.
+        * platform/network/NetworkStorageSession.h:
+
+2019-02-25  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: <footer> HTML5 tag not reading as ARIA Landmark to VoiceOver
+        https://bugs.webkit.org/show_bug.cgi?id=190138
+        <rdar://problem/44907695>
+
+        Reviewed by Joanmarie Diggs.
+
+        Make sure that footer elements use the right role depending on their context.
+        If scoped to body, they become contentinfo. Otherwise they are just delineated by
+        a footer subrole.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::isLandmark const):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
+        (WebCore::AccessibilityRenderObject::isDescendantOfElementType const):
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        * accessibility/AccessibilityRenderObject.h:
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper subrole]):
+
+2019-02-25  Sihui Liu  <sihui_liu@apple.com>
+
+        IndexedDB: IDBDatabase and IDBTransaction are leaked in layout tests
+        https://bugs.webkit.org/show_bug.cgi?id=194709
+
+        Reviewed by Geoffrey Garen.
+
+        When connection to IDB server is closed, IDBTransaction would abort without notifying IDBDatabase, so 
+        IDBDatabase didn't clear its reference to IDBTransaction which created a reference cycle. 
+        Also IDBTransaction didn't clear its reference to IDBRequest in this case and it led to another reference cycle
+        between IDBOpenDBRequest and IDBTransaction.
+
+        Test: storage/indexeddb/IDBObject-leak.html
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::connectionToServerLost):
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::IDBTransaction):
+        (WebCore::IDBTransaction::~IDBTransaction):
+        (WebCore::IDBTransaction::connectionClosedFromServer):
+        * Modules/indexeddb/IDBTransaction.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::numberOfIDBTransactions const):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-02-25  Zalan Bujtas  <zalan@apple.com>
+
+        Add missing stream parameter. Unreviewed.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::fired):
+
+2019-02-25  Zalan Bujtas  <zalan@apple.com>
+
+        Unreviewed build fix after r242032.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+
+2019-02-20  Darin Adler  <darin@apple.com>
+
+        Incorrect use of String::foldCase for font family names
+        https://bugs.webkit.org/show_bug.cgi?id=194895
+
+        Reviewed by Myles C. Maxfield.
+
+        * platform/graphics/FontCascadeDescription.cpp:
+        (WebCore::FontCascadeDescription::familiesEqualForTextAutoSizing): Use
+        familyNamesAreEqual instead of calling convertToASCIILowercase directly.
+        (WebCore::FontCascadeDescription::familyNamesAreEqual): Use AtomicString's
+        operator== when we want case sensitive family name comparisons. This is a special
+        case to accomodate CoreText, which uses "."-prefix names for internal fonts that
+        are treated case sensitively. (Ideally webpages would not use these fonts at all.)
+        (WebCore::FontCascadeDescription::familyNameHash): Use AtomicString's existingHash
+        when we want case sensitive family name hashing.
+        (WebCore::FontCascadeDescription::foldedFamilyName): Take a String instead of an
+        AtomicString so we can use this at an additional call site. Converting from an
+        AtomicString to a String if free and automatic at the existing call sites. Use
+        convertToASCIILowercase instead of foldCase for three reasons: 1) Other functions
+        here are folding only ASCII case by using ASCIICaseInsensitiveHash, and this one
+        must be consistent. 2) this is considerably faster, and 3) font family names don't
+        need arbitrary Unicode case folding, it's only A-Z that should be folded.
+        * platform/graphics/FontCascadeDescription.h: Take a String instead of AtomicString
+        in the foldedFamilyName function.
+
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::FontDatabase::collectionForFamily): Instead of calling foldCase, use
+        FontCascadeDescription::foldedFamilyName to correctly fold font family names.
+
+2019-02-25  Charlie Turner  <cturner@igalia.com>
+
+        [EME][GStreamer] Replace caps field loop with gst_structure_remove_fields
+        https://bugs.webkit.org/show_bug.cgi?id=194992
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Refactoring, no new tests.
+
+        * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
+        (transformCaps): Simplify the code a little. The idea to use this
+        utility function came from a review upstream here:
+        https://gitlab.freedesktop.org/gstreamer/gst-devtools/merge_requests/67
+
+2019-02-25  Alicia Boya García  <aboya@igalia.com>
+
+        [MSE][GStreamer] Batch player duration updates
+        https://bugs.webkit.org/show_bug.cgi?id=194220
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        This saves up a ton of CPU cycles doing layout unnecessarily when all
+        the appended frames extend the duration of the movie, like in
+        YTTV 2018 59.DASHLatencyVP9.
+
+        This patch is an optimization that introduces no new behavior.
+
+        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+        (WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
+        * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerMSE::blockDurationChanges):
+        (WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
+        (WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
+        * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
+
+2019-02-25  Miguel Gomez  <magomez@igalia.com>
+
+        [WPE] Add support for holepunch using an external video player
+        https://bugs.webkit.org/show_bug.cgi?id=194899
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Implement the holepunch feature to allow playback using an external player. This creates
+        a new dummy MediaPlayerPrivateHolePunch that accepts only the type "video/holepunch", and
+        whose goal is to just draw a transparent rectangle in the position where the video should be.
+        This can be used to allow a player placed on a lower plane than the browser to become visible.
+
+        Added ManualTest wpe/video-player-holepunch-external.html to test the feature.
+
+        * PlatformWPE.cmake:
+        * platform/HolePunch.cmake: Added.
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::buildMediaEnginesVector):
+        * platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp: Added.
+        (WebCore::MediaPlayerPrivateHolePunch::MediaPlayerPrivateHolePunch):
+        (WebCore::MediaPlayerPrivateHolePunch::~MediaPlayerPrivateHolePunch):
+        (WebCore::MediaPlayerPrivateHolePunch::platformLayer const):
+        (WebCore::MediaPlayerPrivateHolePunch::naturalSize const):
+        (WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):
+        (WebCore::MediaPlayerPrivateHolePunch::swapBuffersIfNeeded):
+        (WebCore::MediaPlayerPrivateHolePunch::proxy const):
+        (WebCore::mimeTypeCache):
+        (WebCore::MediaPlayerPrivateHolePunch::getSupportedTypes):
+        (WebCore::MediaPlayerPrivateHolePunch::supportsType):
+        (WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):
+        (WebCore::MediaPlayerPrivateHolePunch::notifyReadyState):
+        * platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: Added.
+        * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
+        (WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
+
+2019-02-24  Zalan Bujtas  <zalan@apple.com>
+
+        Introduce ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=194977
+        <rdar://problem/48338115>
+
+        Reviewed by Simon Fraser.
+
+        This patch is about piping through all the related WK* calls. 
+
+        * SourcesCocoa.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/Document.cpp:
+        (WebCore::Document::scheduleStyleRecalc):
+        (WebCore::Document::updateStyleIfNeeded):
+        (WebCore::Document::platformSuspendOrStopActiveDOMObjects):
+        * loader/FrameLoader.cpp:
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+        (WebCore::DOMTimer::fired):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::clearTimeout):
+        * page/Frame.cpp:
+        (WebCore::Frame::willDetachPage):
+        * page/Page.h:
+        (WebCore::Page::contentChangeObserver):
+        * page/ios/EventHandlerIOS.mm:
+        (WebCore::EventHandler::mouseMoved):
+        * rendering/updating/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::updateElementRenderer):
+        (WebCore::CheckForVisibilityChange::CheckForVisibilityChange):
+        (WebCore::CheckForVisibilityChange::~CheckForVisibilityChange):
+
+2019-02-24  Simon Fraser  <simon.fraser@apple.com>
+
+        Migrate from "fixedPositionRect" to "layoutViewport" in the scrolling tree
+        https://bugs.webkit.org/show_bug.cgi?id=194984
+
+        Reviewed by Sam Weinig.
+
+        Rename "fixedPositionRect" to "layoutViewport" in scrolling tree code.
+
+        Remove ScrollingTree::fixedPositionRect() which was only used on iOS, to fetch the
+        current layout viewport rect. Instead, set the layout viewport on the root
+        node in ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling().
+
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling):
+        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Deleted.
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeFrameHostingNode.cpp:
+        (WebCore::ScrollingTreeFrameHostingNode::updateLayersAfterAncestorChange):
+        * page/scrolling/ScrollingTreeFrameHostingNode.h:
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/cocoa/ScrollingTreeFixedNode.h:
+        * page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
+        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
+        * page/scrolling/cocoa/ScrollingTreeStickyNode.h:
+        * page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
+        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterAncestorChange):
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition):
+
+2019-02-24  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Change the InspectorOverlay to use native rather than canvas
+        https://bugs.webkit.org/show_bug.cgi?id=105023
+        <rdar://problem/13443692>
+
+        Reviewed by Brian Burg.
+
+        Should be no change in observed functionality.
+
+        * inspector/InspectorOverlay.h:
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::truncateWithEllipsis): Added.
+        (WebCore::localPointToRootPoint): Added.
+        (WebCore::contentsQuadToCoordinateSystem):
+        (WebCore::effectiveElementForNode): Added.
+        (WebCore::quadToPath): Added.
+        (WebCore::drawOutlinedQuadWithClip): Added.
+        (WebCore::drawOutlinedQuad): Added.
+        (WebCore::drawFragmentHighlight): Added.
+        (WebCore::drawShapeHighlight): Added.
+        (WebCore::InspectorOverlay::paint):
+        (WebCore::InspectorOverlay::setIndicating):
+        (WebCore::InspectorOverlay::shouldShowOverlay const):
+        (WebCore::InspectorOverlay::update):
+        (WebCore::InspectorOverlay::setShowPaintRects): Added.
+        (WebCore::InspectorOverlay::showPaintRect):
+        (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
+        (WebCore::InspectorOverlay::drawNodeHighlight):
+        (WebCore::InspectorOverlay::drawQuadHighlight):
+        (WebCore::InspectorOverlay::drawPaintRects):
+        (WebCore::InspectorOverlay::drawBounds): Added.
+        (WebCore::InspectorOverlay::drawRulers):
+        (WebCore::InspectorOverlay::drawElementTitle): Added.
+        (WebCore::contentsQuadToPage): Deleted.
+        (WebCore::InspectorOverlay::setPausedInDebuggerMessage): Deleted.
+        (WebCore::buildObjectForPoint): Deleted.
+        (WebCore::buildObjectForRect): Deleted.
+        (WebCore::buildArrayForQuad): Deleted.
+        (WebCore::buildObjectForHighlight): Deleted.
+        (WebCore::buildObjectForSize): Deleted.
+        (WebCore::InspectorOverlay::setShowingPaintRects): Deleted.
+        (WebCore::buildArrayForRendererFragments): Deleted.
+        (WebCore::localPointToRoot): Deleted.
+        (WebCore::appendPathCommandAndPoints): Deleted.
+        (WebCore::appendPathSegment): Deleted.
+        (WebCore::buildObjectForShapeOutside): Deleted.
+        (WebCore::buildObjectForElementData): Deleted.
+        (WebCore::InspectorOverlay::buildHighlightObjectForNode const): Deleted.
+        (WebCore::InspectorOverlay::buildObjectForHighlightedNodes const): Deleted.
+        (WebCore::InspectorOverlay::drawPausedInDebuggerMessage): Deleted.
+        (WebCore::InspectorOverlay::overlayPage): Deleted.
+        (WebCore::InspectorOverlay::forcePaint): Deleted.
+        (WebCore::InspectorOverlay::reset): Deleted.
+        (WebCore::evaluateCommandInOverlay): Deleted.
+        (WebCore::InspectorOverlay::evaluateInOverlay): Deleted.
+        (WebCore::InspectorOverlay::freePage): Deleted.
+
+        * inspector/agents/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::disable):
+        (WebCore::InspectorPageAgent::setShowPaintRects):
+        Drive-by: rename `setShowingPaintRects` to better match the protocol.
+
+        * inspector/agents/page/PageDebuggerAgent.h:
+        * inspector/agents/page/PageDebuggerAgent.cpp:
+        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
+        (WebCore::PageDebuggerAgent::setOverlayMessage): Deleted.
+        Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported.
+
+        * inspector/InspectorController.h:
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::createLazyAgents):
+        (WebCore::InspectorController::disconnectFrontend):
+        (WebCore::InspectorController::disconnectAllFrontends):
+        (WebCore::InspectorController::buildObjectForHighlightedNodes const): Deleted.
+
+        * testing/Internals.h:
+        * testing/Internals.idl:
+        * testing/Internals.cpp:
+        (WebCore::Internals::inspectorHighlightObject): Deleted.
+
+        * inspector/InspectorOverlayPage.css: Removed.
+        * inspector/InspectorOverlayPage.html: Removed.
+        * inspector/InspectorOverlayPage.js: Removed.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+
+2019-02-20  Darin Adler  <darin@apple.com>
+
+        Finish removing String::format
+        https://bugs.webkit.org/show_bug.cgi?id=194893
+
+        Reviewed by Daniel Bates.
+
+        * dom/Document.cpp:
+        (WebCore::Document::lastModified const): Use makeString and pad.
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::processFileDateString): Ditto.
+
+        * mathml/MathMLElement.cpp:
+        (WebCore::convertToPercentageIfNeeded): Use makeString and FormattedNumber.
+
+        * page/cocoa/ResourceUsageOverlayCocoa.mm:
+        (WebCore::ResourceUsageOverlay::platformDraw): Use makeString and pad.
+
+        * page/linux/ResourceUsageOverlayLinux.cpp:
+        (WebCore::cpuUsageString): Use makeString, FormattedNumber, and pad.
+        (WebCore::gcTimerString): Use String::number.
+
+        * platform/DateComponents.cpp:
+        (WebCore::DateComponents::toStringForTime const): Use makeString and pad.
+        (WebCore::DateComponents::toString const): Ditto.
+
+        * platform/LocalizedStrings.cpp: Removed comment that mentioned String::format,
+        and that was also inaccurate.
+
+        * platform/audio/HRTFElevation.cpp:
+        (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
+        Use makeString and pad.
+        * platform/mock/MockRealtimeVideoSource.cpp:
+        (WebCore::MockRealtimeVideoSource::drawText): Ditto.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::logLayerInfo): Ditto.
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::formatMediaControlsTime const): Ditto.
+
+2019-02-24  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [WPE][GTK] Remove user agent quirk for washingtonpost.com
+        https://bugs.webkit.org/show_bug.cgi?id=194981
+
+        Reviewed by Žan Doberšek.
+
+        Remove user agent quirk for washingtonpost.com because we support JPEG 2000 now.
+
+        * platform/UserAgentQuirks.cpp:
+        (WebCore::urlRequiresChromeBrowser):
+
+2019-02-23  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove remnants of iOS WK1 scrolling tree code
+        https://bugs.webkit.org/show_bug.cgi?id=194980
+
+        Reviewed by Sam Weinig.
+
+        Remove ScrollingTreeIOS and ScrollingCoordinatorIOS which were never instantiated,
+        to reduce maintenance costs and simplify.
+
+        Merge ScrollingTreeFrameScrollingNodeIOS into ScrollingTreeFrameScrollingNodeRemoteIOS
+        since that was the only concrete subclass, removing code which never applies to iOS WK2
+        (e.g. the synchronous scrolling code path).
+
+        * SourcesCocoa.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * page/FrameView.h:
+        * page/scrolling/ScrollingCoordinator.cpp:
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::handleWheelEvent):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        (WebCore::ScrollingTreeScrollingNode::updateLayersAfterDelegatedScroll): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::scrollableAreaSize const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::totalContentsSize const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::horizontalSnapOffsets const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::verticalSnapOffsets const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::horizontalSnapOffsetRanges const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::verticalSnapOffsetRanges const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::currentHorizontalSnapPointIndex const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::currentVerticalSnapPointIndex const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::setCurrentHorizontalSnapPointIndex): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::setCurrentVerticalSnapPointIndex): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::useDarkAppearanceForScrollbars const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::reachableContentsSize const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::parentRelativeScrollableRect const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::scrollOrigin const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::expectsWheelEventTestTrigger const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::scrollContainerLayer const): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::scrolledContentsLayer const): Deleted.
+        * page/scrolling/ios/ScrollingCoordinatorIOS.h: Removed.
+        * page/scrolling/ios/ScrollingCoordinatorIOS.mm: Removed.
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Removed.
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Removed.
+        * page/scrolling/ios/ScrollingTreeIOS.cpp: Removed.
+        * page/scrolling/ios/ScrollingTreeIOS.h: Removed.
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
+
+2019-02-23  Justin Fan  <justin_fan@apple.com>
+
+        [WebGPU] Buffer updates part 1: async mapping functions, unmap, and destroy
+        https://bugs.webkit.org/show_bug.cgi?id=194665
+
+        Reviewed by Dean Jackson.
+
+        Test: map-write-buffers.html. Other tests updated to match new API.
+
+        * Modules/webgpu/WebGPUBindGroupDescriptor.cpp: Added.
+        (WebCore::validateBufferBindingType): Ensure buffer binding usages match the binding type.
+        (WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const): Logic moved out from WebGPUDevice.cpp.
+        * Modules/webgpu/WebGPUBindGroupDescriptor.h:
+        * Modules/webgpu/WebGPUBuffer.cpp: Added GPUBuffer functionality.
+        (WebCore::WebGPUBuffer::create):
+        (WebCore::WebGPUBuffer::WebGPUBuffer):
+        (WebCore::WebGPUBuffer::mapReadAsync):
+        (WebCore::WebGPUBuffer::mapWriteAsync):
+        (WebCore::WebGPUBuffer::unmap):
+        (WebCore::WebGPUBuffer::destroy):
+        (WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback): Register a mapping request on the GPUBuffer, if valid.
+        * Modules/webgpu/WebGPUBuffer.h:
+        (WebCore::WebGPUBuffer::buffer const):
+        (WebCore::WebGPUBuffer::mapping const): Deleted.
+        * Modules/webgpu/WebGPUBuffer.idl: Update to latest API and enable every function except setSubData.
+        * Modules/webgpu/WebGPUCommandBuffer.cpp:
+        (WebCore::WebGPUCommandBuffer::beginRenderPass): Renamed descriptor conversion method.
+        * Modules/webgpu/WebGPUDevice.cpp:
+        (WebCore::WebGPUDevice::createBuffer const): Update to non-nullable return type.
+        (WebCore::WebGPUDevice::createBindGroup const): Move descriptor validation logic to descriptor implementation.
+        * Modules/webgpu/WebGPUDevice.h:
+        * Modules/webgpu/WebGPURenderPassDescriptor.cpp:
+        (WebCore::WebGPURenderPassDescriptor::asGPURenderPassDescriptor const): Renamed from validateAndConvertToGPUVersion.
+        * Modules/webgpu/WebGPURenderPassEncoder.cpp:
+        (WebCore::WebGPURenderPassEncoder::setVertexBuffers): Add validation for submitted buffers.
+        * platform/graphics/gpu/GPUBuffer.cpp: Added.
+        (WebCore::GPUBuffer::PendingMappingCallback::PendingMappingCallback): New struct for retaining a reference to mapping callbacks.
+        * platform/graphics/gpu/GPUBuffer.h: Add functionality to retain callbacks and usage bits.
+        (WebCore::GPUBuffer::isVertex const):
+        (WebCore::GPUBuffer::isUniform const):
+        (WebCore::GPUBuffer::isStorage const):
+        (WebCore::GPUBuffer::isReadOnly const):
+        (WebCore::GPUBuffer::PendingMapPromise::create):
+        (WebCore::GPUBuffer::isMappable const):
+        (WebCore::GPUBuffer::isMapWriteable const):
+        (WebCore::GPUBuffer::isMapReadable const):
+        (WebCore::GPUBuffer::mapping const): Deleted.
+        * platform/graphics/gpu/GPUBufferUsage.h: enum class cannot be logical ORed together.
+        * platform/graphics/gpu/GPUDevice.cpp:
+        (WebCore::GPUDevice::tryCreateBuffer const): Renamed from createBuffer. 
+        (WebCore::GPUDevice::createBuffer const): Deleted.
+        * platform/graphics/gpu/GPUDevice.h:
+        * platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
+        (WebCore::GPUBuffer::tryCreateSharedBuffer): Attempt to create a MTLBuffer with shared memory.
+        (WebCore::GPUBuffer::tryCreate): No longer use Gigacage-allocated memory for MTLBuffer.
+        (WebCore::GPUBuffer::GPUBuffer):
+        (WebCore::GPUBuffer::~GPUBuffer):
+        (WebCore::GPUBuffer::registerMappingCallback): Register the provided callback to be executed when the staging buffer can be safely exposed.
+        (WebCore::GPUBuffer::stagingBufferForRead): Prepare the arrayBuffer for reading and run the mapping callback.
+        (WebCore::GPUBuffer::stagingBufferForWrite): Ditto, but for writing.
+        (WebCore::GPUBuffer::unmap): If needed, copy the staging ArrayBuffer to the MTLBuffer. Unregister any mapping callback.
+        (WebCore::GPUBuffer::destroy): Stub implementation for now. Frees the MTLBuffer as soon as possible.
+        (WebCore::GPUBuffer::create): Deleted.
+        * platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:
+        (WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder): Ensure only read-only GPUBuffers are used as read-only on the GPU.
+
+        Add symbols for new files:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+
+2019-02-23  Keith Miller  <keith_miller@apple.com>
+
+        Add new mac target numbers
+        https://bugs.webkit.org/show_bug.cgi?id=194955
+
+        Reviewed by Tim Horton.
+
+        * Configurations/Base.xcconfig:
+        * Configurations/DebugRelease.xcconfig:
+
+2019-02-23  chris fleizach  <cfleizach@apple.com>
+
+        AX: WebKit is incorrectly mapping the <meter> element to progressbar
+        https://bugs.webkit.org/show_bug.cgi?id=164051
+        <rdar://problem/29055615>
+
+        Reviewed by Joanmarie Diggs.
+
+        Add a specific role for meter and map that to the appropriate mac role. 
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::canHaveChildren const):
+        (WebCore::AccessibilityNodeObject::isProgressIndicator const):
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
+        (WebCore::AccessibilityObject::isRangeControl const):
+        (WebCore::AccessibilityObject::computedRoleString const):
+        * accessibility/AccessibilityObjectInterface.h:
+        * accessibility/AccessibilityProgressIndicator.cpp:
+        (WebCore::AccessibilityProgressIndicator::roleValue const):
+        * accessibility/AccessibilityProgressIndicator.h:
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (createAccessibilityRoleMap):
+
+2019-02-22  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Crash in SWServerJobQueue::runNextJobSynchronously
+        https://bugs.webkit.org/show_bug.cgi?id=194974
+
+        Reviewed by Geoffrey Garen.
+
+        We suspect the crash is happening due to m_jobQueue being empty in runNextJobSynchronously
+        or there is a timer heap corruption again :(
+
+        Exit early when m_jobQueue is empty. Also add a debug assert that this should never happen
+        but convert an existing release assert to a debug assert since this appears to be hitting
+        too frequently in wild.
+
+        * workers/service/server/SWServerJobQueue.cpp:
+        (WebCore::SWServerJobQueue::runNextJobSynchronously):
+
+2019-02-22  Simon Fraser  <simon.fraser@apple.com>
+
+        Clean up the setScrollPosition/setScrollPositionWithoutContentEdgeConstraints confusion in the scrolling tree nodes
+        https://bugs.webkit.org/show_bug.cgi?id=194968
+
+        Reviewed by Antti Koivisto.
+
+        Having both setScrollPosition() and setScrollPositionWithoutContentEdgeConstraints() is confusing because
+        you can't tell which is the bottleneck. So add a 'clamp' parameter to setScrollPosition() and merge them.
+
+        ScrollingTreeFrameScrollingNodeMac::setScrollPosition() replicates a bit of code but future cleanups will
+        reduce that.
+
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition): Deleted. This was the same as the base class method.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
+        (WebCore::ScrollingTreeScrollingNode::clampScrollPosition const):
+        (WebCore::ScrollingTreeScrollingNode::scrollBy):
+        (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints): Deleted.
+        (WebCore::ScrollingTreeScrollingNode::scrollByWithoutContentEdgeConstraints): Deleted.
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints): Deleted. Did nothing.
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints): Deleted.
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition):
+        (WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints): Deleted.
+        * page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
+        (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
+        * platform/PlatformWheelEvent.h:
+        (WebCore::PlatformWheelEvent::delta const):
+        * platform/ScrollTypes.h:
+
+2019-02-22  Eric Liang  <ericliang@apple.com>
+
+        AX: Treat AXChildrenInNavigationOrder as AXChildren before adding support for aria-flowto
+        https://bugs.webkit.org/show_bug.cgi?id=194923
+
+        Reviewed by Chris Fleizach.
+
+        Added AXChildrenInNavigationOrder attribute that returns the same array as from AXChildren. It prevents AppKit from reordering elements from the fallback AXChildren attribute.
+
+        Test: accessibility/mac/children-in-navigation-order-returns-children.html
+
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+
+2019-02-22  Tim Horton  <timothy_horton@apple.com>
+
+        ProcessSwap.PageOverlayLayerPersistence fails on iOS and in debug builds
+        https://bugs.webkit.org/show_bug.cgi?id=194963
+
+        Reviewed by Dean Jackson.
+
+        Tested by existing failing API test.
+
+        * page/Page.cpp:
+        (WebCore::Page::installedPageOverlaysChanged): Deleted.
+        * page/Page.h:
+        (WebCore::Page::pageOverlayController):
+        * page/PageOverlayController.cpp:
+        (WebCore::PageOverlayController::installedPageOverlaysChanged):
+        (WebCore::PageOverlayController::detachViewOverlayLayers):
+        (WebCore::PageOverlayController::installPageOverlay):
+        (WebCore::PageOverlayController::uninstallPageOverlay):
+        (WebCore::PageOverlayController::willDetachRootLayer): Deleted.
+        * page/PageOverlayController.h:
+        As intended by r240940, move installedPageOverlaysChanged to PageOverlayController.
+        Also, make it ignore isInWindow state; otherwise, if you install a overlay
+        and then come into window, nothing installs the root layer. There is no
+        need for this code to follow in-window state manually anymore since
+        the DrawingArea and RenderLayerCompositor just hook the layers up when needed.
+
+        Make some methods private, and make detachViewOverlayLayers only touch
+        *view* overlays, so that we don't detach the document-relative root
+        layer when you drop to having no view overlays. This maintains
+        existing behavior because nothing was calling PageOverlayController::detachViewOverlayLayers.
+
+        Now there are no callers of willDetachRootLayer, so remove it.
+
+2019-02-22  Andy Estes  <aestes@apple.com>
+
+        [iOS] Break a reference cycle between PreviewLoader and ResourceLoader
+        https://bugs.webkit.org/show_bug.cgi?id=194964
+        <rdar://problem/48279441>
+
+        Reviewed by Alex Christensen.
+
+        When a document's QuickLook preview is loaded, a reference cycle is created between
+        PreviewLoader and ResourceLoader. Break the cycle by clearing m_previewLoader in
+        ResourceLoader::releaseResources().
+
+        Fixes leaks detected by `run-webkit-tests --leaks LayoutTests/quicklook`.
+
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::releaseResources):
+
+2019-02-22  Sihui Liu  <sihui_liu@apple.com>
+
+        Crash under IDBServer::IDBConnectionToClient::identifier() const
+        https://bugs.webkit.org/show_bug.cgi?id=194843
+        <rdar://problem/48203102>
+
+        Reviewed by Geoffrey Garen.
+
+        UniqueIDBDatabase should ignore requests from connections that are already closed.
+
+        Tests are hard to create without some tricks on UniqueIDBDatabase so this fix is verified manually. 
+        One test is created by adding delay to UniqueIDBDatabase::openBackingStore on the background thread to make sure
+        disconnection of web process happens before UniqueIDBDatabase::didOpenBackingStore, because didOpenBackingStore
+        may start a version change transaction and ask for identifier from the connection that is already gone.
+
+        * Modules/indexeddb/server/IDBConnectionToClient.cpp:
+        (WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):
+        * Modules/indexeddb/server/IDBConnectionToClient.h:
+        (WebCore::IDBServer::IDBConnectionToClient::isClosed):
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::clearStalePendingOpenDBRequests):
+        (WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
+        (WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
+        * Modules/indexeddb/server/UniqueIDBDatabase.h:
+
+2019-02-22  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction
+        https://bugs.webkit.org/show_bug.cgi?id=194703
+        <rdar://problem/48111775>
+
+        Reviewed by Ryosuke Niwa.
+
+        Currently, when changing text direction, WebKit always sends input events of type formatSetInlineTextDirection,
+        even when changing paragraph text direction. Instead, we should be emitting formatSetBlockTextDirection in this
+        scenario. This is problematic when using the context menus on macOS to change writing direction, since changing
+        "Selection Direction" is currently indistinguishable from changing "Paragraph Direction".
+
+        To fix this, we split EditAction::SetWritingDirection into EditAction::SetInlineWritingDirection and
+        EditAction::SetBlockWritingDirection, which emit inline and block text direction input events, respectively.
+
+        Tests: fast/events/before-input-events-prevent-block-text-direction.html
+               fast/events/before-input-events-prevent-inline-text-direction.html
+
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::apply):
+        * editing/EditAction.cpp:
+        (WebCore::undoRedoLabel):
+        * editing/EditAction.h:
+        * editing/EditCommand.cpp:
+        (WebCore::inputTypeNameForEditingAction):
+        * editing/Editor.cpp:
+        (WebCore::inputEventDataForEditingStyleAndAction):
+        (WebCore::Editor::setBaseWritingDirection):
+        * editing/EditorCommand.cpp:
+        (WebCore::executeMakeTextWritingDirectionLeftToRight):
+        (WebCore::executeMakeTextWritingDirectionNatural):
+        (WebCore::executeMakeTextWritingDirectionRightToLeft):
+
+2019-02-22  Rob Buis  <rbuis@igalia.com>
+
+        Remove stripLeadingAndTrailingWhitespace from MathMLElement.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=160172
+
+        Reviewed by Frédéric Wang.
+
+        Remove stripLeadingAndTrailingWhitespace and use stripLeadingAndTrailingHTTPSpaces
+        from HTTPParsers instead.
+
+        No new tests, already covered by MathML tests.
+
+        * mathml/MathMLElement.cpp:
+        (WebCore::MathMLElement::stripLeadingAndTrailingWhitespace): Deleted.
+        * mathml/MathMLElement.h:
+        * mathml/MathMLPresentationElement.cpp:
+        (WebCore::MathMLPresentationElement::parseMathMLLength):
+        * mathml/MathMLTokenElement.cpp:
+        (WebCore::MathMLTokenElement::convertToSingleCodePoint):
+
+2019-02-22  Eric Carlson  <eric.carlson@apple.com>
+
+        Update some media logging
+        https://bugs.webkit.org/show_bug.cgi?id=194915
+
+        Reviewed by Jer Noble.
+
+        No new tests, no functional change.
+
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::evictCodedFrames):
+        (WebCore::SourceBuffer::provideMediaData):
+        (WebCore::SourceBuffer::trySignalAllSamplesInTrackEnqueued):
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity):
+        (WebCore::HTMLMediaElement::loadResource):
+        (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
+        (WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const):
+        (WebCore::HTMLMediaElement::seekTask):
+        (WebCore::HTMLMediaElement::playInternal):
+        (WebCore::HTMLMediaElement::pauseInternal):
+        (WebCore::HTMLMediaElement::setLoop):
+        (WebCore::HTMLMediaElement::setControls):
+        (WebCore::HTMLMediaElement::sourceWasRemoved):
+
+        * html/MediaElementSession.cpp:
+        (WebCore::convertEnumerationToString):
+
+        * html/MediaElementSession.h:
+        (WTF::LogArgument<WebCore::MediaPlaybackDenialReason>::toString):
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
+
+2019-02-22  Rob Buis  <rbuis@igalia.com>
+
+        Fix unitless usage of mathsize
+        https://bugs.webkit.org/show_bug.cgi?id=194940
+
+        Reviewed by Frédéric Wang.
+
+        Convert unitless lengths to percentage values to correct the computed
+        font size.
+
+        * mathml/MathMLElement.cpp:
+        (WebCore::convertToPercentageIfNeeded):
+        (WebCore::MathMLElement::collectStyleForPresentationAttribute):
+
+2019-02-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Hardcode Visual Viewports on everywhere except iOS WK1
+        https://bugs.webkit.org/show_bug.cgi?id=194928
+
+        Reviewed by Zalan Bujtas.
+
+        Remove the WK1 and WK2 preferences and MiniBrowser menu item for "visual viewports",
+        change the default value of the Setting to 'true', and hardcode WebView on iOS to
+        set it to false. The setting has shipped for several years and there's no need to turn
+        it off now.
+
+        Similarly, disable the "Visual Viewport API" on iOS WK1, since it makes no sense if
+        Visual Viewports are not enabled.
+        
+        Remove the "visualViewportEnabled" flag and unused code paths from scrolling tree code
+        that only runs in WK2
+
+        * page/Settings.yaml:
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+        (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
+        (WebCore::AsyncScrollingCoordinator::visualViewportEnabled const): Deleted.
+        * page/scrolling/AsyncScrollingCoordinator.h:
+        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
+        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
+        (WebCore::ScrollingStateFrameScrollingNode::setAllPropertiesChanged):
+        (WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
+        (WebCore::ScrollingStateFrameScrollingNode::setVisualViewportEnabled): Deleted.
+        * page/scrolling/ScrollingStateFrameScrollingNode.h:
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::commitTreeState):
+        * page/scrolling/ScrollingTree.h:
+        (WebCore::ScrollingTree::visualViewportEnabled const): Deleted.
+        (WebCore::ScrollingTree::setVisualViewportEnabled): Deleted.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const):
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
+
+2019-02-21  Darin Adler  <darin@apple.com>
+
+        Some refinements for Node and Document
+        https://bugs.webkit.org/show_bug.cgi?id=194764
+
+        Reviewed by Ryosuke Niwa.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::press): Use shadowHost instead of
+        deprecatedShadowAncestorNode.
+        (WebCore::AccessibilityObject::axObjectCache const): Tweak coding style.
+        (WebCore::AccessibilityObject::focusedUIElement const): Use existing page
+        function to streamline.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::accessKey const): Use
+        attributeWithoutSynchronization for efficiency and consistency with other
+        code working with the accesskey attribute.
+
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::childrenChanged): Added call to
+        invalidateAccessKeyCache, replacing old scheme tied to style recalculation.
+
+        * dom/DecodedDataDocumentParser.cpp:
+        (WebCore::DecodedDataDocumentParser::appendBytes): Update for name and return
+        type change of createDecoderIfNeeded to decoder.
+        (WebCore::DecodedDataDocumentParser::flush): Ditto.
+
+        * dom/Document.cpp:
+        (WebCore::Document::elementForAccessKey): Renamed from getElementForAccessKey
+        to match WebKit coding style. Changed to use unique_ptr instead of separate
+        boolean to keep track of map validity status.
+        (WebCore::Document::buildAccessKeyCache): Renamed from buildAccessKeyMap to
+        clarify that this is a cache. Changed to use composedTreeDescendants rather
+        than explicit calls to shadowRoot. Use add instead of set so that first element
+        in document order wins, instead of last element in document order. Updated
+        to make a new map in a new unique_ptr instead of populating a map.
+        (WebCore::Document::invalidateAccessKeyCacheSlowCase): Renamed from
+        invalidateAccessKeyMap, and left an inline part in the header so the fast case
+        of quickly checking for a null pointer can be inlined.
+        (WebCore::Document::doctype const): Use downcast instead of static_cast.
+        (WebCore::Document::scheduleStyleRecalc): Moved call to invalidateAccessKeyMap
+        from here to childrenChanged and accesskey attribute change handling.
+        (WebCore::Document::processFormatDetection): Set m_isTelephoneNumberParsingAllowed
+        directly since this is the only place that does it and we don't need to factor
+        that one line of code into a function.
+        (WebCore::Document::getOverrideStyle): Moved to header since it's just a stub
+        that always returns nullptr and can be inlined.
+        (WebCore::Document::setIsTelephoneNumberParsingAllowed): Deleted.
+        (WebCore::Document::ensureTemplateDocument): Removed nullptr frame argument to
+        the create function, since Document::create now always involves no frame.
+        (WebCore::Document::didAssociateFormControl): Changed argument type to a reference
+        and simplified the logic with a local variable.
+        (WebCore::Document::didAssociateFormControlsTimerFired): Simplified the null
+        checks and rearranged things so that m_associatedFormControls will always
+        get cleared even if the document is no longer associated with a page.
+
+        * dom/Document.h: Removed unnnecessary explicit values for enumerations (first
+        value is always zero, etc.) and formatted simple enumerations in a single line
+        for easier reading. Moved Document::create fucntion bodies out of line, removed
+        the frame argument from the simple "create with URL" overload and made the frame
+        argument for createNonRenderedPlaceholder be a reference rather than a pointer.
+        Renamed getElementByAccessKey to elementForAccessKey, invalidateAccessKeyMap to
+        invalidateAccessKeyCache, buildAccessKeyMap to buildAccessKeCache,
+        m_elementsByAccessKey to m_accessKeyCache and changed its type.
+        Removed bogus "DOM methods" comment, unused setParserFeature friend declaration,
+        setIsTelephoneNumberParsingAllowed function, and m_accessKeyMapValid flag.
+
+        * dom/Document.idl: Added comment highlighting that getOverrideStyle is just a
+        placeholder returning null.
+
+        * dom/Element.cpp:
+        (WebCore::Element::attributeChanged): Call invalidateAccessKeyCache when the
+        value of the accesskey attribute is changed. Also moved the class attribute code
+        so the attributes here are in alphabetical order (only class and id were out of
+        alphabetical order).
+
+        * dom/Node.cpp:
+        (WebCore::Node::isDescendantOrShadowDescendantOf const): Rewrote to no longer
+        use deprecatedShadowAncestorNode and used boolean operators to make it a
+        single line and easier to understand. Also added a FIXME since the
+        containsIncludingShadowDOM function is so similar, yet differently written.
+        (WebCore::Node::contains const): Rewrote as a single line to make this easier
+        to read and to *slightly* improve the speed in the "this == node" case.
+        (WebCore::Node::containsIncludingHostElements const): Use downcast.
+        (WebCore::Node::deprecatedShadowAncestorNode const): Deleted.
+
+        * dom/Node.h: Deleted now-unused deprecatedShadowAncestorNode.
+
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplacementFragment::ReplacementFragment): Rewrote to use shadowHost
+        instead of deprecatedShadowAncestorNode.
+
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::resetFormOwner): Pass reference to
+        didAssociateFormControl.
+        (WebCore::FormAssociatedElement::formAttributeChanged): Ditto.
+
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::parseAttribute): Removed special case for accesskey
+        attribute, because we want to call the base class parseAttribute in that case.
+
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::insertedIntoAncestor): Pass reference to
+        didAssociateFormControl.
+
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::parseAttribute): Removed special case for accesskey
+        attribute with mysterious FIXME, because we want to call the base class
+        parseAttribute in that case. The old code had no effect before; the access key
+        logic would still find the attribute; if the goal is to ignore the attribute
+        for these elements we will need a different solution.
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::parseAttribute): Ditto.
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::DocumentLoader): Removed code that was always passing
+        nullptr as the frame for the newly created DocumentWriter. It used m_frame, but
+        m_frame was always null.
+        (WebCore::DocumentLoader::attachToFrame): Pass reference to DocumentWriter::setFrame.
+
+        * loader/DocumentWriter.cpp:
+        (WebCore::DocumentWriter::DocumentWriter): Deleted. The old version set m_frame to
+        the passed in frame, which was always nullptr, and initialized some booleans and an
+        enumeration, which are now initialized in the class definition.
+        (WebCore::DocumentWriter::createDocument): Pass a reference for the frame.
+        (WebCore::DocumentWriter::begin): Updated now that State is an enum class.
+        (WebCore::DocumentWriter::decoder): Renamed from createDecoderIfNeeded and changed
+        to return a reference.
+        (WebCore::DocumentWriter::addData): Use RELEASE_ASSERT instead of if/CRASH and
+        updated now that State is an enum class.
+        (WebCore::DocumentWriter::insertDataSynchronously): Updated now that State is an
+        enum class.
+        (WebCore::DocumentWriter::end): Ditto.
+
+        * loader/DocumentWriter.h: Removed unneeded include and forward declaration.
+        Removed the frame pointer argument to the constructor, caller was always passing a
+        nullptr. Changed argument to setFrame to be a reference. Renamed createDecoderIfNeeded
+        to decoder and changed it to return a reference. Initialized m_frame,
+        m_hasReceivedSomeData, m_encodingWasChosenByUser, and m_state here so we don't need
+        to initialize them in a constructor. Renamed the enum from WriterState to State since
+        it's a member of DocumentWriter already, and made it an enum class rather than ending
+        each enumeration value with WritingState.
+
+        * page/DragController.cpp:
+        (WebCore::isEnabledColorInput): Removed boolean argument setToShadowAncestor. The
+        one caller that formerly passed true now calls the new hasEnabledColorInputAsShadowHost
+        function instead.
+        (WebCore::hasEnabledColorInputAsShadowHost): Added.
+        (WebCore::elementUnderMouse): Use shadowHost instead of deprecatedShadowAncestorNode.
+        Also added FIXME since it seems this should instead be using parentElementInComposedTree.
+        (WebCore::DragController::concludeEditDrag): Removed "false" argument to isEnabledColorInput.
+        (WebCore::DragController::canProcessDrag): Removed "true" argument to isEnabledColorInput
+        and added call to hasEnabledColorInputAsShadowHost. Also put the value of the node to drag
+        into a local variable to simplify code.
+        (WebCore::DragController::draggableElement const): Removed "false" argument to isEnabledColorInput.
+
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::handleAccessKey): Update name of elementForAccessKey.
+
+        * page/FocusController.cpp:
+        (WebCore::clearSelectionIfNeeded): Use shadowHost instead of deprecatedShadowAncestorNode.
+
+        * workers/service/context/ServiceWorkerThreadProxy.cpp:
+        (WebCore::createPageForServiceWorker): Pass reference instead of pointer for frame to
+        Document::createNonRenderedPlaceholder.
+
+2019-02-21  Daniel Bates  <dabates@apple.com>
+
+        Same Site Lax cookies are not sent with cross-site redirect from client-initiated load
+        https://bugs.webkit.org/show_bug.cgi?id=194906
+        <rdar://problem/44305947>
+
+        Reviewed by Brent Fulgham.
+
+        Ensure that a request for a top-level navigation is annotated as such regardless of whether
+        the request has a computed Same Site policy.
+
+        "New loads" initiated by a the client (Safari) either by API or a human either explicitly
+        typing a URL in the address bar or Command + clicking a hyperlink to open it in a new window/tab
+        are always considered Same Site. This is by definition from the spec. [1] as we aren't navigating
+        from an existing page. (Command + click should be thought of as a convenience to the user from
+        having to copy the hyperlink's URL, create a new window, and paste the URL into the address bar).
+        Currently the frame loader marks a request as a top-level navigation if and only if the request
+        does not have a pre-computed Same Site policy. However, "New loads" have a pre-computed Same Site
+        policy. So, these loads would never be marked as a top-level navigation by the frame loading code.
+        Therefore, if the "new load" turned out to be a cross-site redirect then WebKit would incorrectly
+        tell the networking stack that the load was a cross-site, non-top-level navigation, and per the
+        Same Site spec [2], the networking stack would not send Same Site Lax cookies. Instead,
+        WebKit should unconditionally ensure that requests are marked as a top-level navigation, if applicable.
+
+        [1] See Note for (1) in  <https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02#section-5.2>
+        [2] <https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02#section-5.3.7.1>
+
+        Test: http/tests/cookies/same-site/user-load-cross-site-redirect.php
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::addExtraFieldsToRequest): Unconditionally update the request's top-
+        level navigation bit.
+        * platform/network/ResourceRequestBase.cpp:
+        (WebCore::ResourceRequestBase::setAsIsolatedCopy): Unconditionally copy a request's top-
+        level navigation bit.
+
+2019-02-21  Per Arne Vollan  <pvollan@apple.com>
+
+        Layout Test fast/text/international/khmer-selection.html is crashing
+        https://bugs.webkit.org/show_bug.cgi?id=191368
+
+        Reviewed by Brent Fulgham.
+
+        GlyphBuffer's offset array wasn't getting filled by UniscribeController.
+        Our underlining code requires this array.
+
+        Uniscribe gives us a character -> glyph mapping, so we just have to compute
+        the inverse and give it to the GlyphBuffer.
+
+        This patch is written by Myles C. Maxfield.
+
+        Test: fast/text/international/khmer-selection.html.
+
+        * platform/graphics/GlyphBuffer.h:
+        (WebCore::GlyphBuffer::add):
+        * platform/graphics/displaylists/DisplayListItems.cpp:
+        (WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):
+        * platform/graphics/win/UniscribeController.cpp:
+        (WebCore::UniscribeController::advance):
+        (WebCore::UniscribeController::itemizeShapeAndPlace):
+        (WebCore::UniscribeController::shapeAndPlaceItem):
+        * platform/graphics/win/UniscribeController.h:
+
+2019-02-21  Sihui Liu  <sihui_liu@apple.com>
+
+        IndexedDB: leak UniqueIDBDatabase in layout tests
+        https://bugs.webkit.org/show_bug.cgi?id=194870
+        <rdar://problem/48163812>
+
+        Reviewed by Geoffrey Garen.
+
+        UniqueIDBDatabase owns a pointer to itself after it is hard closed. It should release the pointer when it 
+        receives confirmation from clients and all pending tasks are done. UniqueIDBDatabase already checks whether the
+        pointer should be released when a database task finishes, but it didn't perform a check when a confirm message 
+        is received. 
+
+        No new test as the order of task completion and confirmation arrival is uncertain.
+
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer):
+
+2019-02-21  Andy Estes  <aestes@apple.com>
+
+        contentfiltering tests leak documents
+        https://bugs.webkit.org/show_bug.cgi?id=189434
+        <rdar://44239943>
+
+        Reviewed by Simon Fraser.
+
+        Changed ContentFilter to capture the blocked Frame as a WeakPtr to break a reference cycle.
+
+        This fixes world leaks in several tests in LayoutTests/contentfiltering/.
+
+        * bindings/js/ScriptController.h:
+        * loader/ContentFilter.cpp:
+        (WebCore::ContentFilter::didDecide):
+
+2019-02-21  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake][Win] Fix !USE(CF) build of WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=194879
+
+        Reviewed by Konstantin Tokarev.
+
+        * PlatformAppleWin.cmake:
+        * PlatformWin.cmake:
+        * PlatformWinCairo.cmake:
+
+2019-02-21  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][Floats] Add support for placing formatting roots in-between floats.
+        https://bugs.webkit.org/show_bug.cgi?id=194902
+
+        Reviewed by Antti Koivisto.
+
+        This patch add support for placing a formatting root box in-between existing floats.
+        The initial vertical position of a formatting root is its static position which can make the box
+        placed above exsiting floats (whereas we can never place a regular float above existing floats.)
+
+        Test: fast/block/block-only/floats-and-block-formatting-roots.html
+
+        * layout/blockformatting/BlockFormattingContext.cpp:
+        (WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const):
+        * layout/floats/FloatingContext.cpp:
+        (WebCore::Layout::FloatPair::LeftRightIndex::isEmpty const):
+        (WebCore::Layout::FloatPair::isEmpty const):
+        (WebCore::Layout::FloatPair::operator* const):
+        (WebCore::Layout::Iterator::operator* const):
+        (WebCore::Layout::begin):
+        (WebCore::Layout::end):
+        (WebCore::Layout::FloatingContext::positionForFloat const):
+        (WebCore::Layout::FloatingContext::positionForFormattingContextRoot const):
+        (WebCore::Layout::findAvailablePosition):
+        (WebCore::Layout::FloatingContext::findPositionForFloatBox const):
+        (WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
+        (WebCore::Layout::FloatPair::FloatPair):
+        (WebCore::Layout::FloatPair::left const):
+        (WebCore::Layout::FloatPair::right const):
+        (WebCore::Layout::FloatPair::intersects const):
+        (WebCore::Layout::FloatPair::operator == const):
+        (WebCore::Layout::FloatPair::horizontalConstraints const):
+        (WebCore::Layout::FloatPair::bottom const):
+        (WebCore::Layout::Iterator::operator++):
+        (WebCore::Layout::Iterator::set):
+        (WebCore::Layout::FloatingPair::isEmpty const): Deleted.
+        (WebCore::Layout::FloatingPair::verticalConstraint const): Deleted.
+        (WebCore::Layout::FloatingContext::positionForFloatAvoiding const): Deleted.
+        (WebCore::Layout::FloatingContext::floatingPosition const): Deleted.
+        (WebCore::Layout::FloatingPair::FloatingPair): Deleted.
+        (WebCore::Layout::FloatingPair::left const): Deleted.
+        (WebCore::Layout::FloatingPair::right const): Deleted.
+        (WebCore::Layout::FloatingPair::intersects const): Deleted.
+        (WebCore::Layout::FloatingPair::operator == const): Deleted.
+        (WebCore::Layout::FloatingPair::horizontalConstraints const): Deleted.
+        (WebCore::Layout::FloatingPair::bottom const): Deleted.
+        * layout/floats/FloatingContext.h:
+
+2019-02-21  Rob Buis  <rbuis@igalia.com>
+
+        Update MIME type parser
+        https://bugs.webkit.org/show_bug.cgi?id=180526
+
+        Reviewed by Darin Adler.
+
+        Further testing showed the MIME parser needs these fixes:
+        - stripWhitespace is wrong for removing HTTP whitespace, use
+          stripLeadingAndTrailingHTTPSpaces instead.
+        - HTTP Token code points checking for Rfc2045 and Mimesniff were
+          mixed up, use the dedicated isValidHTTPToken for Mimesniff mode.
+        - Quoted Strings were not unescaped/escaped, this seems ok for
+          serializing but is wrong when gettings individual parameter values.
+          Implement [1] and [2] Step 2.4 to properly unescape and escape.
+
+        This change also tries to avoid hard to read uses of find.
+
+        Test: ParsedContentType.Serialize
+
+        [1] https://fetch.spec.whatwg.org/#collect-an-http-quoted-string
+        [2] https://mimesniff.spec.whatwg.org/#serializing-a-mime-type
+
+        * platform/network/ParsedContentType.cpp:
+        (WebCore::skipSpaces):
+        (WebCore::parseToken):
+        (WebCore::isNotQuoteOrBackslash):
+        (WebCore::collectHTTPQuotedString):
+        (WebCore::containsNonTokenCharacters):
+        (WebCore::parseQuotedString):
+        (WebCore::ParsedContentType::parseContentType):
+        (WebCore::ParsedContentType::create):
+        (WebCore::ParsedContentType::setContentType):
+        (WebCore::containsNonQuoteStringTokenCharacters):
+        (WebCore::ParsedContentType::setContentTypeParameter):
+        (WebCore::ParsedContentType::serialize const):
+        (WebCore::substringForRange): Deleted.
+        (WebCore::isNonTokenCharacter): Deleted.
+        (WebCore::isNonQuotedStringTokenCharacter): Deleted.
+        * platform/network/ParsedContentType.h:
+
+2019-02-20  Simon Fraser  <simon.fraser@apple.com>
+
+        REGRESSION (240698): Fixed position banners flicker and move when scrolling on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=194889
+        rdar://problem/47755552
+
+        Reviewed by Tim Horton.
+        
+        After r240698 we could commit scrolling changes for a fixed node where the "viewportRectAtLastLayout" and the layer
+        position were mismatched; this happened when AsyncScrollingCoordinator::reconcileScrollingState() came back from the UI process
+        with an unstable update and set a new layoutViewport, then some other layout triggered a compositing tree update. During the tree
+        update, we'd update the fixed scrolling node with the new viewport, and an old layer position.
+        
+        Fix by ensuring that we only update the geometry info for a scrolling tree node when we update layer geometry for the corresponding
+        layer.
+
+        Not currently testable.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
+
+2019-02-20  Dean Jackson  <dino@apple.com>
+
+        Rotation animations sometimes use the wrong origin (affects apple.com)
+        https://bugs.webkit.org/show_bug.cgi?id=194878
+        <rdar://problem/43908047>
+
+        Reviewed by Simon Fraser.
+
+        Some versions of CoreAnimation apply additive animations in reverse
+        order. Detect this and reverse the list of animations we provide.
+
+        Update the existing animations/additive-transform-animations.html test to
+        be a ref-test that would identify this failure. Previously it relied on
+        a pixel test.
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp: Use 
+            HAVE_CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED to decide whether or
+            not to flip the list of animations (and mark the correct ones as
+            additive).
+        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
+        (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
+
+2019-02-20  Don Olmstead  <don.olmstead@sony.com>
+
+        [Win] Guard CF usage in RenderThemeWin
+        https://bugs.webkit.org/show_bug.cgi?id=194875
+
+        Reviewed by Alex Christensen.
+
+        No new tests. No change in behavior.
+
+        Add #if USE(CF) checks to RenderThemeWin so it can compile without CF support.
+
+        * rendering/RenderThemeWin.cpp:
+        (WebCore::RenderThemeWin::stringWithContentsOfFile):
+        (WebCore::RenderThemeWin::mediaControlsStyleSheet):
+        (WebCore::RenderThemeWin::mediaControlsScript):
+        * rendering/RenderThemeWin.h:
+
+2019-02-20  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Crash in DOMWindowExtension::suspendForPageCache
+        https://bugs.webkit.org/show_bug.cgi?id=194871
+
+        Reviewed by Chris Dumez.
+
+        This is a speculative fix for a crash in DOMWindowExtension::suspendForPageCache.
+
+        We think it's possible for DOMWindowExtension::suspendForPageCache notifying the clients via
+        dispatchWillDisconnectDOMWindowExtensionFromGlobalObject to remove other DOMWindowExtension's.
+        Check that each DOMWindowProperty is still in m_properties before invoking suspendForPageCache
+        to avoid the crash.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::willDestroyCachedFrame):
+        (WebCore::DOMWindow::willDestroyDocumentInFrame):
+        (WebCore::DOMWindow::willDetachDocumentFromFrame):
+        (WebCore::DOMWindow::suspendForPageCache):
+        (WebCore::DOMWindow::resumeFromPageCache):
+        * page/DOMWindowExtension.cpp:
+        (WebCore::DOMWindowExtension::suspendForPageCache):
+
+2019-02-20  Alex Christensen  <achristensen@webkit.org>
+
+        Always call CompletionHandlers after r240909
+        https://bugs.webkit.org/show_bug.cgi?id=194823
+
+        Reviewed by Ryosuke Niwa.
+
+        * loader/PolicyChecker.cpp:
+        (WebCore::PolicyChecker::checkNavigationPolicy):
+        (WebCore::PolicyChecker::checkNewWindowPolicy):
+
+2019-02-20  Andy Estes  <aestes@apple.com>
+
+        [Xcode] Add SDKVariant.xcconfig to various Xcode projects
+        https://bugs.webkit.org/show_bug.cgi?id=194869
+
+        Rubber-stamped by Jer Noble.
+
+        * WebCore.xcodeproj/project.pbxproj:
+
+2019-02-20  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        drawImage() clears the canvas if it's the source of the image and globalCompositeOperation is "copy"
+        https://bugs.webkit.org/show_bug.cgi?id=194746
+
+        Reviewed by Dean Jackson.
+
+        Test: fast/canvas/canvas-drawImage-composite-copy.html
+
+        If the source canvas of drawImage() is the same as the destination and
+        globalCompositeOperation is set to "copy", copy the srcRect from the 
+        canvas to a temporary buffer before calling clearCanvas() then drawImage
+        from this temporary buffer.
+
+        * html/canvas/CanvasRenderingContext2DBase.cpp:
+        (WebCore::CanvasRenderingContext2DBase::drawImage):
+        * platform/graphics/ImageBuffer.cpp:
+        (WebCore::ImageBuffer::copyRectToBuffer):
+        * platform/graphics/ImageBuffer.h:
+
+2019-02-20  Simon Fraser  <simon.fraser@apple.com>
+
+        REGRESSION (r241788>): ASSERTION FAILED: !m_normalFlowListDirty in TestWebKitAPI.WebKit.ResizeReversePaginatedWebView test
+        https://bugs.webkit.org/show_bug.cgi?id=194866
+
+        Reviewed by Antti Koivisto.
+
+        r241788 removed some calls that updated layer lists (normal flow and z-order) during compositing updates, causing
+        a later call to RenderLayerCompositor::recursiveRepaintLayer() to assert when the lists were dirty. Fix by updating
+        the lists in RenderLayerCompositor::recursiveRepaintLayer(), as we do in various other places.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
+
+2019-02-20  Daniel Bates  <dabates@apple.com>
+
+        [iOS] Tweak UI for focus rings
+        https://bugs.webkit.org/show_bug.cgi?id=194864
+        <rdar://problem/47831886>
+
+        Reviewed by Brent Fulgham.
+
+        Make use of UIKit constants to make focus rings pretty.
+
+        * platform/graphics/cocoa/GraphicsContextCocoa.mm:
+        (WebCore::drawFocusRingAtTime):
+
 2019-02-20  Timothy Hatcher  <timothy@apple.com>
 
         RenderThemeIOS should use RenderTheme's color cache instead of its own.