Multiple File Input Icon Set Regardless of File List
[WebKit-https.git] / Source / WebCore / ChangeLog
index 77d250c..d63878f 100644 (file)
+2019-04-23  Guy Lewin  <guy@lewin.co.il>
+
+        Multiple File Input Icon Set Regardless of File List
+        https://bugs.webkit.org/show_bug.cgi?id=195537
+
+        Reviewed by Alexey Proskuryakov.
+
+        File input elements display icon with an empty file list after
+        resetting the file list in 'change' event handler - on iOS
+
+        Test: fast/forms/file/file-reset-in-change-using-open-panel-with-icon.html
+
+        * html/FileInputType.cpp:
+        (WebCore::FileInputType::filesChosen):
+
+2019-04-23  Eric Carlson  <eric.carlson@apple.com>
+
+        Create AVFoundationSoftLink.{h,mm} to reduce duplicate code
+        https://bugs.webkit.org/show_bug.cgi?id=197171
+        <rdar://problem/47454979>
+
+        Reviewed by Youenn Fablet.
+
+        Tests: TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm
+
+        * Modules/plugins/QuickTimePluginReplacement.mm:
+        (WebCore::jsValueWithValueInContext):
+        (WebCore::jsValueWithAVMetadataItemInContext):
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/audio/ios/AudioSessionIOS.mm:
+        (WebCore::AudioSession::setCategory):
+        (WebCore::AudioSession::category const):
+        (WebCore::AudioSession::routeSharingPolicy const):
+        (WebCore::AudioSession::routingContextUID const):
+        (WebCore::AudioSession::sampleRate const):
+        (WebCore::AudioSession::bufferSize const):
+        (WebCore::AudioSession::numberOfOutputChannels const):
+        (WebCore::AudioSession::tryToSetActiveInternal):
+        (WebCore::AudioSession::preferredBufferSize const):
+        (WebCore::AudioSession::setPreferredBufferSize):
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (-[WebMediaSessionHelper initWithCallback:]):
+        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
+        * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
+        (WebCore::AVTrackPrivateAVFObjCImpl::audioKind const):
+        (WebCore::AVTrackPrivateAVFObjCImpl::videoKind const):
+        (WebCore::AVTrackPrivateAVFObjCImpl::label const):
+        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
+        (WebCore::AudioSourceProviderAVFObjC::createMix):
+        * platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:
+        * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
+        (WebCore::MediaSelectionGroupAVFObjC::updateOptions):
+        * platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.mm:
+        (WebCore::AVFoundationMIMETypeCache::canDecodeType):
+        (WebCore::AVFoundationMIMETypeCache::loadMIMETypes):
+        * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
+        (WebCore::CDMInstanceFairPlayStreamingAVFObjC::supportsPersistableState):
+        (WebCore::CDMInstanceFairPlayStreamingAVFObjC::supportsPersistentKeys):
+        (WebCore::CDMInstanceFairPlayStreamingAVFObjC::supportsMediaCapability):
+        (WebCore::CDMInstanceFairPlayStreamingAVFObjC::initializeWithConfiguration):
+        (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
+        (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
+        (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
+        (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSession):
+        * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
+        (WebCore::CDMSessionAVContentKeySession::isAvailable):
+        (WebCore::CDMSessionAVContentKeySession::releaseKeys):
+        (WebCore::CDMSessionAVContentKeySession::update):
+        (WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage):
+        (WebCore::CDMSessionAVContentKeySession::contentKeySession):
+        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
+        * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
+        (WebCore::CDMSessionAVStreamSession::releaseKeys):
+        (WebCore::CDMSessionAVStreamSession::update):
+        (WebCore::CDMSessionAVStreamSession::setStreamSession):
+        (WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):
+        * platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
+        (WebCore::imageDecoderAssetOptions):
+        (WebCore::ImageDecoderAVFObjC::ImageDecoderAVFObjC):
+        (WebCore::ImageDecoderAVFObjC::firstEnabledTrack):
+        (WebCore::ImageDecoderAVFObjC::readSamples):
+        (SOFT_LINK_CONSTANT_MAY_FAIL): Deleted.
+        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
+        (WebCore::InbandTextTrackPrivateAVFObjC::label const):
+        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
+        (WebCore::InbandTextTrackPrivateLegacyAVFObjC::label const):
+        * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
+        (WebCore::MediaPlaybackTargetPickerMac::devicePicker):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::assetCacheForPath):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::setAVPlayerItem):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
+        (WebCore::determineChangedTracksFromNewTracksAndOldItems):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType const):
+        (WebCore::exernalDeviceDisplayNameForPlayer):
+        (WebCore::metadataType):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
+        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
+        (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
+        (-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::processLegacyClosedCaptionsTracks): Deleted.
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
+        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
+        (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
+        * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
+        (WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
+        (WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
+        (WebCore::PlatformCALayerCocoa::clone const):
+        (WebCore::PlatformCALayerCocoa::avPlayerLayer const):
+        * platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
+        (WebCore::validateHEVCParameters):
+        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
+        (getAVSpeechUtteranceDefaultSpeechRate):
+        (getAVSpeechUtteranceMaximumSpeechRate):
+        (-[WebSpeechSynthesisWrapper speakUtterance:]):
+        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
+        (SOFT_LINK_CONSTANT): Deleted.
+        * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+        (-[WebAVPlayerLayer init]):
+        (-[WebAVPlayerLayer layoutSublayers]):
+        (-[WebAVPlayerLayer setVideoGravity:]):
+        (-[WebAVPlayerLayer videoRect]):
+        (WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView):
+        * platform/mac/SerializedPlatformRepresentationMac.mm:
+        (WebCore::jsValueWithValueInContext):
+        (WebCore::jsValueWithAVMetadataItemInContext):
+        * platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
+        (WebCore::getAVFormatIDKeyWithFallback):
+        (WebCore::getAVNumberOfChannelsKeyWithFallback):
+        (WebCore::getAVSampleRateKeyWithFallback):
+        (WebCore::getAVEncoderBitRateKeyWithFallback):
+        (WebCore::MediaRecorderPrivateWriter::create):
+        (WebCore::MediaRecorderPrivateWriter::setVideoInput):
+        (WebCore::MediaRecorderPrivateWriter::setAudioInput):
+        * platform/mediastream/RealtimeVideoSource.h:
+        * platform/mediastream/VideoPreset.h:
+        * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
+        (WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
+        * platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
+        (-[WebCoreAudioCaptureSourceIOSListener initWithCallback:]):
+        (-[WebCoreAudioCaptureSourceIOSListener handleInterruption:]):
+        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+        (WebCore::deviceIsAvailable):
+        (WebCore::AVCaptureDeviceManager::updateCachedAVCaptureDevices):
+        (WebCore::AVCaptureDeviceManager::refreshCaptureDevices):
+        (WebCore::AVCaptureDeviceManager::isAvailable):
+        (WebCore::AVCaptureDeviceManager::~AVCaptureDeviceManager):
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoPreset::create):
+        (WebCore::AVVideoPreset::AVVideoPreset):
+        (WebCore::AVVideoCaptureSource::create):
+        (WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
+        (WebCore::AVVideoCaptureSource::capabilities):
+        (WebCore::sensorOrientationFromVideoOutput):
+        (WebCore::AVVideoCaptureSource::setupSession):
+        (WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
+        (WebCore::AVVideoCaptureSource::setupCaptureSession):
+        (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
+        (WebCore::AVVideoCaptureSource::generatePresets):
+        (-[WebCoreAVVideoCaptureSourceObserver addNotificationObservers]):
+        (-[WebCoreAVVideoCaptureSourceObserver captureOutput:didOutputSampleBuffer:fromConnection:]):
+
+2019-04-23  Timothy Hatcher  <timothy@apple.com>
+
+        Speed up RenderTheme::systemColor on Speedometer2.
+        https://bugs.webkit.org/show_bug.cgi?id=197203
+        rdar://problem/50056756
+
+        Reviewed by Tim Horton.
+
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::RenderThemeIOS::systemColor const): Remove some unused code. And fetch the cache after an early return.
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::systemColor const): Avoid some allocations in LocalDefaultSystemAppearance
+        when a CSS color is in the system color cache.
+
+2019-04-23  Ryosuke Niwa  <rniwa@webkit.org>
+
+        [iOS] element.focus() sometimes fails to reveal the focused element when it becomes editable dynamically
+        https://bugs.webkit.org/show_bug.cgi?id=197188
+
+        Reviewed by Wenson Hsieh.
+
+        The bug was caused by the scroll-to-reveal code triggered by Element::updateFocusAppearance updating
+        the scroll position via scrolling tree update in a layer tree commit which happens after
+        _zoomToRevealFocusedElement in WKContentView had already scrolled the frame view.
+
+        To fix this problem, we need to defer the editor state update until the layer commit (see r244494),
+        and update the scrolling tree before invoking WebPageProxy::editorStateChanged which brings up
+        the keyboard and scroll-to-reveal the caret in the UI process side.
+
+        We also avoid revealing the focus for the second time via Document::scheduleScrollToFocusedElement
+        in Element::updateFocusAppearance as this timer based scrolling also happens after we had already
+        revealed the caret in _zoomToRevealFocusedElement. This is a bit hacky but works for most cases since
+        we wouldn't bring up a keyboard if the focused element was not editable anyway.
+
+        Test: editing/selection/ios/scrolling-to-focused-element-inside-iframe.html
+
+        * dom/Element.cpp:
+        (WebCore::Element::updateFocusAppearance): Avoid scheduling a timer based reavel of the focused element
+        when we're already revealing the element via selection change.
+
+2019-04-23  Remy Demarest  <rdemarest@apple.com>
+
+        Fix layout issues occuring when entering full screen mode.
+        https://bugs.webkit.org/show_bug.cgi?id=197086
+        <rdar://problem/47733671>.
+
+        Reviewed by Darin Adler.
+
+        This issue is the result of changing the style mask of the window after entering
+        full screen mode. Safari adds an invisible toolbar to display the URL of the page
+        which ends up breaking the layout. Having that window use a style that includes a
+        titlebar fixes the bug.
+
+        * platform/mac/WebCoreFullScreenWindow.mm:
+        (-[WebCoreFullScreenWindow constrainFrameRect:toScreen:]): Ensure that the window
+        can fill the entire screen including the underlapping the menu bar, so that the
+        window does not resize when the animation is done.
+        (-[WebCoreFullScreenWindow canBecomeMainWindow]): Borderless windows cannot become
+        main by default, adding the titlebar allows it to become main, prevent this from
+        happening at all to preserve the existing behavior.
+
+2019-04-23  Chris Dumez  <cdumez@apple.com>
+
+        [Process-Swap-On-Navigation] WebKit hangs when going back to a form submission's page due to Process-Swap-On-Navigation on iOS 12.2 and higher
+        https://bugs.webkit.org/show_bug.cgi?id=197097
+        <rdar://problem/50048318>
+
+        Reviewed by Alex Christensen.
+
+        * loader/EmptyFrameLoaderClient.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+        If we still have a provisional item (new load has been started or we did not clear it because we're about to retry),
+        then let the client know the load will continue by passing an extra flag with the didFailProvisionalLoad.
+
+        * loader/FrameLoaderClient.h:
+        * loader/FrameLoaderTypes.h:
+
+2019-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [ATK] Implement AtkComponentIface scroll_to methods
+        https://bugs.webkit.org/show_bug.cgi?id=196856
+
+        Reviewed by Michael Catanzaro.
+
+        Implement scroll_to and scroll_to_point when ATK >= 2.30.
+
+        Fixes: accessibility/scroll-to-global-point-iframe-nested.html
+               accessibility/scroll-to-global-point-iframe.html
+               accessibility/scroll-to-global-point-main-window.html
+               accessibility/scroll-to-global-point-nested.html
+               accessibility/scroll-to-make-visible-div-overflow.html
+               accessibility/scroll-to-make-visible-iframe.html
+               accessibility/scroll-to-make-visible-nested-2.html
+               accessibility/scroll-to-make-visible-nested.html
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::scrollToMakeVisible const): Add new method receiving the
+        ScrollRectToVisibleOptions since ATK interface has a parameter to decide how to scroll.
+        * accessibility/AccessibilityObject.h:
+        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
+        (atkToContents):
+        (webkitAccessibleComponentRefAccessibleAtPoint):
+        (webkitAccessibleComponentGetExtents):
+        (webkitAccessibleComponentGrabFocus):
+        (webkitAccessibleComponentScrollTo):
+        (webkitAccessibleComponentScrollToPoint):
+        (webkitAccessibleComponentInterfaceInit):
+        (core): Deleted.
+
+2019-04-22  Youenn Fablet  <youenn@apple.com>
+
+        Update libwebrtc logging when WebCore WebRTC logging is updated
+        https://bugs.webkit.org/show_bug.cgi?id=197166
+        <rdar://problem/50107696>
+
+        Unreviewed.
+
+        Build fix after https://trac.webkit.org/changeset/244511.
+
+        * page/Page.cpp:
+        (WebCore::Page::configureLoggingChannel):
+
+2019-04-22  Youenn Fablet  <youenn@apple.com>
+
+        Cache API should return Abort error in case of putting an aborted fetch
+        https://bugs.webkit.org/show_bug.cgi?id=196757
+
+        Reviewed by Darin Adler.
+
+        In case of an aborted fetch, call consume callback with an AbortError.
+        Update the code that handles load cancelling as the loader callback is called.
+        Covered by rebased tests.
+
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::addAbortSteps):
+        (WebCore::FetchResponse::BodyLoader::didFail):
+        (WebCore::FetchResponse::BodyLoader::BodyLoader):
+        (WebCore::FetchResponse::BodyLoader::~BodyLoader):
+        (WebCore::FetchResponse::stop):
+        * Modules/fetch/FetchResponse.h:
+
+2019-04-22  Youenn Fablet  <youenn@apple.com>
+
+        Update libwebrtc logging when WebCore WebRTC logging is updated
+        https://bugs.webkit.org/show_bug.cgi?id=197166
+
+        Reviewed by Eric Carlson.
+
+        When updating WebRTC logging from Web Inspector, update libwebrtc logging so that no page reload is required.
+        Manually tested.
+
+        * page/Page.cpp:
+        (WebCore::Page::configureLoggingChannel):
+
+2019-04-22  Simon Fraser  <simon.fraser@apple.com>
+
+        Introduce the concept of "opportunistic" stacking contexts
+        https://bugs.webkit.org/show_bug.cgi?id=197077
+
+        Reviewed by Zalan Bujtas.
+
+        Bring back a variant of some code removed in r236424, which allows a RenderLayer
+        to be stacking context for painting, without actually being on in terms of CSS.
+        
+        Internally, RenderLayer will call setIsOpportunisticStackingContext() to make a layer
+        into a stacking context for painting. External callers deal with isStackingContext()
+        or isCSSStackingContext().
+
+        Sadly we can't make m_forcedStackingContext (set on media element layers) trigger a
+        non-CSS stacking context; media controls use mix-blend-mode, and rely on the fake-stacking
+        media layer to be the "isolateBlending" ancestor.
+
+        No code uses this yet.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::RenderLayer):
+        (WebCore::RenderLayer::shouldBeCSSStackingContext const):
+        (WebCore::RenderLayer::isStackingContextChanged):
+        (WebCore::RenderLayer::setIsOpportunisticStackingContext):
+        (WebCore::RenderLayer::setIsCSSStackingContext):
+        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
+        (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
+        (WebCore::RenderLayer::beginTransparencyLayers):
+        (WebCore::RenderLayer::calculateClipRects const):
+        (WebCore::outputPaintOrderTreeLegend):
+        (WebCore::outputPaintOrderTreeRecursive):
+        (WebCore::RenderLayer::shouldBeStackingContext const): Deleted.
+        (WebCore::RenderLayer::setIsStackingContext): Deleted.
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::compositingOpacity const):
+
+2019-04-22  Justin Fan  <justin_fan@apple.com>
+
+        [WebGPU] Move swap chain methods from GPUDevice to GPUCanvasContext
+        https://bugs.webkit.org/show_bug.cgi?id=197126
+
+        Reviewed by Dean Jackson.
+
+        GPUSwapChains are now configured via GPUCanvasContext instead of GPUDevice. Covers WebGPU API 
+        pull request #262.
+
+        Existing WebGPU tests updated to match.
+
+        * Modules/webgpu/GPUCanvasContext.cpp:
+        (WebCore::GPUCanvasContext::configureSwapChain):
+        (WebCore::GPUCanvasContext::replaceSwapChain): Deleted.
+        * Modules/webgpu/GPUCanvasContext.h:
+        * Modules/webgpu/GPUCanvasContext.idl:
+        * Modules/webgpu/WebGPUDevice.cpp:
+        (WebCore::WebGPUDevice::createSwapChain const): Deleted.
+        * Modules/webgpu/WebGPUDevice.h:
+        (WebCore::WebGPUDevice::device):
+        * Modules/webgpu/WebGPUDevice.idl:
+        * Modules/webgpu/WebGPUSwapChainDescriptor.cpp: Copied from Source/WebCore/Modules/webgpu/WebGPUSwapChainDescriptor.h.
+        (WebCore::WebGPUSwapChainDescriptor::asGPUSwapChainDescriptor const):
+        * Modules/webgpu/WebGPUSwapChainDescriptor.h:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/graphics/gpu/GPUDevice.cpp:
+        (WebCore::GPUDevice::setSwapChain):
+        (WebCore::GPUDevice::tryCreateSwapChain const): Deleted.
+        * platform/graphics/gpu/GPUDevice.h:
+        * platform/graphics/gpu/GPUSwapChain.h:
+        * platform/graphics/gpu/GPUSwapChainDescriptor.h:
+        (WebCore::GPUSwapChainDescriptor::GPUSwapChainDescriptor):
+        * platform/graphics/gpu/cocoa/GPUSwapChainMetal.mm:
+        (WebCore::GPUSwapChain::tryCreate):
+
+2019-04-22  Said Abou-Hallawa  <said@apple.com>
+
+        Mark SVGStringList properties '[SameObject]' in the IDL files
+        Followup to https://bugs.webkit.org/show_bug.cgi?id=197137
+
+        Reviewed by Darin Adler.
+
+        The SVG elements do not create tear-off wrappers for SVGStrigList DOM
+        objects anymore. Instead they return Ref pointers to the same RefCounted
+        objects. So they should be marked '[SameObject]' in their IDL files.
+
+        * svg/SVGTests.idl:
+        * svg/SVGViewElement.idl:
+
+2019-04-22  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244495.
+        https://bugs.webkit.org/show_bug.cgi?id=197159
+
+        Causing build failures on OpenSource and Internal bots
+        (Requested by ShawnRoberts on #webkit).
+
+        Reverted changeset:
+
+        "WHLSLPrepare.cpp always recompiles, even if nothing was
+        changed"
+        https://bugs.webkit.org/show_bug.cgi?id=197151
+        https://trac.webkit.org/changeset/244495
+
+2019-04-22  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r241289): [GTK] accessibility/removed-continuation-element-causes-crash.html and accessibility/removed-anonymous-block-child-causes-crash.html crashes
+        https://bugs.webkit.org/show_bug.cgi?id=194630
+
+        Reviewed by Michael Catanzaro.
+
+        Do not assume core object always has a wrapper in webkitAccessibleRefChild().
+
+        Fixes: accessibility/removed-continuation-element-causes-crash.html
+               accessibility/removed-anonymous-block-child-causes-crash.html
+
+        * accessibility/atk/WebKitAccessible.cpp:
+        (webkitAccessibleRefChild): Return early if wrapper is nullptr.
+
+2019-04-21  Darin Adler  <darin@apple.com>
+
+        WHLSLPrepare.cpp always recompiles, even if nothing was changed
+        https://bugs.webkit.org/show_bug.cgi?id=197151
+
+        Reviewed by Dan Bernstein.
+
+        * DerivedSources-input.xcfilelist: Script updated this automatically after
+        DerivedSources.make was corrected.
+        * DerivedSources-output.xcfilelist: Ditto, although I had to manually remove
+        one bogus leftover reference to WHLSLStandardLibrary.cpp.
+
+        * DerivedSources.make: Updated the rule that builds WHSLStandardLibrary.h to
+        no longer refer to nonexistent WHLSLStandardLibrary.cpp. Because the dependency
+        was on a file that was never created, the rule to regenerate WHSLStandardLibrary.h
+        was running on every build, instead of only when one of the dependencies changed.
+
+2019-04-20  Said Abou-Hallawa  <said@apple.com>
+
+        REGRESSION (r243137): SVGViewElement.viewTarget should not return a new object
+        https://bugs.webkit.org/show_bug.cgi?id=197137
+
+        Reviewed by Darin Adler.
+
+        All the DOM objects accessing the viewTarget of the same SVGViewElement 
+        should hold a Ref pointer to the same SVGStringList property.
+
+        Test: svg/dom/SVGViewElement-viewTarget.html
+
+        * svg/SVGViewElement.idl:
+
+2019-04-20  Jer Noble  <jer.noble@apple.com>
+
+        REGRESSION(r243958): Unnecessary deactivation of AudioSession (PLT Regression)
+        https://bugs.webkit.org/show_bug.cgi?id=197123
+        <rdar://problem/49783264>
+
+        Reviewed by Per Arne Vollan.
+
+        Only set m_becameActive if we actually activated the AudioSession before starting playback. This
+        avoids unnecessarily deactivating the AudioSession in processWillSuspend().
+
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
+
+2019-04-19  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Timelines: CPU: ensure that tracking stops when disconnecting Web Inspector
+        https://bugs.webkit.org/show_bug.cgi?id=197115
+        <rdar://problem/49877875>
+
+        Reviewed by Joseph Pecoraro.
+
+        * inspector/agents/InspectorCPUProfilerAgent.cpp:
+        (WebCore::InspectorCPUProfilerAgent::willDestroyFrontendAndBackend):
+
+2019-04-19  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: REGRESSION: Elements: "Inspect Element" context menu often doesn't select that element
+        https://bugs.webkit.org/show_bug.cgi?id=197091
+        <rdar://problem/49953728>
+
+        Reviewed by Joseph Pecoraro.
+
+        Delay the `inspect` event fron firing with the focued node until the frontend has had a
+        chance to request the document. Otherwise, requesting the document clears the mapping of
+        node-to-id, so the focused node's id would no longer be valid.
+
+        * inspector/agents/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
+        (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
+        (WebCore::InspectorDOMAgent::getDocument):
+        (WebCore::InspectorDOMAgent::focusNode):
+        (WebCore::InspectorDOMAgent::didCommitLoad):
+
+2019-04-19  John Wilander  <wilander@apple.com>
+
+        Disable Ad Click Attribution in ephemeral sessions and make sure conversion requests use an ephemeral, stateless session
+        https://bugs.webkit.org/show_bug.cgi?id=197108
+        <rdar://problem/49918702>
+
+        Reviewed by Alex Christensen.
+
+        Tests: http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html
+               http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::parseAdClickAttribution const):
+            Early return for ephemeral sessions.
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::shouldUseCredentialStorage):
+            Now returns false for StoredCredentialsPolicy:EphemeralStatelessCookieless.
+        * platform/network/StoredCredentialsPolicy.h:
+            Added enum value EphemeralStatelessCookieless.
+
+2019-04-19  Timothy Hatcher  <timothy@apple.com>
+
+        Standardize the <meta name="color-scheme"> separator.
+        https://bugs.webkit.org/show_bug.cgi?id=193931
+        rdar://problem/49995929
+
+        Reviewed by Darin Adler.
+
+        Tests: css-dark-mode/color-scheme-meta.html
+
+        * dom/Document.cpp:
+        (WebCore::processColorSchemeString): Use isHTMLSpace insead of isColorSchemeSeparator and isASCIISpace.
+        (WebCore::isColorSchemeSeparator): Deleted.
+
+2019-04-19  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] Add quirks to disable autocorrection and autocapitalization in hidden editable areas on some websites
+        https://bugs.webkit.org/show_bug.cgi?id=197102
+        <rdar://problem/49864669>
+
+        Reviewed by Ryosuke Niwa.
+
+        Add a quirk to disable autocorrection and autocapitalization in hidden editable areas.
+
+        * page/Quirks.cpp:
+        (WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost):
+        (WebCore::Quirks::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreas const):
+        * page/Quirks.h:
+
+2019-04-18  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        Implement KeyedDecoderGeneric and KeyedEncoderGeneric
+        https://bugs.webkit.org/show_bug.cgi?id=186410
+
+        Reviewed by Don Olmstead.
+
+        Implemented KeyedDecoderGeneric and KeyedEncoderGeneric by using
+        WTF::Persistence::Decoder and WTF::Persistence::Encoder.
+
+        No new tests. Covered by existing tests.
+
+        * PlatformWin.cmake: Added KeyedDecoderGeneric.cpp and
+        KeyedEncoderGeneric.cpp, and removed KeyedDecoderCF.cpp and
+        KeyedEncoderCF.cpp for WinCairo port.
+        * platform/generic/KeyedDecoderGeneric.cpp:
+        * platform/generic/KeyedDecoderGeneric.h:
+        * platform/generic/KeyedEncoderGeneric.cpp:
+        * platform/generic/KeyedEncoderGeneric.h:
+
+2019-04-18  Ross Kirsling  <ross.kirsling@sony.com>
+
+        [WinCairo] Non-unified build fails to link Tools
+        https://bugs.webkit.org/show_bug.cgi?id=196866
+
+        Reviewed by Fujii Hironori.
+
+        * CMakeLists.txt:
+        Drive-by fix -- don't disable string pooling when building WebCoreTestSupport.
+        (This should have been part of r235203.)
+
+2019-04-18  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244434.
+        https://bugs.webkit.org/show_bug.cgi?id=197089
+
+        caused 1 API test failure (Requested by zalan on #webkit).
+
+        Reverted changeset:
+
+        "Regression (r244291): Broken API Test
+        AutoLayoutRenderingProgressRelativeOrdering"
+        https://bugs.webkit.org/show_bug.cgi?id=196948
+        https://trac.webkit.org/changeset/244434
+
+2019-04-18  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Make WebCore headers copies
+        https://bugs.webkit.org/show_bug.cgi?id=182512
+        <rdar://problem/37510435>
+
+        Unreviewed build fix.
+
+        Add new header from r244440.
+
+        * Headers.cmake:
+
+2019-04-18  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Make WebCore headers copies
+        https://bugs.webkit.org/show_bug.cgi?id=182512
+        <rdar://problem/37510435>
+
+        Reviewed by Alex Christensen.
+
+        The header copying is moved to a target WebCorePrivateFrameworkHeaders. This target was
+        originally Windows only but now this is enabled for all CMake based ports.
+
+        Enumerated all headers within WebCore that are used for WebKit(Legacy), tools and
+        tests. Shared headers are within Headers.cmake while port and platform specific headers
+        are in their respective CMake files. Listing out all headers is preferred because globbing
+        will break the build whenever a file is added.
+
+        All include directories within the WebCore source tree are now PRIVATE. They were
+        modified to use WebCore_PRIVATE_INCLUDE_DIRECTORIES. They will not propagate to other targets
+        which will prevent erroneous includes in targets dependent on WebCore.
+
+        * CMakeLists.txt:
+        * Headers.cmake: Added.
+        * PlatformAppleWin.cmake:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * PlatformPlayStation.cmake:
+        * PlatformWPE.cmake:
+        * PlatformWin.cmake:
+        * PlatformWinCairo.cmake:
+        * platform/Cairo.cmake:
+        * platform/Curl.cmake:
+        * platform/FreeType.cmake:
+        * platform/GStreamer.cmake:
+        * platform/HolePunch.cmake:
+        * platform/ImageDecoders.cmake:
+        * platform/Soup.cmake: Added.
+        * platform/TextureMapper.cmake:
+
+2019-04-18  Justin Fan  <justin_fan@apple.com>
+
+        [Web GPU] Implement API default values
+        https://bugs.webkit.org/show_bug.cgi?id=197032
+
+        Reviewed by Myles C. Maxfield.
+
+        Add default values and 'required' qualifiers recently merged to the WebGPU API.
+
+        WebGPU tests specifying these default values have been updated to rely on them for functionality.
+
+        * Modules/webgpu/GPUBindGroupLayoutBinding.idl:
+        * Modules/webgpu/GPUBindGroupLayoutDescriptor.idl:
+        * Modules/webgpu/GPUBlendDescriptor.idl:
+        * Modules/webgpu/GPUBufferDescriptor.idl:
+        * Modules/webgpu/GPUColor.idl:
+        * Modules/webgpu/GPUColorStateDescriptor.idl:
+        * Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
+        * Modules/webgpu/GPUExtent3D.idl:
+        * Modules/webgpu/GPUInputStateDescriptor.idl:
+        * Modules/webgpu/GPUOrigin3D.h:
+        * Modules/webgpu/GPUOrigin3D.idl:
+        * Modules/webgpu/GPURequestAdapterOptions.idl:
+        * Modules/webgpu/GPUTextureDescriptor.idl:
+        * Modules/webgpu/GPUVertexAttributeDescriptor.idl:
+        * Modules/webgpu/GPUVertexInputDescriptor.idl:
+        * Modules/webgpu/WebGPUBindGroupBinding.idl:
+        * Modules/webgpu/WebGPUBindGroupDescriptor.idl:
+        * Modules/webgpu/WebGPUBufferBinding.h:
+        * Modules/webgpu/WebGPUBufferBinding.idl:
+        * Modules/webgpu/WebGPUCommandEncoder.idl:
+        * Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
+        * Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl:
+        * Modules/webgpu/WebGPUPipelineStageDescriptor.idl:
+        * Modules/webgpu/WebGPURenderPassDescriptor.idl:
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.cpp:
+        (WebCore::WebGPURenderPipelineDescriptor::tryCreateGPURenderPipelineDescriptor const):
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.h:
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
+        * Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
+        * platform/graphics/gpu/GPUBlendDescriptor.h:
+        * platform/graphics/gpu/GPUColorStateDescriptor.h:
+        * platform/graphics/gpu/GPUCommandBuffer.h:
+        * platform/graphics/gpu/GPUDepthStencilStateDescriptor.h:
+        * platform/graphics/gpu/GPURenderPassDescriptor.h:
+        * platform/graphics/gpu/GPURenderPipelineDescriptor.h:
+        (WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor):
+        * platform/graphics/gpu/GPURequestAdapterOptions.h:
+        * platform/graphics/gpu/GPUTextureDescriptor.h:
+        * platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
+        * platform/graphics/gpu/GPUVertexInputDescriptor.h:
+        * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
+        (WebCore::convertRenderPipelineDescriptor):
+        (WebCore::trySetFunctionsForPipelineDescriptor):
+
+2019-04-18  Jer Noble  <jer.noble@apple.com>
+
+        Refactoring: Pull all fullscreen code out of Document and into its own helper class
+        https://bugs.webkit.org/show_bug.cgi?id=197017
+
+        Reviewed by Eric Carlson.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSDefaultStyleSheets.cpp:
+        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
+        * css/SelectorCheckerTestFunctions.h:
+        (WebCore::matchesFullScreenPseudoClass):
+        (WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
+        (WebCore::matchesFullScreenDocumentPseudoClass):
+        (WebCore::matchesFullScreenControlsHiddenPseudoClass):
+        * dom/Document.cpp:
+        (WebCore::Document::removedLastRef):
+        (WebCore::Document::prepareForDestruction):
+        (WebCore::Document::nodeChildrenWillBeRemoved):
+        (WebCore::Document::nodeWillBeRemoved):
+        (WebCore::isAttributeOnAllOwners): Deleted.
+        (WebCore::Document::fullScreenIsAllowedForElement const): Deleted.
+        (WebCore::Document::requestFullScreenForElement): Deleted.
+        (WebCore::Document::webkitCancelFullScreen): Deleted.
+        (WebCore::Document::webkitExitFullscreen): Deleted.
+        (WebCore::Document::webkitFullscreenEnabled const): Deleted.
+        (WebCore::unwrapFullScreenRenderer): Deleted.
+        (WebCore::Document::webkitWillEnterFullScreen): Deleted.
+        (WebCore::Document::webkitDidEnterFullScreen): Deleted.
+        (WebCore::Document::webkitWillExitFullScreen): Deleted.
+        (WebCore::Document::webkitDidExitFullScreen): Deleted.
+        (WebCore::Document::setFullScreenRenderer): Deleted.
+        (WebCore::Document::dispatchFullScreenChangeEvents): Deleted.
+        (WebCore::Document::dispatchFullScreenChangeOrErrorEvent): Deleted.
+        (WebCore::Document::fullScreenElementRemoved): Deleted.
+        (WebCore::Document::adjustFullScreenElementOnNodeRemoval): Deleted.
+        (WebCore::Document::isAnimatingFullScreen const): Deleted.
+        (WebCore::Document::setAnimatingFullScreen): Deleted.
+        (WebCore::Document::areFullscreenControlsHidden const): Deleted.
+        (WebCore::Document::setFullscreenControlsHidden): Deleted.
+        (WebCore::Document::clearFullscreenElementStack): Deleted.
+        (WebCore::Document::popFullscreenElementStack): Deleted.
+        (WebCore::Document::pushFullscreenElementStack): Deleted.
+        (WebCore::Document::addDocumentToFullScreenChangeEventQueue): Deleted.
+        * dom/Document.h:
+        (WebCore::Document::fullscreenManager):
+        (WebCore::Document::webkitIsFullScreen const): Deleted.
+        (WebCore::Document::webkitFullScreenKeyboardInputAllowed const): Deleted.
+        (WebCore::Document::webkitCurrentFullScreenElement const): Deleted.
+        (WebCore::Document::webkitCurrentFullScreenElementForBindings const): Deleted.
+        (WebCore::Document::fullScreenRenderer const): Deleted.
+        (WebCore::Document::webkitFullscreenElement const): Deleted.
+        (WebCore::Document::webkitFullscreenElementForBindings const): Deleted.
+        * dom/Document.idl:
+        * dom/DocumentFullscreen.h:
+        (WebCore::DocumentFullscreen::webkitFullscreenEnabled):
+        (WebCore::DocumentFullscreen::webkitFullscreenElement):
+        (WebCore::DocumentFullscreen::webkitExitFullscreen):
+        (WebCore::DocumentFullscreen::webkitIsFullScreen):
+        (WebCore::DocumentFullscreen::webkitFullScreenKeyboardInputAllowed):
+        (WebCore::DocumentFullscreen::webkitCurrentFullScreenElement):
+        (WebCore::DocumentFullscreen::webkitCancelFullScreen):
+        * dom/DocumentFullscreen.idl:
+        * dom/Element.cpp:
+        (WebCore::Element::webkitRequestFullscreen):
+        * dom/EventPath.cpp:
+        (WebCore::shouldEventCrossShadowBoundary):
+        * dom/FullscreenManager.cpp: Added.
+        (WebCore::isAttributeOnAllOwners):
+        (WebCore::FullscreenManager::FullscreenManager):
+        (WebCore::FullscreenManager::fullscreenIsAllowedForElement const):
+        (WebCore::FullscreenManager::requestFullscreenForElement):
+        (WebCore::FullscreenManager::cancelFullscreen):
+        (WebCore::FullscreenManager::requestExitFullscreen):
+        (WebCore::FullscreenManager::exitFullscreen):
+        (WebCore::FullscreenManager::isFullscreenEnabled const):
+        (WebCore::unwrapFullscreenRenderer):
+        (WebCore::FullscreenManager::willEnterFullscreen):
+        (WebCore::FullscreenManager::didEnterFullscreen):
+        (WebCore::FullscreenManager::willExitFullscreen):
+        (WebCore::FullscreenManager::didExitFullscreen):
+        (WebCore::FullscreenManager::setFullscreenRenderer):
+        (WebCore::FullscreenManager::dispatchFullscreenChangeEvents):
+        (WebCore::FullscreenManager::dispatchFullscreenChangeOrErrorEvent):
+        (WebCore::FullscreenManager::fullscreenElementRemoved):
+        (WebCore::FullscreenManager::adjustFullscreenElementOnNodeRemoval):
+        (WebCore::FullscreenManager::isAnimatingFullscreen const):
+        (WebCore::FullscreenManager::setAnimatingFullscreen):
+        (WebCore::FullscreenManager::areFullscreenControlsHidden const):
+        (WebCore::FullscreenManager::setFullscreenControlsHidden):
+        (WebCore::FullscreenManager::clear):
+        (WebCore::FullscreenManager::emptyEventQueue):
+        (WebCore::FullscreenManager::clearFullscreenElementStack):
+        (WebCore::FullscreenManager::popFullscreenElementStack):
+        (WebCore::FullscreenManager::pushFullscreenElementStack):
+        (WebCore::FullscreenManager::addDocumentToFullscreenChangeEventQueue):
+        * dom/FullscreenManager.h: Added.
+        (WebCore::FullscreenManager::document):
+        (WebCore::FullscreenManager::document const):
+        (WebCore::FullscreenManager::topDocument const):
+        (WebCore::FullscreenManager::page const):
+        (WebCore::FullscreenManager::frame const):
+        (WebCore::FullscreenManager::documentElement const):
+        (WebCore::FullscreenManager::hasLivingRenderTree const):
+        (WebCore::FullscreenManager::pageCacheState const):
+        (WebCore::FullscreenManager::scheduleFullStyleRebuild):
+        (WebCore::FullscreenManager::fullscreenElement const):
+        (WebCore::FullscreenManager::isFullscreen const):
+        (WebCore::FullscreenManager::isFullscreenKeyboardInputAllowed const):
+        (WebCore::FullscreenManager::currentFullscreenElement const):
+        (WebCore::FullscreenManager::fullscreenRenderer const):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::isFullscreen const):
+        (WebCore::HTMLMediaElement::isStandardFullscreen const):
+        (WebCore::HTMLMediaElement::enterFullscreen):
+        (WebCore::HTMLMediaElement::exitFullscreen):
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::canShowControlsManager const):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
+        * inspector/agents/InspectorDOMAgent.cpp:
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::isKeyEventAllowedInFullScreen const):
+        (WebCore::EventHandler::internalKeyEvent):
+        * page/Page.cpp:
+        (WebCore::Page::setFullscreenControlsHidden):
+        * rendering/RenderFullScreen.cpp:
+        (WebCore::RenderFullScreen::wrapNewRenderer):
+        (WebCore::RenderFullScreen::wrapExistingRenderer):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::isDescendantOfFullScreenLayer):
+        * rendering/updating/RenderTreeBuilder.h:
+        * rendering/updating/RenderTreeBuilderInline.cpp:
+        (WebCore::RenderTreeBuilder::Inline::splitInlines):
+        * rendering/updating/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::createRenderer):
+        * style/StyleSharingResolver.cpp:
+        (WebCore::Style::SharingResolver::canShareStyleWithElement const):
+        * testing/Internals.cpp:
+        (WebCore::Internals::webkitWillEnterFullScreenForElement):
+        (WebCore::Internals::webkitDidEnterFullScreenForElement):
+        (WebCore::Internals::webkitWillExitFullScreenForElement):
+        (WebCore::Internals::webkitDidExitFullScreenForElement):
+        (WebCore::Internals::isAnimatingFullScreen const):
+
+2019-04-18  Jer Noble  <jer.noble@apple.com>
+
+        Add support for parsing FairPlayStreaming PSSH boxes.
+        https://bugs.webkit.org/show_bug.cgi?id=197064
+
+        Reviewed by Eric Carlson.
+
+        API Tests: ISO.ISOFairPlayStreamingPsshBox
+
+        Add a new set of ISOBox classes for parsing the contents of a FairPlayStreaming PSSH box,
+        and add support for this new box to CDMFairPlayStreaming.
+
+        Drive-by fix: add an explicit include for MainThread.h to LibWebRTCProviderCocoa.cpp.
+
+        * SourcesCocoa.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/graphics/FourCC.h:
+        * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
+        (WebCore::CDMPrivateFairPlayStreaming::cencName):
+        (WebCore::fairPlaySystemID):
+        (WebCore::extractSchemeAndKeyIdFromCenc):
+        (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsCenc):
+        (WebCore::CDMPrivateFairPlayStreaming::sanitizeCenc):
+        (WebCore::validInitDataTypes):
+        (WebCore::CDMFactory::platformRegisterFactories):
+        * platform/graphics/avfoundation/CDMFairPlayStreaming.h:
+        * platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp: Added.
+        (WebCore::ISOFairPlayStreamingPsshBox::fairPlaySystemID):
+        (WebCore::ISOFairPlayStreamingInfoBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyRequestInfoBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyAssetIdBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyContextBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyVersionListBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyRequestBox::parse):
+        (WebCore::ISOFairPlayStreamingInitDataBox::parse):
+        (WebCore::ISOFairPlayStreamingPsshBox::parse):
+        * platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h: Added.
+        * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
+
+2019-04-18  Sihui Liu  <sihui_liu@apple.com>
+
+        Blob type cannot be stored correctly in IDB when IDBObjectStore has autoIncrement and keyPath options
+        https://bugs.webkit.org/show_bug.cgi?id=196128
+        <rdar://problem/49562115>
+
+        Reviewed by Geoffrey Garen.
+
+        If a key is auto-generated, it should become a property of the value object. Network process would perform the 
+        key injection by deserializing IDBValue into script value, setting the property, serializing the result and 
+        storing it in a database record. But network process does not have a JSDOMGlobalObject, so it would fail to 
+        deserialize types including Blob and File.
+
+        To solve this issue, we move the key injection to web process and let network process store the original value 
+        it gets. In this case, when web process asks for some value, network process should return key, value and key 
+        path so that web process can decide whether it should perform a key injection before returning the result. Note
+        that the auto-generated key would always be stored as the key in a ObjectStore record.
+
+        Test: storage/indexeddb/modern/objectstore-autoincrement-types.html
+
+        * Modules/indexeddb/IDBCursor.cpp:
+        (WebCore::IDBCursor::setGetResult):
+        * Modules/indexeddb/IDBCursor.h:
+        (WebCore::IDBCursor::primaryKeyPath):
+        * Modules/indexeddb/IDBGetAllResult.cpp:
+        (WebCore::IDBGetAllResult::isolatedCopy):
+        (WebCore::IDBGetAllResult::addKey):
+        (WebCore::IDBGetAllResult::addValue):
+        (WebCore::IDBGetAllResult::keys const):
+        (WebCore::IDBGetAllResult::values const):
+        (WebCore::IDBGetAllResult::allBlobFilePaths const):
+        (WebCore::isolatedCopyOfVariant): Deleted.
+
+        * Modules/indexeddb/IDBGetAllResult.h: Introduce an IDBKeyPath parameter. Also replace Variant with two Vectors,
+        because we only needed to store either key or value before, and now the stored value could be incomplete.
+        (WebCore::IDBGetAllResult::IDBGetAllResult):
+        (WebCore::IDBGetAllResult::keyPath const):
+        (WebCore::IDBGetAllResult::encode const):
+        (WebCore::IDBGetAllResult::decode):
+
+        * Modules/indexeddb/IDBGetResult.cpp:
+        (WebCore::IDBGetResult::setValue):
+        * Modules/indexeddb/IDBGetResult.h:
+        (WebCore::IDBGetResult::IDBGetResult):
+        (WebCore::IDBGetResult::keyPath const):
+        * Modules/indexeddb/IDBRequest.cpp:
+        (WebCore::IDBRequest::setResult):
+        (WebCore::IDBRequest::setResultToStructuredClone):
+        * Modules/indexeddb/IDBRequest.h:
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::didGetAllRecordsOnServer):
+        (WebCore::IDBTransaction::didGetRecordOnServer):
+        * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
+        (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
+        * Modules/indexeddb/server/MemoryIndex.cpp:
+        (WebCore::IDBServer::MemoryIndex::getResultForKeyRange const):
+        (WebCore::IDBServer::MemoryIndex::getAllRecords const):
+        * Modules/indexeddb/server/MemoryIndexCursor.cpp:
+        (WebCore::IDBServer::MemoryIndexCursor::currentData):
+        * Modules/indexeddb/server/MemoryObjectStore.cpp:
+        (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
+        (WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
+        (WebCore::IDBServer::MemoryObjectStore::getAllRecords const):
+        * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
+        (WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
+        * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
+        (WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):
+        * Modules/indexeddb/server/SQLiteIDBCursor.cpp:
+        (WebCore::IDBServer::SQLiteIDBCursor::currentData):
+        * Modules/indexeddb/server/SQLiteIDBCursor.h:
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+
+        (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Remove the key injection from network process. 
+        UniqueIDBDatabase stores any value it gets from IDBClient.
+
+        * Modules/indexeddb/shared/IDBResultData.cpp:
+        (WebCore::IDBResultData::getResultRef):
+        * Modules/indexeddb/shared/IDBResultData.h:
+
+        * bindings/js/IDBBindingUtilities.cpp:
+        (WebCore::injectIDBKeyIntoScriptValue): If property is read-only, set would fail and injectKeyIntoResult would
+        return null, but we expect it to return result as long as the property value is the same as target. Therefore, 
+        we can add an early return here.
+
+        (WebCore::createKeyPathArray):
+        (WebCore::generateIndexKeyForValue): We used to generate IndexKey from value stored in database but now the
+        value gets stored does not include auto-generated key, as we remove the key injection from network process. In 
+        this case if the IDBIndex has the same key path as the auto-generated key, IndexKey would be failed to create
+        for it cannot extract auto-generated key from value. Since the auto-generated key would always be the key in 
+        database record, we could use value of that key when we find a match in key path.
+
+        (WebCore::deserializeIDBValueWithKeyInjection): If the key path in the result is single entry, the key is 
+        probably auto-generated, so we could inject the result key into the result value unconditionally.
+
+        * bindings/js/IDBBindingUtilities.h:
+        * bindings/js/JSIDBCursorWithValueCustom.cpp:
+        (WebCore::JSIDBCursorWithValue::value const):
+        * bindings/js/JSIDBRequestCustom.cpp:
+        (WebCore::JSIDBRequest::result const):
+
+2019-04-18  Zalan Bujtas  <zalan@apple.com>
+
+        Regression (r244291): Broken API Test AutoLayoutRenderingProgressRelativeOrdering
+        https://bugs.webkit.org/show_bug.cgi?id=196948
+        <rdar://problem/49927131>
+
+        Reviewed by Tim Horton.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setContentsSize):
+        (WebCore::FrameView::autoSizeIfEnabled):
+        * page/FrameView.h:
+
+2019-04-18  Shawn Roberts  <sroberts@apple.com>
+
+        Unreviewed manual rollout of r244248 and r244409
+        Causing assertion failures on Mac WK2 Debug builds
+        https://bugs.webkit.org/show_bug.cgi?id=195623
+
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::prefetchIfNeeded):
+        * loader/ResourceLoadInfo.cpp:
+        (WebCore::toResourceType):
+        * loader/ResourceLoadInfo.h:
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::willSendRequestInternal):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+
+2019-04-18  Antti Koivisto  <antti@apple.com>
+
+        Tile update problems in iframe after scrolling page too soon after load
+        https://bugs.webkit.org/show_bug.cgi?id=197057
+        <rdar://problem/49913663>
+
+        Reviewed by Simon Fraser.
+
+        We end up destroying FrameHosting scrolling node when we shouldn't.
+
+        No test, despite attempts I couldn't get this state to stick. The problem is that in
+        most cases the destroying scrolling node gets immediately recreated and connected again.
+        Getting into testably buggy state requires some very specific layer tree configuration update.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
+
+        Test the right thing.
+
+2019-04-18  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html
+        https://bugs.webkit.org/show_bug.cgi?id=197004
+
+        Reviewed by Antti Koivisto.
+
+        We need to release pointer capture when an element that has pointer capture is disconnected from the DOM.
+
+        * dom/Element.cpp:
+        (WebCore::Element::removedFromAncestor): Notify the PointerCaptureController that an element was disconnected.
+        * dom/PointerEvent.cpp:
+        (WebCore::PointerEvent::create): Broaden createPointerCancelEvent() to take in an event type so that we may use it to create a
+        lostpointercapture event as well.
+        (WebCore::PointerEvent::createPointerCancelEvent): Deleted.
+        * dom/PointerEvent.h:
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::elementWasRemoved): Check whether the provided element matches one of the target overrides recorded
+        in the map of captured pointer IDs.
+        (WebCore::PointerCaptureController::pointerEventWasDispatched): This block of code was actually useless in this location, the new code
+        added in elementWasRemoved() performs the actions that the spec text mandates.
+        (WebCore::PointerCaptureController::cancelPointer): Replace the call to createPointerCancelEvent() with one to create().
+        * page/PointerCaptureController.h:
+
+2019-04-17  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
+        https://bugs.webkit.org/show_bug.cgi?id=197006
+
+        Reviewed by Antti Koivisto.
+
+        Add support for on* HTML attributes and JS properties for pointer events.
+
+        * dom/GlobalEventHandlers.idl:
+        * html/HTMLAttributeNames.in:
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::createEventHandlerNameMap):
+
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Standardize the `<meta name="color-scheme">` separator.
+        https://bugs.webkit.org/show_bug.cgi?id=193931
+
+        Reviewed by Simon Fraser.
+
+        Drop support for comma as a valid seperator in <meta name="color-scheme"> to
+        match the proposal being tracked by: https://github.com/whatwg/html/issues/4504
+
+        Tests: css-dark-mode/color-scheme-meta.html
+               css-dark-mode/older-syntax/supported-color-schemes-meta.html
+
+        * dom/Document.cpp:
+        (WebCore::isColorSchemeSeparator): Drop support for comma.
+
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Rename `supported-color-schemes` to `color-scheme`.
+        https://bugs.webkit.org/show_bug.cgi?id=197016
+        rdar://problem/49980259
+
+        Reviewed by Simon Fraser.
+
+        Changed `supported-color-schemes` to `color-scheme` to follow the spec changes
+        being tracked by: https://github.com/w3c/csswg-drafts/issues/3807
+
+        The old `supported-color-schemes` is now an alias of `color-scheme` for compatibility.
+
+        Tests: css-dark-mode/color-scheme-css-parse.html
+               css-dark-mode/color-scheme-css.html
+               css-dark-mode/color-scheme-meta.html
+               css-dark-mode/color-scheme-priority.html
+               css-dark-mode/color-scheme-scrollbar.html
+               css-dark-mode/older-syntax/supported-color-schemes-css.html
+               css-dark-mode/older-syntax/supported-color-schemes-meta.html
+               css-dark-mode/older-systems/color-scheme-css.html
+               css-dark-mode/older-systems/color-scheme-meta.html
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::updateColorScheme):
+        (WebCore::StyleBuilderConverter::convertColorScheme):
+        (WebCore::StyleBuilderConverter::updateSupportedColorSchemes): Deleted.
+        (WebCore::StyleBuilderConverter::convertSupportedColorSchemes): Deleted.
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueColorScheme):
+        (WebCore::StyleBuilderCustom::applyValueSupportedColorSchemes): Deleted.
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::applyMatchedProperties):
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeColorScheme):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+        (WebCore::consumeSupportedColorSchemes): Deleted.
+        * dom/Document.cpp:
+        (WebCore::processColorSchemeString):
+        (WebCore::Document::processColorScheme):
+        (WebCore::Document::useDarkAppearance const):
+        (WebCore::processColorSchemes): Deleted.
+        (WebCore::Document::processSupportedColorSchemes): Deleted.
+        * dom/Document.h:
+        * html/HTMLMetaElement.cpp:
+        (WebCore::HTMLMetaElement::process):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::rendererForColorScheme const):
+        (WebCore::FrameView::useDarkAppearance const):
+        (WebCore::FrameView::styleColorOptions const):
+        (WebCore::FrameView::rendererForSupportedColorSchemes const): Deleted.
+        * page/FrameView.h:
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::rareInheritedDataChangeRequiresRepaint):
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::colorScheme const):
+        (WebCore::RenderStyle::setHasExplicitlySetColorScheme):
+        (WebCore::RenderStyle::hasExplicitlySetColorScheme const):
+        (WebCore::RenderStyle::setColorScheme):
+        (WebCore::RenderStyle::initialColorScheme):
+        (WebCore::RenderStyle::NonInheritedFlags::operator== const):
+        (WebCore::RenderStyle::supportedColorSchemes const): Deleted.
+        (WebCore::RenderStyle::setHasExplicitlySetSupportedColorSchemes): Deleted.
+        (WebCore::RenderStyle::hasExplicitlySetSupportedColorSchemes const): Deleted.
+        (WebCore::RenderStyle::setSupportedColorSchemes): Deleted.
+        (WebCore::RenderStyle::initialSupportedColorSchemes): Deleted.
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/style/StyleColorScheme.h: Renamed from Source/WebCore/rendering/style/StyleSupportedColorSchemes.h.
+        (WebCore::StyleColorScheme::StyleColorScheme):
+        (WebCore::StyleColorScheme::operator== const):
+        (WebCore::StyleColorScheme::operator!= const):
+        (WebCore::StyleColorScheme::isAuto const):
+        (WebCore::StyleColorScheme::isOnly const):
+        (WebCore::StyleColorScheme::colorScheme const):
+        (WebCore::StyleColorScheme::add):
+        (WebCore::StyleColorScheme::contains const):
+        (WebCore::StyleColorScheme::setAllowsTransformations):
+        (WebCore::StyleColorScheme::allowsTransformations const):
+        * rendering/style/StyleRareInheritedData.cpp:
+        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
+        (WebCore::StyleRareInheritedData::operator== const):
+        * rendering/style/StyleRareInheritedData.h:
+
+2019-04-17  Justin Fan  <justin_fan@apple.com>
+
+        [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
+        https://bugs.webkit.org/show_bug.cgi?id=196984
+
+        Reviewed by Myles C. Maxfield.
+
+        Test: Updated compute-squares.html.
+
+        * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:
+        (WebCore::GPUComputePassEncoder::dispatch):
+
+2019-04-17  Andy Estes  <aestes@apple.com>
+
+        [iOS] Support multiple file selection in UIDocumentPickerViewController
+        https://bugs.webkit.org/show_bug.cgi?id=197014
+        <rdar://problem/49963514>
+
+        Reviewed by Tim Horton.
+
+        * platform/LocalizedStrings.h:
+        Exported multipleFileUploadText().
+
+2019-04-17  John Wilander  <wilander@apple.com>
+
+        Add prioritization of ad click conversions and cleaning of sent ad click conversions
+        https://bugs.webkit.org/show_bug.cgi?id=196934
+        <rdar://problem/49917773>
+
+        Reviewed by Chris Dumez.
+
+        Tests: http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html
+               http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html
+               http/tests/adClickAttribution/second-conversion-with-higher-priority.html
+               http/tests/adClickAttribution/second-conversion-with-lower-priority.html
+
+        * loader/AdClickAttribution.cpp:
+        (WebCore::AdClickAttribution::hasHigherPriorityThan const):
+            Added to facilitate priority comparison between two attributions.
+        * loader/AdClickAttribution.h:
+        (WebCore::AdClickAttribution::Destination::Destination):
+            Added a WTF::HashTableDeletedValueType constructor and changed the copy constructor to
+            a move constructor.
+        (WebCore::AdClickAttribution::isEmpty const):
+
+2019-04-17  Devin Rousso  <drousso@apple.com>
+
+        AX: AccessibilityObject::parentObject() doesn't need to be pure virtual
+        https://bugs.webkit.org/show_bug.cgi?id=197026
+        <rdar://problem/49448209>
+
+        Reviewed by Timothy Hatcher.
+
+        * accessibility/AccessibilityObject.h:
+        (WebCore::AccessibilityObject::parentObject const):
+
+2019-04-17  Zalan Bujtas  <zalan@apple.com>
+
+        [ContentChangeObserver] Use aria role as a hint whether a tap should result in a synthetic click
+        https://bugs.webkit.org/show_bug.cgi?id=196988
+        <rdar://problem/49955328>
+
+        Reviewed by Simon Fraser.
+
+        Test: fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role.html
+
+        * accessibility/AccessibilityObject.h:
+
+2019-04-17  Alex Christensen  <achristensen@webkit.org>
+
+        WebSocketHandshake should not know about a Document
+        https://bugs.webkit.org/show_bug.cgi?id=196468
+
+        Reviewed by Tim Horton.
+
+        I'll need to move WebSocketHandshake to the NetworkProcess for rdar://problem/46287028
+        It currently uses the Document pointer for 3 things:
+        1. To get the user agent, which we can pass in as a creation parameter.
+        2. To get the origin, which we can also pass in as a creation parameter.
+        3. To get cookies for the web inspector.  We can pass in a functor instead and have the inspector provide cookies itself.
+
+        * Modules/websockets/WebSocketChannel.cpp:
+        (WebCore::WebSocketChannel::connect):
+        (WebCore::WebSocketChannel::disconnect):
+        (WebCore::WebSocketChannel::didOpenSocketStream):
+        (WebCore::WebSocketChannel::clientHandshakeRequest):
+        * Modules/websockets/WebSocketChannel.h:
+        (WebCore::WebSocketChannel::document):
+        * Modules/websockets/WebSocketHandshake.cpp:
+        (WebCore::WebSocketHandshake::WebSocketHandshake):
+        (WebCore::WebSocketHandshake::clientHandshakeMessage const):
+        (WebCore::WebSocketHandshake::clientHandshakeRequest const):
+        (WebCore::WebSocketHandshake::clientOrigin const): Deleted.
+        (WebCore::WebSocketHandshake::clientHandshakeCookieRequestHeaderFieldProxy const): Deleted.
+        (WebCore::WebSocketHandshake::clearDocument): Deleted.
+        * Modules/websockets/WebSocketHandshake.h:
+        * inspector/agents/InspectorNetworkAgent.cpp:
+        (WebCore::InspectorNetworkAgent::enable):
+
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Unreviewed build fix for iOSMac after r244223.
+
+        * platform/audio/ios/AudioSessionIOS.mm:
+        (WebCore::AudioSession::routeSharingPolicy const): Add ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END
+        around AVAudioSessionRouteSharingPolicyLongForm use.
+
+2019-04-17  Chris Dumez  <cdumez@apple.com>
+
+        Remember device orientation permission for the duration of the browsing session
+        https://bugs.webkit.org/show_bug.cgi?id=196992
+        <rdar://problem/49946067>
+
+        Reviewed by Alex Christensen.
+
+        Use DeviceOrientationOrMotionPermissionState type more consistently in the code base
+        instead of bool or Optional<bool>. Added "Prompt" value to this enumeration which is the
+        default state and which indicates we should ask the client.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/DeviceOrientationAndMotionAccessController.cpp:
+        (WebCore::DeviceOrientationAndMotionAccessController::DeviceOrientationAndMotionAccessController):
+        (WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):
+        * dom/DeviceOrientationAndMotionAccessController.h:
+        (WebCore::DeviceOrientationAndMotionAccessController::accessState const):
+        * dom/DeviceOrientationOrMotionEvent.cpp:
+        (WebCore::DeviceOrientationOrMotionEvent::requestPermission):
+        * dom/DeviceOrientationOrMotionPermissionState.h:
+        * loader/DocumentLoader.h:
+        (WebCore::DocumentLoader::deviceOrientationAndMotionAccessState const):
+        (WebCore::DocumentLoader::setDeviceOrientationAndMotionAccessState):
+        * page/ChromeClient.h:
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::isAllowedToAddDeviceMotionOrientationListener const):
+
+2019-04-17  Rob Buis  <rbuis@igalia.com>
+
+        XMLHttpRequest has the wrong fallback encoding
+        https://bugs.webkit.org/show_bug.cgi?id=191741
+
+        Reviewed by Alex Christensen.
+
+        Allow overriding the response charset as specified here:
+        https://xhr.spec.whatwg.org/#final-charset
+
+        Behavior matches Firefox and Chrome.
+
+        Tests: imported/w3c/web-platform-tests/encoding/replacement-encodings.any.html
+               imported/w3c/web-platform-tests/encoding/replacement-encodings.any.worker.html
+               imported/w3c/web-platform-tests/encoding/unsupported-encodings.any.html
+               imported/w3c/web-platform-tests/encoding/unsupported-encodings.any.worker.html
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::finalResponseCharset const):
+        (WebCore::XMLHttpRequest::createDecoder const):
+        * xml/XMLHttpRequest.h:
+
+2019-04-16  Antoine Quint  <graouts@apple.com>
+
+        Opt Google Maps into simulated mouse events dispatch quirk
+        https://bugs.webkit.org/show_bug.cgi?id=196965
+        <rdar://problem/49934766>
+
+        Reviewed by Dean Jackson.
+
+        Use the correct Google Maps path.
+
+        * page/Quirks.cpp:
+        (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
+
+2019-04-16  Antoine Quint  <graouts@apple.com>
+
+        Opt flipkart.com into simulated mouse events dispatch quirk
+        https://bugs.webkit.org/show_bug.cgi?id=196961
+        <rdar://problem/49648520>
+
+        Reviewed by Dean Jackson.
+
+        * page/Quirks.cpp:
+        (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
+
+2019-04-16  Antoine Quint  <graouts@apple.com>
+
+        Opt MSN.com into simulated mouse events dispatch quirk
+        https://bugs.webkit.org/show_bug.cgi?id=196960
+        <rdar://problem/49403260>
+
+        Reviewed by Dean Jackson.
+
+        * page/Quirks.cpp:
+        (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
+
+2019-04-16  Zan Dobersek  <zdobersek@igalia.com>
+
+        ScalableImageDecoder: don't forcefully decode image data when querying frame completeness, duration
+        https://bugs.webkit.org/show_bug.cgi?id=191354
+        <rdar://problem/46123406>
+
+        Reviewed by Michael Catanzaro.
+
+        ScalableImageDecoder::frameIsCompleteAtIndex() should only check the
+        index validity and, if the index is valid, check for completeness of the
+        corresponding frame. ScalableImageDecoder::frameDurationAtIndex() should
+        also only retrieve duration for already-complete frames, or expand the
+        default 0-second value according to the flashing-protection rule when
+        the target frame is not yet complete.
+
+        Both methods avoid calling ScalableImageDecoder::frameBufferAtIndex()
+        as that method goes on and decodes image data to determine specific
+        information. The ImageSource class that's querying this information
+        doesn't anticipate this, and doesn't handle the increased memory
+        consumption of the decoded data, leaving MemoryCache in the blind about
+        the image resource's actual amount of consumed memory. ImageSource can
+        instead gracefully handle any incomplete frame by marking the decoding
+        status for this frame as only partial.
+
+        * platform/image-decoders/ScalableImageDecoder.cpp:
+        (WebCore::ScalableImageDecoder::frameIsCompleteAtIndex const):
+        (WebCore::ScalableImageDecoder::frameHasAlphaAtIndex const):
+        (WebCore::ScalableImageDecoder::frameDurationAtIndex const):
+
+2019-04-16  Ross Kirsling  <ross.kirsling@sony.com>
+
+        Unreviewed non-unified build fix after r244307.
+
+        * page/DiagnosticLoggingClient.h:
+
+2019-04-16  Chris Dumez  <cdumez@apple.com>
+
+        URL set by document.open() is not communicated to the UIProcess
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        <rdar://problem/49237544>
+
+        Reviewed by Geoff Garen.
+
+        Notify the FrameLoaderClient whenever an explicit open was done and provide it with
+        the latest document URL.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::didExplicitOpen):
+        * loader/FrameLoaderClient.h:
+
+2019-04-16  Timothy Hatcher  <timothy@apple.com>
+
+        FrameView base background color always starts white.
+        https://bugs.webkit.org/show_bug.cgi?id=196976
+
+        Reviewed by Beth Dakin.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setBaseBackgroundColor): Bail early if the base background
+        color did not change.
+
+2019-04-16  Devin Rousso  <drousso@apple.com>
+
+        Unprefix -webkit-sticky
+        https://bugs.webkit.org/show_bug.cgi?id=196962
+        <rdar://problem/40903458>
+
+        Reviewed by Simon Fraser.
+
+        Updated existing tests.
+
+        This change doesn't modify functionality, only exposing a new unprefixed CSS value.
+
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator PositionType const):
+
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+
+        * editing/EditingStyle.cpp:
+        (WebCore::EditingStyle::convertPositionStyle):
+
+2019-04-16  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244321.
+        https://bugs.webkit.org/show_bug.cgi?id=196968
+
+        Causing all WK2 Debug builds to exit early after Assertion
+        failures. (Requested by ShawnRoberts on #webkit).
+
+        Reverted changeset:
+
+        "URL set by document.open() is not communicated to the
+        UIProcess"
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        https://trac.webkit.org/changeset/244321
+
+2019-04-16  Caitlin Potter  <caitp@igalia.com>
+
+        [JSC] Filter DontEnum properties in ProxyObject::getOwnPropertyNames()
+        https://bugs.webkit.org/show_bug.cgi?id=176810
+
+        Reviewed by Saam Barati.
+
+        Previously, there was a comment here indicating uncertainty of whether it
+        was necessary to filter DontEnum properties explicitly or not. It turns
+        out that it was necessary in the case of JSC ProxyObjects.
+
+        This patch adds DontEnum filtering for ProxyObjects, however we continue
+        to explicitly filter them in JSDOMConvertRecord, which needs to use the
+        property descriptor after filtering. This change prevents observably
+        fetching the property descriptor twice per property.
+
+        * bindings/js/JSDOMConvertRecord.h:
+
+2019-04-15  Antoine Quint  <graouts@apple.com>
+
+        [iOS] Redundant pointer events causes material design buttons to flush twice
+        https://bugs.webkit.org/show_bug.cgi?id=196914
+        <rdar://problem/49571860>
+
+        Reviewed by Dean Jackson.
+
+        Test: pointerevents/ios/pointer-event-order.html
+
+        Do not dispatch pointer events for mouse events on iOS since we're already dispatching them when processing touch events.
+
+        * dom/Element.cpp:
+        (WebCore::Element::dispatchMouseEvent):
+
+2019-04-15  John Wilander  <wilander@apple.com>
+
+        Add a query string nonce to LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html to address flakiness
+        https://bugs.webkit.org/show_bug.cgi?id=196955
+
+        Unreviewed test gardening. The WebCore change is only in a dedicated
+        test function.
+
+        No new tests. Existing test updated.
+
+        * loader/AdClickAttribution.cpp:
+        (WebCore::AdClickAttribution::urlForTesting const):
+            Now preserves the query string in the test URL.
+
+2019-04-15  Chris Dumez  <cdumez@apple.com>
+
+        URL set by document.open() is not communicated to the UIProcess
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        <rdar://problem/49237544>
+
+        Reviewed by Geoffrey Garen.
+
+        Notify the FrameLoaderClient whenever an explicit open was done and provide it with
+        the latest document URL.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::didExplicitOpen):
+        * loader/FrameLoaderClient.h:
+
+2019-04-15  Eike Rathke  <erack@redhat.com>
+
+        Fix logic flow for error log
+        https://bugs.webkit.org/show_bug.cgi?id=196933
+
+        Reviewed by Alexey Proskuryakov.
+
+        Missing block braces logged an error always, not just
+        if (actionIfInvalid == Complain).
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::isSafeToLoadURL):
+
+2019-04-15  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
+        https://bugs.webkit.org/show_bug.cgi?id=196846
+        <rdar://problem/49499971>
+
+        Reviewed by Simon Fraser and Darin Adler.
+
+        When adding the special codepath for system-ui to behave as an entire list of fonts rather than a single item,
+        I never added a cache for the FontPlatformData objects that codepath creates. The non-system-ui codepath already
+        has a cache in fontPlatformDataCache() in FontCache.cpp.
+
+        This patch causes a 16.8x performance improvement on the attached benchmark.
+
+        Test: PerformanceTests/Layout/system-ui-rebuild-emoji.html
+
+        * page/cocoa/MemoryReleaseCocoa.mm:
+        (WebCore::platformReleaseMemory):
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::invalidateFontCache):
+        * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
+        (WebCore::FontFamilySpecificationKey::FontFamilySpecificationKey):
+        (WebCore::FontFamilySpecificationKey::operator== const):
+        (WebCore::FontFamilySpecificationKey::operator!= const):
+        (WebCore::FontFamilySpecificationKey::isHashTableDeletedValue const):
+        (WebCore::FontFamilySpecificationKey::computeHash const):
+        (WebCore::FontFamilySpecificationKeyHash::hash):
+        (WebCore::FontFamilySpecificationKeyHash::equal):
+        (WebCore::fontMap):
+        (WebCore::clearFontFamilySpecificationCoreTextCache):
+        (WebCore::FontFamilySpecificationCoreText::fontRanges const):
+        * platform/graphics/cocoa/FontFamilySpecificationCoreText.h:
+        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
+        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
+        (WebCore::safeCFEqual): Deleted.
+
 2019-04-15  Devin Rousso  <drousso@apple.com>
 
         Web Inspector: fake value descriptors for promises add a catch handler, preventing "rejectionhandled" events from being fired