Adopt WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics and WebKit::Netwo...
[WebKit-https.git] / Source / WebCore / ChangeLog
index d86be8d..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