Multiple File Input Icon Set Regardless of File List
[WebKit-https.git] / Source / WebCore / ChangeLog
index c86c461..d63878f 100644 (file)
@@ -1,3 +1,548 @@
+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