[webkit-changes] [WebKit/WebKit] e42fb9: Versioning.

Ryosuke Niwa noreply at github.com
Thu Oct 26 14:41:28 PDT 2023


  Branch: refs/heads/safari-7614.4.4.0-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: e42fb9ec8a6627b8e905b6d9c5b2ca92f87de16f
      https://github.com/WebKit/WebKit/commit/e42fb9ec8a6627b8e905b6d9c5b2ca92f87de16f
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-20 (Tue, 20 Dec 2022)

  Changed paths:
    M Source/JavaScriptCore/Configurations/Version.xcconfig
    M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
    M Source/WebCore/Configurations/Version.xcconfig
    M Source/WebCore/PAL/Configurations/Version.xcconfig
    M Source/WebGPU/Configurations/Version.xcconfig
    M Source/WebInspectorUI/Configurations/Version.xcconfig
    M Source/WebKit/Configurations/Version.xcconfig
    M Source/WebKitLegacy/mac/Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7614.4.4.0.1

Canonical link: https://commits.webkit.org/252432.953@safari-7614.4.4.0-branch


  Commit: cb5c54728e248d855ed31af1e4c68bb5a6bd6249
      https://github.com/WebKit/WebKit/commit/cb5c54728e248d855ed31af1e4c68bb5a6bd6249
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2022-12-20 (Tue, 20 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M Tools/Scripts/generate-gpup-webgl

  Log Message:
  -----------
  Cherry-pick 5192197861cf. rdar://problem/100252324

    REGRESSION (iOS 16): WebGL 2 crashing on glReadPixels
    https://bugs.webkit.org/show_bug.cgi?id=245476
    rdar://problem/100252324

    Reviewed by Alex Christensen.

    ReadPixels is currently a method that sends the client
    passed data buffer to GPUP, reads the pixels into that
    and passes the data back to WP.
    Conceptually message of form ReadPixels(uint8_t* data) -> (uint8_t* data)

    Before:
    IPC encoding of memory arrays for calls like ReadPixels
    would work as follows:
     - If the array fits to the stream connection command buffer,
       copy the array there
     - Alternatively downgrade the message to out-of-stream message.
       - Copy the array to the IPC::Encoder message body buffer.
       - Pass the message body as Mach message memory mapping.

    IPC decoding of memory arrays for calls like ReadPixels
    would work as follows:
     - Allocate temp Vector for the data
     - Copy the data from stream command buffer / Mach message memory
       mapping into the temp buffer
     - Call ReadPixels
     - Copy the temp Vector to IPC::Encoder message body buffer
       similar to the encoding phase, and send it back to WP.

    This would have two problems:
     - Extensive copying is slow for very big buffers
     - The temp Vector and Mach message buffers via IPC encoding
       contribute to GPUP footprint.
       - The call IPC encoding buffer is not explicitly attributed to
         the caller. It's unclear to which process this belongs, likely
         this contributes to GPUP footprint.
       - The temp Vector is not attributed to the caller, contributing
         to GPUP footprint.
       - The reply IPC encoding buffer is not attributed to the caller,
         contributing to the GPUP footprint.
       - The ownership of the reply IPC encoding buffer, when passed as
         Mach message memory, is unclear. Likly this contributes to
         GPUP footprint. (Same as the encoding part).

    After:
    If the read pixels buffer is large, copy it to a newly allocated
    shared memory buffer and use that to read the pixels.
    Add a new IPC message variant for passing the shared memory area.

    * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
    (WebKit::RemoteGraphicsContextGL::readnPixels2):
    * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
    * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
    (WebKit::RemoteGraphicsContextGLProxy::readnPixels):
    (WebKit::RemoteGraphicsContextGLProxy::readnPixelsSharedMemory):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
    * Tools/Scripts/generate-gpup-webgl:

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

Canonical link: https://commits.webkit.org/252432.954@safari-7614.4.4.0-branch


  Commit: 206fedd3cfbcdd349ed8c3407e8dc74fbf8a8027
      https://github.com/WebKit/WebKit/commit/206fedd3cfbcdd349ed8c3407e8dc74fbf8a8027
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-20 (Tue, 20 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp

  Log Message:
  -----------
  Apply build fix. rdar://problem/100252324

    FAILURE /System/Volumes/Data/otmp/od.luxon/lw.luxon/sandbox-0/WebCore/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:473:68: error: no member named 'size' in 'GCGLSpan<GCGLvoid>'

Canonical link: https://commits.webkit.org/252432.955@safari-7614.4.4.0-branch


  Commit: 14e1d07d5d896ce890567cf38c4c0bd63edad9a5
      https://github.com/WebKit/WebKit/commit/14e1d07d5d896ce890567cf38c4c0bd63edad9a5
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp

  Log Message:
  -----------
  Revert 206fedd3cfb. rdar://problem/100252324

This reverts commit 206fedd3cfbcdd349ed8c3407e8dc74fbf8a8027.

Canonical link: https://commits.webkit.org/252432.956@safari-7614.4.4.0-branch


  Commit: a084118a465cdb7a991828cfea017a38ed64816a
      https://github.com/WebKit/WebKit/commit/a084118a465cdb7a991828cfea017a38ed64816a
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M Tools/Scripts/generate-gpup-webgl

  Log Message:
  -----------
  Revert 5192197861cf. rdar://problem/100252324

This reverts commit cb5c54728e248d855ed31af1e4c68bb5a6bd6249.

Canonical link: https://commits.webkit.org/252432.957@safari-7614.4.4.0-branch


  Commit: a2b8a5ff3ddc3117c8b520d2a3b2370ba2230b57
      https://github.com/WebKit/WebKit/commit/a2b8a5ff3ddc3117c8b520d2a3b2370ba2230b57
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M Tools/Scripts/generate-gpup-webgl

  Log Message:
  -----------
  Cherry-pick 5192197861cf. rdar://problem/100252324

This reverts commit a084118a465cdb7a991828cfea017a38ed64816a.

Canonical link: https://commits.webkit.org/252432.958@safari-7614.4.4.0-branch


  Commit: 714f527f4063087db73ea7bc3aaf3377dbf4fe0a
      https://github.com/WebKit/WebKit/commit/714f527f4063087db73ea7bc3aaf3377dbf4fe0a
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp

  Log Message:
  -----------
  Apply patch. rdar://problem/100252324

    Fix build on branch after 5192197861cf.

Canonical link: https://commits.webkit.org/252432.959@safari-7614.4.4.0-branch


  Commit: 93b0d387547a9b96c576b03dddc33b06628b1784
      https://github.com/WebKit/WebKit/commit/93b0d387547a9b96c576b03dddc33b06628b1784
  Author: Alan Coon <alancoon at apple.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp

  Log Message:
  -----------
  Apply build fix. rdar://problem/100252324

    Additional fix after 5192197861cf.

Canonical link: https://commits.webkit.org/252432.960@safari-7614.4.4.0-branch


  Commit: 50e64498ceb76c9e9ca0e07b1f7a3ab14d762298
      https://github.com/WebKit/WebKit/commit/50e64498ceb76c9e9ca0e07b1f7a3ab14d762298
  Author: Alan Coon <alancoon at apple.com>
  Date:   2023-01-03 (Tue, 03 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/Configurations/Version.xcconfig
    M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
    M Source/WebCore/Configurations/Version.xcconfig
    M Source/WebCore/PAL/Configurations/Version.xcconfig
    M Source/WebGPU/Configurations/Version.xcconfig
    M Source/WebInspectorUI/Configurations/Version.xcconfig
    M Source/WebKit/Configurations/Version.xcconfig
    M Source/WebKitLegacy/mac/Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7614.4.4.0.2

Canonical link: https://commits.webkit.org/252432.961@safari-7614.4.4.0-branch


  Commit: 2ef5aae78a5f54fc0f695c953116259aeceb85d7
      https://github.com/WebKit/WebKit/commit/2ef5aae78a5f54fc0f695c953116259aeceb85d7
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-01-03 (Tue, 03 Jan 2023)

  Changed paths:
    A LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe-expected.txt
    A LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe.html
    A LayoutTests/http/tests/contentfiltering/resources/lots-of-text.html
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 5d11f0377c18. rdar://problem/103247851

    REGRESSION (248723 at main): Videos on bbc.co.uk fail to load when content filtering is enabled
    https://bugs.webkit.org/show_bug.cgi?id=249811
    rdar://103247851

    Reviewed by Brent Fulgham and Alex Christensen.

    On articles on bbc.co.uk, video elements are embedded inside subframes, and are only interactive
    once the containing subframe has finished loading (i.e. dispatched the "load" event). In the case
    where:

    1.  Content filtering is enabled, and also happens in the network process via the
        `CONTENT_FILTERING_IN_NETWORKING_PROCESS` codepath new in iOS 16/macOS Ventura.

    2.  The subframe is loaded from a disk cache entry (as opposed to over the network, or in memory
        cache).

    ...we end up never dispatching the load event on the subframe, due to the fact that the
    corresponding `WebCore::SubresourceLoader` driving the subframe load never gets notified that
    loading finished. This is because, in following code within the network process (in the codepath
    marked below), we exit early after delivering the cached data to the content filter, before either
    sending `WebResourceLoader::DidReceiveResource` or `WebResourceLoader::DidFinishResourceLoad` (the
    latter of which we use in the case where we don't already have a shareable resource handle). To fix
    this, we simply pull the logic to dispatch `WebResourceLoader::DidFinishResourceLoad` out into a
    separate callback, and invoke it from both places.

    ```
        #if ENABLE(SHAREABLE_RESOURCE)
            if (!entry->shareableResourceHandle().isNull()) {
        #if ENABLE(CONTENT_FILTERING_IN_NETWORKING_PROCESS)
                if (m_contentFilter && !m_contentFilter->continueAfterDataReceived(entry->buffer()->makeContiguous(), entry->buffer()->size())) {
                    m_contentFilter->continueAfterNotifyFinished(m_parameters.request.url());
                    m_contentFilter->stopFilteringMainResource();               // <-------
                    return;
                }
        #endif
                send(Messages::WebResourceLoader::DidReceiveResource(entry->shareableResourceHandle()));
                return;
            }
        #endif
    ```

    Note that we prefer dispatching `DidFinishResourceLoad` over `DidReceiveResource` below (which we
    would normally use in this shareable resource handle codepath), since the resource loader in the web
    process would already have received the data when content filtering is enabled, so sending the
    entire cached resource handle again is redundant.

    Test: http/tests/contentfiltering/load-event-in-allowed-subframe.html

    * LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe-expected.txt: Added.
    * LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe.html: Added.
    * LayoutTests/http/tests/contentfiltering/resources/lots-of-text.html: Added.

    Add a new test resource that consists of an HTML page that contains a large amount of text. This
    ensures that we'll attempt to store it in disk cache, which is a necessary part of reproducing this
    bug.

    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::sendResultForCacheEntry):

    Dispatch `WebResourceLoader::DidFinishResourceLoad` in both content filtering codepaths when
    `CONTENT_FILTERING_IN_NETWORKING_PROCESS` is enabled.

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

Canonical link: https://commits.webkit.org/252432.962@safari-7614.4.4.0-branch


  Commit: 60146d1b9b54b6940ec9bca53c2e5f19aa5d3924
      https://github.com/WebKit/WebKit/commit/60146d1b9b54b6940ec9bca53c2e5f19aa5d3924
  Author: Alan Coon <alancoon at apple.com>
  Date:   2023-01-04 (Wed, 04 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/Configurations/Version.xcconfig
    M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
    M Source/WebCore/Configurations/Version.xcconfig
    M Source/WebCore/PAL/Configurations/Version.xcconfig
    M Source/WebGPU/Configurations/Version.xcconfig
    M Source/WebInspectorUI/Configurations/Version.xcconfig
    M Source/WebKit/Configurations/Version.xcconfig
    M Source/WebKitLegacy/mac/Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7614.4.4.0.3

Canonical link: https://commits.webkit.org/252432.963@safari-7614.4.4.0-branch


  Commit: bde5951526cde6d2a2c4f600a99669d2354c7168
      https://github.com/WebKit/WebKit/commit/bde5951526cde6d2a2c4f600a99669d2354c7168
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-01-04 (Wed, 04 Jan 2023)

  Changed paths:
    A LayoutTests/media/audio-session-category-unmute-mute-expected.txt
    A LayoutTests/media/audio-session-category-unmute-mute.html
    M LayoutTests/media/video-test.js
    M LayoutTests/platform/gtk/TestExpectations
    M Source/WebCore/platform/audio/PlatformMediaSession.cpp
    M Source/WebCore/platform/audio/PlatformMediaSession.h
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
    M Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp

  Log Message:
  -----------
  Cherry-pick 2ed67ffbd825. rdar://problem/103408312

    [iOS] Changing the mute state of autoplaying silent videos can interrupt system audio
    https://bugs.webkit.org/show_bug.cgi?id=249408
    rdar://103408312

    Reviewed by Eric Carlson.

    WebKit will attempt to leave the default AVAudioSession category in "ambient"
    when no audible playback exists. However, when an audible media element pauses,
    WebKit will leave the category in "media playback", which allows APIs like Now
    Playing to continue working. It does this by tracking, for each media element,
    that the element has played sometime since the last time WebKit received an
    interruption. The assumption is that elements which have previously played
    should not cause the category to drop to "none" when they pause.

    However, this logic gets confused when a previously silent media element
    (i.e., muted) pauses, then becomes not-silent (i.e., unmuted). The
    PlatformMediaSessionManager sees that the element is capable of producing
    audio, and has played since the last interruption, so sets the AVAudioSession
    category to "media playback". When that element is then played, AVFoundation
    will activate the AVAudioSession, which by virtue of being configured for
    "media playback", will interrupt other system audio.

    To resolve this, rather than tracking whether the element has "played since the
    last interruption", track whether the element has "played _audibly_ since the
    last interruption." Rename hasPlayedSinceLastInterruption() ->
    hasPlayedAudiblySinceLastInterruption() to clarify the new behavior.

    * LayoutTests/media/audio-session-category-unmute-mute-expected.txt: Added.
    * LayoutTests/media/audio-session-category-unmute-mute.html: Added.
    * Source/WebCore/platform/audio/PlatformMediaSession.cpp:
    (WebCore::PlatformMediaSession::setState):
    * Source/WebCore/platform/audio/PlatformMediaSession.h:
    (WebCore::PlatformMediaSession::hasPlayedAudiblySinceLastInterruption const):
    (WebCore::PlatformMediaSession::clearHasPlayedAudiblySinceLastInterruption):
    (WebCore::PlatformMediaSession::hasPlayedSinceLastInterruption const): Deleted.
    (WebCore::PlatformMediaSession::clearHasPlayedSinceLastInterruption): Deleted.
    * Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
    (WebCore::MediaSessionManagerCocoa::updateSessionState):
    (WebCore::MediaSessionManagerCocoa::beginInterruption):

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

Canonical link: https://commits.webkit.org/252432.964@safari-7614.4.4.0-branch


  Commit: d25016dd82de695207d0d596213d2d6cfa69f4c6
      https://github.com/WebKit/WebKit/commit/d25016dd82de695207d0d596213d2d6cfa69f4c6
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-01-04 (Wed, 04 Jan 2023)

  Changed paths:
    A LayoutTests/fast/forms/datalist/datalist-id-change-crash-expected.txt
    A LayoutTests/fast/forms/datalist/datalist-id-change-crash.html
    M Source/WebCore/html/HTMLInputElement.cpp

  Log Message:
  -----------
  Cherry-pick 3be45019e7fd. rdar://problem/103823004

    Crash in HTMLInputElement::dataListMayHaveChanged via ListAttributeTargetObserver::idTargetChanged
    https://bugs.webkit.org/show_bug.cgi?id=250039

    Reviewed by Wenson Hsieh, Geoffrey Garen and Aditya Keerthi.

    Merge https://commits.webkit.org/253773@main to avoid hitting this crash.

    * LayoutTests/fast/forms/datalist/datalist-id-change-crash-expected.txt: Added.
    * LayoutTests/fast/forms/datalist/datalist-id-change-crash.html: Added.
    * Source/WebCore/html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
    (WebCore::ListAttributeTargetObserver::ListAttributeTargetObserver):

    Canonical link: https://commits.webkit.org/252432.1015@safari-7614-branch

Canonical link: https://commits.webkit.org/252432.965@safari-7614.4.4.0-branch


Compare: https://github.com/WebKit/WebKit/compare/e42fb9ec8a66%5E...d25016dd82de


More information about the webkit-changes mailing list