[webkit-changes] [WebKit/WebKit] 8f06e1: Cherry-pick 282769 at main (b4145d91c54d). https://bu...

Michael Catanzaro noreply at github.com
Wed Sep 4 02:08:58 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: 8f06e1de98b5a86ffc7e3b06a31b33551b8c2aa1
      https://github.com/WebKit/WebKit/commit/8f06e1de98b5a86ffc7e3b06a31b33551b8c2aa1
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/WebKit/Shared/API/APISerializedScriptValue.cpp

  Log Message:
  -----------
  Cherry-pick 282769 at main (b4145d91c54d). https://bugs.webkit.org/show_bug.cgi?id=278682

    Fix assertion after 281812 at main
    https://bugs.webkit.org/show_bug.cgi?id=278682
    rdar://134731526

    Reviewed by Timothy Hatcher.

    My assertion had an off-by-one error that was usually true because
    it was checking that uninitialized memory was 0.  JSStringGetUTF8CString
    returns a length that includes the null termination character, which
    I got correct in the call to WKStringCreateWithUTF8CStringWithLength
    but not in the assertion.  This fixes the assertion and makes the
    tests stop asserting in debug builds.

    * Source/WebKit/Shared/API/APISerializedScriptValue.cpp:
    (API::valueToWKObject):

    Canonical link: https://commits.webkit.org/282769@main

Canonical link: https://commits.webkit.org/282416.54@webkitglib/2.46


  Commit: 2199e3ff7afe1deb4e60fffc77143363fc18090a
      https://github.com/WebKit/WebKit/commit/2199e3ff7afe1deb4e60fffc77143363fc18090a
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/WebCore/Modules/fetch/FetchBodySource.cpp
    M Source/WebCore/Modules/fetch/FetchBodySource.h
    M Source/WebCore/Modules/fetch/FetchResponse.cpp
    M Source/WebCore/Modules/fetch/FetchResponse.h
    M Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
    M Source/WebCore/Modules/plugins/YouTubePluginReplacement.h
    M Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp
    M Source/WebCore/Modules/speech/SpeechRecognitionEvent.h
    M Source/WebCore/Modules/storage/StorageConnection.h
    M Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp
    M Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h
    M Source/WebCore/animation/CSSTransition.cpp
    M Source/WebCore/animation/CSSTransition.h
    M Source/WebCore/animation/DocumentTimeline.cpp
    M Source/WebCore/animation/DocumentTimeline.h
    M Source/WebCore/crypto/keys/CryptoKeyEC.cpp
    M Source/WebCore/crypto/keys/CryptoKeyEC.h
    M Source/WebCore/css/typedom/CSSUnparsedValue.cpp
    M Source/WebCore/css/typedom/CSSUnparsedValue.h
    M Source/WebCore/css/typedom/transform/CSSPerspective.cpp
    M Source/WebCore/css/typedom/transform/CSSPerspective.h
    M Source/WebCore/css/typedom/transform/CSSTransformValue.cpp
    M Source/WebCore/css/typedom/transform/CSSTransformValue.h
    M Source/WebCore/dom/DragEvent.cpp
    M Source/WebCore/dom/DragEvent.h
    M Source/WebCore/dom/InputEvent.cpp
    M Source/WebCore/dom/InputEvent.h
    M Source/WebCore/editing/ReplaceSelectionCommand.cpp
    M Source/WebCore/editing/ReplaceSelectionCommand.h
    M Source/WebCore/html/CollectionTraversalInlines.h
    M Source/WebCore/html/GenericCachedHTMLCollection.cpp
    M Source/WebCore/html/GenericCachedHTMLCollection.h
    M Source/WebCore/html/PluginDocument.cpp
    M Source/WebCore/html/PluginDocument.h
    M Source/WebCore/loader/cache/CachedSVGFont.cpp
    M Source/WebCore/loader/cache/CachedSVGFont.h
    M Source/WebCore/page/WorkerNavigator.cpp
    M Source/WebCore/page/WorkerNavigator.h
    M Source/WebCore/platform/audio/AudioDSPKernelProcessor.cpp
    M Source/WebCore/platform/audio/AudioDSPKernelProcessor.h
    M Source/WebCore/platform/audio/cocoa/WebAudioBufferList.cpp
    M Source/WebCore/platform/audio/cocoa/WebAudioBufferList.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm
    M Source/WebCore/platform/graphics/BitmapImageSource.cpp
    M Source/WebCore/platform/graphics/BitmapImageSource.h
    M Source/WebCore/platform/graphics/NativeImage.cpp
    M Source/WebCore/platform/graphics/NativeImage.h
    M Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp
    M Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.h
    M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h
    M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm
    M Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp
    M Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.h
    M Source/WebCore/rendering/style/BasicShapes.cpp
    M Source/WebCore/rendering/style/BasicShapes.h
    M Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp
    M Source/WebKit/NetworkProcess/Downloads/PendingDownload.h
    M Source/WebKit/Shared/WebImage.cpp
    M Source/WebKit/Shared/WebImage.h
    M Source/WebKit/UIProcess/API/APIInspectorConfiguration.cpp
    M Source/WebKit/UIProcess/API/APIInspectorConfiguration.h
    M Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.cpp
    M Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.h
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
    M Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxyInternals.h
    M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp
    M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
    M Source/WebKit/WebProcess/Inspector/WebPageInspectorTarget.cpp
    M Source/WebKit/WebProcess/Inspector/WebPageInspectorTarget.h
    M Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp
    M Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h
    M Source/WebKit/WebProcess/WebPage/WebCookieCache.cpp
    M Source/WebKit/WebProcess/WebPage/WebCookieCache.h
    M Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp
    M Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h
    M Source/WebKitLegacy/ios/WebCoreSupport/WebInspectorClientIOS.mm
    M Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm

  Log Message:
  -----------
  Cherry-pick 282753 at main (b2f4995bd769). https://bugs.webkit.org/show_bug.cgi?id=278630

    Move WebCore/WebKitLegacy/WebKit destructors to source files for upstream clang
    <https://bugs.webkit.org/show_bug.cgi?id=278630>
    <rdar://134660411>

    Reviewed by Darin Adler.

    In upstream clang, destructors require full class definitions for any
    instance variable that is destructed.  In most cases, moving the
    destructor out of the header fixes this build failure without
    increasing header parsing time.  Alternate fixes are noted below.

    * Source/WebCore/Modules/fetch/FetchBodySource.cpp:
    * Source/WebCore/Modules/fetch/FetchBodySource.h:
    * Source/WebCore/Modules/fetch/FetchResponse.cpp:
    * Source/WebCore/Modules/fetch/FetchResponse.h:
    * Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:
    * Source/WebCore/Modules/plugins/YouTubePluginReplacement.h:
    * Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:
    * Source/WebCore/Modules/speech/SpeechRecognitionEvent.h:
    * Source/WebCore/Modules/storage/StorageConnection.h:
    - Replace struct StorageEstimate predeclaration by including
      StorageEstimate.h since it's a small struct.
    * Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp:
    * Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h:
    * Source/WebCore/animation/CSSTransition.cpp:
    * Source/WebCore/animation/CSSTransition.h:
    * Source/WebCore/animation/DocumentTimeline.cpp:
    * Source/WebCore/animation/DocumentTimeline.h:
    * Source/WebCore/crypto/keys/CryptoKeyEC.cpp:
    * Source/WebCore/crypto/keys/CryptoKeyEC.h:
    * Source/WebCore/css/typedom/CSSUnparsedValue.cpp:
    * Source/WebCore/css/typedom/CSSUnparsedValue.h:
    * Source/WebCore/css/typedom/transform/CSSPerspective.cpp:
    * Source/WebCore/css/typedom/transform/CSSPerspective.h:
    * Source/WebCore/css/typedom/transform/CSSTransformValue.cpp:
    * Source/WebCore/css/typedom/transform/CSSTransformValue.h:
    * Source/WebCore/dom/DragEvent.cpp:
    * Source/WebCore/dom/DragEvent.h:
    * Source/WebCore/dom/InputEvent.cpp:
    * Source/WebCore/dom/InputEvent.h:
    * Source/WebCore/editing/ReplaceSelectionCommand.cpp:
    * Source/WebCore/editing/ReplaceSelectionCommand.h:
    * Source/WebCore/html/CollectionTraversalInlines.h:
    - Include HTMLOptionsCollectionInlines.h since this is needed in some
      source files.
    * Source/WebCore/html/GenericCachedHTMLCollection.cpp:
    * Source/WebCore/html/GenericCachedHTMLCollection.h:
    * Source/WebCore/html/PluginDocument.cpp:
    * Source/WebCore/html/PluginDocument.h:
    * Source/WebCore/loader/cache/CachedSVGFont.cpp:
    * Source/WebCore/loader/cache/CachedSVGFont.h:
    * Source/WebCore/page/WorkerNavigator.cpp:
    * Source/WebCore/page/WorkerNavigator.h:
    * Source/WebCore/platform/audio/AudioDSPKernelProcessor.cpp:
    * Source/WebCore/platform/audio/AudioDSPKernelProcessor.h:
    * Source/WebCore/platform/audio/cocoa/WebAudioBufferList.cpp:
    * Source/WebCore/platform/audio/cocoa/WebAudioBufferList.h:
    * Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.h:
    * Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
    * Source/WebCore/platform/graphics/BitmapImageSource.cpp:
    * Source/WebCore/platform/graphics/BitmapImageSource.h:
    * Source/WebCore/platform/graphics/NativeImage.cpp:
    * Source/WebCore/platform/graphics/NativeImage.h:
    * Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
    * Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
    * Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
    * Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
    * Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
    * Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
    * Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
    * Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
    * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
    * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
    * Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
    * Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
    * Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
    * Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
    * Source/WebCore/platform/mock/MockRealtimeVideoSource.h:
    * Source/WebCore/rendering/style/BasicShapes.cpp:
    * Source/WebCore/rendering/style/BasicShapes.h:
    * Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp:
    * Source/WebKit/NetworkProcess/Downloads/PendingDownload.h:
    * Source/WebKit/Shared/WebImage.cpp:
    * Source/WebKit/Shared/WebImage.h:
    - Also mark WebImage class as final.
    * Source/WebKit/UIProcess/API/APIInspectorConfiguration.cpp:
    * Source/WebKit/UIProcess/API/APIInspectorConfiguration.h:
    * Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
    * Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.h:
    * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
    - Include headers require for WebPageProxy::Internals destructor.
    - Declare WebPageProxy::Internals destructor for Cocoa platforms.
    * Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp:
    * Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h:
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    - Move class definition of WebPageProxyFrameLoadStateObserver to
      WebPageProxyInternals.h, leaving constructor and destructor here.
    - Declare WebPageProxy::Internals destructor for non-Cocoa platforms.
    * Source/WebKit/UIProcess/WebPageProxyInternals.h:
    - Move class definition of WebPageProxyFrameLoadStateObserver to here
      from WebPageProxy.cpp.
    * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
    * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
    * Source/WebKit/WebProcess/Inspector/WebPageInspectorTarget.cpp:
    * Source/WebKit/WebProcess/Inspector/WebPageInspectorTarget.h:
    * Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
    * Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
    * Source/WebKit/WebProcess/WebPage/WebCookieCache.cpp:
    * Source/WebKit/WebProcess/WebPage/WebCookieCache.h:
    - Also mark WebCookieCache class as final.
    * Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp:
    * Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h:
    * Source/WebKitLegacy/ios/WebCoreSupport/WebInspectorClientIOS.mm:
    * Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.h:
    * Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm:

    Canonical link: https://commits.webkit.org/282753@main

Canonical link: https://commits.webkit.org/282416.55@webkitglib/2.46


  Commit: 409641809e759ce5fa9115d85dc1debfe2f88833
      https://github.com/WebKit/WebKit/commit/409641809e759ce5fa9115d85dc1debfe2f88833
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

  Log Message:
  -----------
  Cherry-pick 282680 at main (9a40e4dc60a5). https://bugs.webkit.org/show_bug.cgi?id=278576

    Regression(278911 at main) Crash under AuxiliaryProcessProxy::shutDownProcess()
    https://bugs.webkit.org/show_bug.cgi?id=278576
    rdar://134235519

    Reviewed by Charlie Wolfe and Sihui Liu.

    Make sure we use the `connection` stack variable instead of `m_connection`
    as it might get cleared out.

    * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
    (WebKit::AuxiliaryProcessProxy::shutDownProcess):

    Canonical link: https://commits.webkit.org/282680@main

Canonical link: https://commits.webkit.org/282416.56@webkitglib/2.46


  Commit: 1bf45e6a1b86a415c1ee9aa04d726a0b87757812
      https://github.com/WebKit/WebKit/commit/1bf45e6a1b86a415c1ee9aa04d726a0b87757812
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp

  Log Message:
  -----------
  Cherry-pick 282707 at main (bfe0238da5a9). https://bugs.webkit.org/show_bug.cgi?id=278594

    [JSC] Fix memory leaks for AbstractHeap in OMGIRGenerator
    https://bugs.webkit.org/show_bug.cgi?id=278594
    rdar://134598934

    Reviewed by Yusuke Suzuki.

    Use unique_ptr for the AbstractHeap fields defined in
    OMGIRGenerator to avoid memory leaks.

    * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:

    Canonical link: https://commits.webkit.org/282707@main

Canonical link: https://commits.webkit.org/282416.57@webkitglib/2.46


  Commit: 14a96a1eb8018e734dc33c1f017a280de5053401
      https://github.com/WebKit/WebKit/commit/14a96a1eb8018e734dc33c1f017a280de5053401
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick 282669 at main (d152a53cf0d1). https://bugs.webkit.org/show_bug.cgi?id=278571

    Fix debug assertion in WebPageProxy::loadDataWithNavigationShared after 282655 at main
    https://bugs.webkit.org/show_bug.cgi?id=278571
    rdar://134583835

    Reviewed by Richard Robinson.

    This fixes any use of WKWebView.loadData in a debug build.
    Covered by many API tests, which unfortunately have no EWS coverage.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::loadDataWithNavigationShared):

    Canonical link: https://commits.webkit.org/282669@main

Canonical link: https://commits.webkit.org/282416.58@webkitglib/2.46


  Commit: 13903c3afb0615cdfebccbed997b822d09d5286c
      https://github.com/WebKit/WebKit/commit/13903c3afb0615cdfebccbed997b822d09d5286c
  Author: Ryan Reno <rreno at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.h
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.h
    A Source/WebCore/Modules/webcodecs/WebCodecsControlMessage.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick 282657 at main (dcc8d978d725). https://bugs.webkit.org/show_bug.cgi?id=278356

    REGRESSION (280738 at main) [WebCodecs] Audio and Video codecs can be garbage collected with pending work.
    https://bugs.webkit.org/show_bug.cgi?id=278356
    rdar://134297589

    Reviewed by Youenn Fablet.

    In 280738 at main http/wpt/webcodecs/hevc-encoder-config.https.any.html
    became flaky. This is because the VideoEncoder object goes out of scope
    as soon as the configure steps schedule the control message to reject
    the configuration and sometimes gets garbage collected before the error
    callback can be called. Prior to 280738 at main the callback was a GC root
    and so would never be collected. After this, though, the codec is
    responsible for keeping its JS callbacks alive and so sometimes
    everything gets collected.

    Many of the WebCodecs steps require asynchronous work to be scheduled
    which gives the algorithms many states where it is valid to have
    outstanding work but all references to the codecs have been dropped in
    JavaScript. In order to prevent them from being prematurely collected
    this patch introduces an abstraction for the WebCodecs Control Message.
    This object represents pending work and will hold a PendingActivity
    for the codec which will prevent it from being garbage collected before
    the spec algorithm steps have been completed. Additionally, we will
    create a pending activity when we submit asynchronous work to the
    internal codec implementation.

    * LayoutTests/TestExpectations:
    * LayoutTests/platform/ios/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.cpp:
    (WebCore::WebCodecsAudioDecoder::configure):
    (WebCore::WebCodecsAudioDecoder::decode):
    (WebCore::WebCodecsAudioDecoder::flush):
    (WebCore::WebCodecsAudioDecoder::closeDecoder):
    (WebCore::WebCodecsAudioDecoder::resetDecoder):
    (WebCore::WebCodecsAudioDecoder::queueControlMessageAndProcess):
    (WebCore::WebCodecsAudioDecoder::virtualHasPendingActivity const):
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.h:
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.cpp:
    (WebCore::WebCodecsAudioEncoder::configure):
    (WebCore::WebCodecsAudioEncoder::encode):
    (WebCore::WebCodecsAudioEncoder::flush):
    (WebCore::WebCodecsAudioEncoder::closeEncoder):
    (WebCore::WebCodecsAudioEncoder::resetEncoder):
    (WebCore::WebCodecsAudioEncoder::queueControlMessageAndProcess):
    (WebCore::WebCodecsAudioEncoder::virtualHasPendingActivity const):
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.h:
    * Source/WebCore/Modules/webcodecs/WebCodecsControlMessage.h: Added.
    * Source/WebCore/Modules/webcodecs/WebCodecsFlushPromise.h: Added.
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
    (WebCore::WebCodecsVideoDecoder::configure):
    (WebCore::WebCodecsVideoDecoder::decode):
    (WebCore::WebCodecsVideoDecoder::flush):
    (WebCore::WebCodecsVideoDecoder::closeDecoder):
    (WebCore::WebCodecsVideoDecoder::resetDecoder):
    (WebCore::WebCodecsVideoDecoder::queueControlMessageAndProcess):
    (WebCore::WebCodecsVideoDecoder::virtualHasPendingActivity const):
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.h:
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:
    (WebCore::WebCodecsVideoEncoder::configure):
    (WebCore::WebCodecsVideoEncoder::encode):
    (WebCore::WebCodecsVideoEncoder::flush):
    (WebCore::WebCodecsVideoEncoder::closeEncoder):
    (WebCore::WebCodecsVideoEncoder::resetEncoder):
    (WebCore::WebCodecsVideoEncoder::queueControlMessageAndProcess):
    (WebCore::WebCodecsVideoEncoder::virtualHasPendingActivity const):
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:

    Canonical link: https://commits.webkit.org/282657@main

Canonical link: https://commits.webkit.org/282416.59@webkitglib/2.46


  Commit: 37b2a5aa62b68bc2b1036c73bf3fef35cdea6d78
      https://github.com/WebKit/WebKit/commit/37b2a5aa62b68bc2b1036c73bf3fef35cdea6d78
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    A LayoutTests/svg/masking/masker-mixing-repaint-rect-and-bounding-box-expected.html
    A LayoutTests/svg/masking/masker-mixing-repaint-rect-and-bounding-box.html
    M Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceGradient.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceMasker.cpp

  Log Message:
  -----------
  Cherry-pick 282651 at main (bdbc42414835). https://bugs.webkit.org/show_bug.cgi?id=277624

    REGRESSION (269500 at main Safari 17.5): Masked Curved Line Rendering Issue
    https://bugs.webkit.org/show_bug.cgi?id=277624
    rdar://133251058

    Reviewed by Cameron McCormack.

    SVG mask implementation is incorrectly mixing repaint rect and bounding box.
    We workaround the issue by passing RepaintRectCalculation::Accurate to enforce
    child renderers to compute bounding boxes. But the right implementation should
    distinguish repaint rect and bounding box as repaint rect is just used for
    invalidation.

    * LayoutTests/svg/masking/masker-mixing-repaint-rect-and-bounding-box-expected.html: Added.
    * LayoutTests/svg/masking/masker-mixing-repaint-rect-and-bounding-box.html: Added.
    * Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:
    (WebCore::RenderSVGResourceMasker::applyMask):
    * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceGradient.cpp:
    (WebCore::createMaskAndSwapContextForTextGradient):
    (WebCore::clipToTextMask):
    * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceMasker.cpp:
    (WebCore::LegacyRenderSVGResourceMasker::applyResource):

    Canonical link: https://commits.webkit.org/282651@main

Canonical link: https://commits.webkit.org/282416.60@webkitglib/2.46


  Commit: 41fc21bd8a8ef13a754d78334110f318897bc5b6
      https://github.com/WebKit/WebKit/commit/41fc21bd8a8ef13a754d78334110f318897bc5b6
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.h

  Log Message:
  -----------
  Cherry-pick 282538 at main (211071789f3b). https://bugs.webkit.org/show_bug.cgi?id=278435

    Unreviewed, suppress wrong threading assertion for InlineCacheHandler
    https://bugs.webkit.org/show_bug.cgi?id=278435
    rdar://134290611

    It gets destroyed in the GC end phase and it gets stale assertion about threading checks. But that assertion is wrong since
    GC end phase is ensuring that we are not running mutator, so we can safely and correctly derefing this InlineCacheHandler inside it.
    This is fixing this wrong assertion.

    * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
    (JSC::m_watchpoint):
    * Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:

    Canonical link: https://commits.webkit.org/282538@main

Canonical link: https://commits.webkit.org/282416.61@webkitglib/2.46


  Commit: 6a5390c0d8d184560bb1566cb65a668ea92f40c5
      https://github.com/WebKit/WebKit/commit/6a5390c0d8d184560bb1566cb65a668ea92f40c5
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M Source/WebCore/platform/graphics/RoundedRect.cpp
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/BackgroundPainter.h
    M Source/WebCore/rendering/RenderReplaced.cpp
    M Source/WebCore/rendering/RenderWidget.cpp

  Log Message:
  -----------
  Cherry-pick 282503 at main (7a9185505356). https://bugs.webkit.org/show_bug.cgi?id=278348

    Fix handling of non-renderable inner rounded corners
    https://bugs.webkit.org/show_bug.cgi?id=278348
    rdar://134291462

    Reviewed by Alan Baradlay.

    117367 at main added some code for non-renderable inner borders, but this is really a bug in RoundedRect::adjustRadii(),
    which used `int` for `maxRadiusWidth` and `maxRadiusHeight` which caused the adjustment to fail to make the rect
    renderable for some rects (tested by fast/css/background-clip-radius-values.html).

    After fixing that, I could not find any layout tests that entered `BackgroundPainter::clipRoundedInnerRect()`
    with a non-renderable rect, but add a clause to fix up the rect if necessary.

    * Source/WebCore/rendering/BackgroundPainter.cpp:
    (WebCore::BackgroundPainter::paintFillLayer const):
    (WebCore::BackgroundPainter::clipRoundedInnerRect):
    * Source/WebCore/rendering/BackgroundPainter.h:
    * Source/WebCore/rendering/RenderReplaced.cpp:
    (WebCore::RenderReplaced::paint):
    * Source/WebCore/rendering/RenderWidget.cpp:
    (WebCore::RenderWidget::paint):

    Canonical link: https://commits.webkit.org/282503@main

Canonical link: https://commits.webkit.org/282416.62@webkitglib/2.46


  Commit: e5b56d46bc20ab594399a7d3567348cc1a92a780
      https://github.com/WebKit/WebKit/commit/e5b56d46bc20ab594399a7d3567348cc1a92a780
  Author: Michael Catanzaro <mcatanzaro at redhat.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M Source/WebCore/platform/glib/UserAgentQuirks.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp

  Log Message:
  -----------
  Cherry-pick 283092 at main (5d23ecc3650c). https://bugs.webkit.org/show_bug.cgi?id=278723

    [GTK][WPE] Add user agent quirk for totale.rosettastone.com
    https://bugs.webkit.org/show_bug.cgi?id=278723

    Reviewed by Adrian Perez de Castro.

    * Source/WebCore/platform/glib/UserAgentQuirks.cpp:
    (WebCore::urlRequiresMacintoshPlatform):
    * Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
    (TestWebKitAPI::TEST(UserAgentTest, Quirks)):

    Canonical link: https://commits.webkit.org/283092@main

Canonical link: https://commits.webkit.org/282416.63@webkitglib/2.46


Compare: https://github.com/WebKit/WebKit/compare/7f0623979f53...e5b56d46bc20

To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list