[webkit-changes] [WebKit/WebKit] 10b1c1: Versioning.

MyahCobbs noreply at github.com
Mon Nov 27 16:24:10 PST 2023


  Branch: refs/heads/safari-7616.1.14.11-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: 10b1c1a40933e8b2dc73527c5056f3918a071963
      https://github.com/WebKit/WebKit/commit/10b1c1a40933e8b2dc73527c5056f3918a071963
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

Identifier: 262728.1070 at safari-7616.1.14.11-branch


  Commit: aa29b14404cd7244a710f6b95c44dfbbb4cf911f
      https://github.com/WebKit/WebKit/commit/aa29b14404cd7244a710f6b95c44dfbbb4cf911f
  Author: Eric Carlson <eric.carlson at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/mac/ScreenCaptureKitSPI.h

  Log Message:
  -----------
  Cherry-pick 9fd6c7e3607b. rdar://problem/109162122

    [macOS] Update ScreenCaptureKitSPI.h
    https://bugs.webkit.org/show_bug.cgi?id=256605
    rdar://109162122

    Reviewed by Jer Noble.

    * Source/WebCore/PAL/pal/spi/mac/ScreenCaptureKitSPI.h: Include new header.

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

Identifier: 263769.30 at safari-7616.1.14.11-branch


  Commit: c55f2b970a4d959422cfc39b7e44a72d4c5c3cae
      https://github.com/WebKit/WebKit/commit/c55f2b970a4d959422cfc39b7e44a72d4c5c3cae
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp
    M Source/WebCore/rendering/GridTrackSizingAlgorithm.h
    M Source/WebCore/rendering/RenderGrid.cpp

  Log Message:
  -----------
  Cherry-pick ff409be22993. rdar://problem/109170495

    [css-grid][masonry] Containing block for items in a masonry columns grid should be the grid's content box logical width
    https://bugs.webkit.org/show_bug.cgi?id=256611
    rdar://109170495

    Reviewed by Matt Woodrow.

    The masonry spec states, "The containing block for a grid item is
    formed by its grid area in the grid axis and the grid container’s
    content-box in the masonry axis."

    This means that for a grid that has masonry columns specified, the
    masonry axis will be in the logical width direction of the grid. The
    items should have their containing block set to the content box logical
    box of the grid.

    We can modify GridTrackSizingAlgorithm::gridAreaBreadthForChild to
    return this value when the grid is a masonry columns grid since normally
    the grid area would be used as the containing block in non-masonry
    grids. This allows the rest of the code to use the grid area sizes of
    the containing block in both masonry and non-masonry scenarios.
    Previously, this function would have attempted to compute the
    value by iterating over the tracks in the specified direction, but there
    are no tracks in the masonry direction so we use the logic specified by
    the masonry spec instead.

    However, in order for this change to work properly we had to make a
    change in RenderGrid::layoutMasonry by removing code that was
    incorrectly overriding the logical width of the grid. The previous code
    was attempting to set the logical width of the grid to the masonry
    content size when the grid had masonry columns specified and an auto
    logical width. There were 2 main issues with this piece of code:
    1.) m_masonryLayout.gridContentSize() will always return 0 since we
    actually haven't performed masonry layout at this point
    2.) The grid shouldn't be overriding its logical width like this anyways
    and it should instead be set by sized by the rules of the formatting
    context it is participating in (e.g. block or inline layout).

    By removing this code we can get the actual width of the grid later on
    when we call m_renderGrid->contentLogicalWidth() rather than the
    incorrect 0 value that it was being set to.

    The following example highlights the changes that were made.
    <style>
    grid {
        display: grid;
        grid-template-columns:masonry;
        grid-template-rows: auto;
    }
    </style>
    <grid>
        <svg width="100" height="100" viewBox="0 0 1 1" style="width: 100%; max-width: 100px; background: green;"></svg>
    </grid>

    By removing the extra code in RenderGrid::layoutMasonry, the grid will
    get sizes as a block level box in the block formatting context it is
    participating in, giving it a logical width that takes up its available
    space. The svg's containing block logical width is set to its value so
    it is able to resolve its percentage width to the correct value whereas
    before the containing block logical width would have been 0px.

    https://drafts.csswg.org/css-grid-3/#containing-block

    * LayoutTests/TestExpectations:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width.html: Added.
    * LayoutTests/platform/glib/TestExpectations:
    * Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:
    (WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
    * Source/WebCore/rendering/GridTrackSizingAlgorithm.h:
    * Source/WebCore/rendering/RenderGrid.cpp:
    (WebCore::RenderGrid::layoutMasonry):

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

Identifier: 263769.31 at safari-7616.1.14.11-branch


  Commit: 4f0beb88f91788251d4573d0b04831e322cc5cf4
      https://github.com/WebKit/WebKit/commit/4f0beb88f91788251d4573d0b04831e322cc5cf4
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/WebCore/workers/service/server/SWRegistrationDatabase.cpp
    M Source/WebCore/workers/service/server/SWRegistrationDatabase.h
    M Source/WebKit/NetworkProcess/storage/ServiceWorkerStorageManager.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm

  Log Message:
  -----------
  Cherry-pick abde730eecbb. rdar://problem/108841865

    ServiceWorkerStorageManager should only delete its own files when clearing registrations
    https://bugs.webkit.org/show_bug.cgi?id=256725
    rdar://108841865

    Reviewed by Chris Dumez.

    Existing SPI allows clients to set the same path for different data types, so directory of ServiceWorkerStorageManager
    might contain files for other types. Therefore, ServiceWorkerStorageManager should not remove the directory when
    clearing registrations.

    Test: WKWebsiteDataStoreConfiguration.SameCustomPathForDifferentTypes

    * Source/WebCore/workers/service/server/SWRegistrationDatabase.cpp:
    (WebCore::SWRegistrationDatabase::~SWRegistrationDatabase):
    (WebCore::SWRegistrationDatabase::close):
    (WebCore::SWRegistrationDatabase::clearAllRegistrations):
    * Source/WebCore/workers/service/server/SWRegistrationDatabase.h:
    * Source/WebKit/NetworkProcess/storage/ServiceWorkerStorageManager.cpp:
    (WebKit::ServiceWorkerStorageManager::clearAllRegistrations):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
    (TEST):

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

Identifier: 263769.32 at safari-7616.1.14.11-branch


  Commit: 66ca569e11ec1995f88958216c6b0492db1fffd8
      https://github.com/WebKit/WebKit/commit/66ca569e11ec1995f88958216c6b0492db1fffd8
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/html/CanvasBase.cpp
    M Source/WebCore/html/CanvasBase.h
    A Source/WebCore/html/CanvasNoiseInjection.cpp
    A Source/WebCore/html/CanvasNoiseInjection.h
    M Source/WebCore/html/HTMLCanvasElement.cpp

  Log Message:
  -----------
  Cherry-pick 9084db41d592. rdar://problem/107371244

    Refactor Canvas noise injection logic and improve support for gradients in post-processed ImageData
    https://bugs.webkit.org/show_bug.cgi?id=255993
    rdar://107371244

    Reviewed by Kimmo Kinnunen.

    Gradients present an interesting problem when post-processing canvas ImageData
    because tweaking colors result in significant visual anomalies. This change
    introduces some naive gradient detection by looking at all of the immediate
    neighbors of a pixel. We decide that a pixel is within a gradient if the
    current color is between its opposing adjacent colors (e.g., above and below,
    left and right, etc). If a color is decided to be within a gradient, then we
    set those adjacent colors as bounds within which we can tweak the current
    color.

    In addition, within this change, we move the noise injection logic into its own
    class, it removes the dependency on supplied colors for post-processing, and it
    reduces the magnitude of noise from ~5% to ~1%.

    * Source/WebCore/Headers.cmake:
    * Source/WebCore/Sources.txt:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/html/CanvasBase.cpp:
    (WebCore::CanvasBase::makeRenderingResultsAvailable):
    (WebCore::CanvasBase::didDraw): We clip the rect before passing it into
    CanvasNoiseInjection, and if the rect is std::nullopt then we pass in the
    entire canvas.

    (WebCore::CanvasBase::postProcessPixelBufferResults const):
    (WebCore::CanvasBase::postProcessDirtyCanvasBuffer const): Deleted.
    * Source/WebCore/html/CanvasBase.h:
    * Source/WebCore/html/CanvasNoiseInjection.cpp: Added.
    (WebCore::CanvasNoiseInjection::updateDirtyRect):
    (WebCore::isIndexInBounds):
    (WebCore::setTightnessBounds):
    (WebCore::getGradientNeighbors):
    (WebCore::CanvasNoiseInjection::postProcessDirtyCanvasBuffer):
    (WebCore::CanvasNoiseInjection::postProcessPixelBufferResults const):
    * Source/WebCore/html/CanvasNoiseInjection.h: Added.
    * Source/WebCore/html/HTMLCanvasElement.cpp:
    (WebCore::HTMLCanvasElement::getImageData):

    Originally-landed-as: 264019 at main (bfc25dc6ca1c). rdar://107371244

Identifier: 263769.33 at safari-7616.1.14.11-branch


  Commit: 4031e0e6617a18cfaf6c2c9da5d1825033e2ba5a
      https://github.com/WebKit/WebKit/commit/4031e0e6617a18cfaf6c2c9da5d1825033e2ba5a
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    R LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width-expected.html
    R LayoutTests/imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-columns-item-containing-block-is-grid-content-width.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp
    M Source/WebCore/rendering/GridTrackSizingAlgorithm.h
    M Source/WebCore/rendering/RenderGrid.cpp

  Log Message:
  -----------
  Revert ff409be22993. rdar://problem/109170495

Identifier: 262728.1075 at safari-7616.1.14.11-branch


  Commit: 8267ba90289c35ac4ca8e6e921ac72f7353716b8
      https://github.com/WebKit/WebKit/commit/8267ba90289c35ac4ca8e6e921ac72f7353716b8
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/WebKit/Shared/cg/ShareableBitmapCG.cpp

  Log Message:
  -----------
  Cherry-pick 58702859275c. rdar://problem/108072383

    [GPU Process] (REGRESSION 262607 at main): Copy pixels of CGImage only if it is not a sub-image
    https://bugs.webkit.org/show_bug.cgi?id=255677
    rdar://108072383

    Reviewed by Simon Fraser.

    In ShareableBitmap::createFromImagePixels(), CGImage and its CGDataProvider
    may disagree about how many bytes are in the pixels buffers. CGImage is most
    likely a sub-image of another CGImage which inherits its meta data but not
    the full pixels buffer.

    In this case we should fallback to ShareableBitmap::createFromImageDraw().
    Ortherwise  ShareableBitmapConfiguration will falsely describe the data in the
    SharedMemory.

    * Source/WebKit/Shared/cg/ShareableBitmapCG.cpp:
    (WebKit::ShareableBitmap::createFromImagePixels):

    Canonical link: https://commits.webkit.org/264021@main
Identifier: 263319.485 at safari-7616.1.14.11-branch


  Commit: 0df13e89ca39aa30fd0ea76b3267665a97edb74b
      https://github.com/WebKit/WebKit/commit/0df13e89ca39aa30fd0ea76b3267665a97edb74b
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

Identifier: 263319.486 at safari-7616.1.14.11-branch


  Commit: 064508f94c287c4cb583fef1d1adb460c483e80f
      https://github.com/WebKit/WebKit/commit/064508f94c287c4cb583fef1d1adb460c483e80f
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WTF/wtf/NumberOfCores.cpp
    M Source/WTF/wtf/NumberOfCores.h
    M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
    M Source/WebKit/Shared/WebPreferencesDefaultValues.h
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm

  Log Message:
  -----------
  Cherry-pick 52e75d6babbd. rdar://problem/109234446

    [GPU Process] Disable GPU Process on 2-core macOS devices
    https://bugs.webkit.org/show_bug.cgi?id=256681
    rdar://109234446

    Reviewed by Chris Dumez.

    Disable UI-side compositing and GPU Process by default on 2-core macOS devices, for performance reasons.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WTF/wtf/NumberOfCores.cpp:
    (WTF::numberOfPhysicalProcessorCores): New function to get the number of physical cores. Currently
    only has an implementation that works for Darwin OSes.
    * Source/WTF/wtf/NumberOfCores.h:
    * Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:
    (WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
    * Source/WebKit/Shared/WebPreferencesDefaultValues.h:
    * Source/WebKit/UIProcess/mac/WebViewImpl.mm:
    (WebKit::WebViewImpl::WebViewImpl):

    Canonical link: https://commits.webkit.org/264056@main
Identifier: 263319.487 at safari-7616.1.14.11-branch


  Commit: b68e81404888c481d41589694ae8f72fe8385915
      https://github.com/WebKit/WebKit/commit/b68e81404888c481d41589694ae8f72fe8385915
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.3

Canonical link: https://commits.webkit.org/263769.38@safari-7616.1.14.11-branch


  Commit: 02f15ad8f7a0aa2d7c2eb5ece83bbfae00235205
      https://github.com/WebKit/WebKit/commit/02f15ad8f7a0aa2d7c2eb5ece83bbfae00235205
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-17 (Wed, 17 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

Identifier: 263319.489 at safari-7616.1.14.11-branch


  Commit: e3a263997a2b1e3c23706d2c97f15cc0738c8485
      https://github.com/WebKit/WebKit/commit/e3a263997a2b1e3c23706d2c97f15cc0738c8485
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-05-17 (Wed, 17 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm

  Log Message:
  -----------
  Cherry-pick b85d783df356. rdar://problem/109210266

    Add a null check for the current process' name when launching a new process on macOS
    https://bugs.webkit.org/show_bug.cgi?id=256853
    rdar://109210266

    Reviewed by Chris Dumez.

    -[NSRunningApplication localizedName] is nullable. This adds a null
    check and falls back to the -[NSProcessInfo processName] if it is null
    on macOS.

    * Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
    (WebKit::ProcessLauncher::launchProcess):

    Canonical link: https://commits.webkit.org/264128@main
Identifier: 263319.490 at safari-7616.1.14.11-branch


  Commit: 2f665bfc8f3d6a55bdbd93d2c61bbb3f0b9e9fbf
      https://github.com/WebKit/WebKit/commit/2f665bfc8f3d6a55bdbd93d2c61bbb3f0b9e9fbf
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-18 (Thu, 18 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

Identifier: 263319.491 at safari-7616.1.14.11-branch


  Commit: f4a1681d87d4ea2235ae9f7a1d90964c5d514ca2
      https://github.com/WebKit/WebKit/commit/f4a1681d87d4ea2235ae9f7a1d90964c5d514ca2
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

Identifier: 263319.492 at safari-7616.1.14.11-branch


  Commit: 39a6a3c948597d22ef86d75e6053c30e4a347d66
      https://github.com/WebKit/WebKit/commit/39a6a3c948597d22ef86d75e6053c30e4a347d66
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    A LayoutTests/fast/inline/range-replace-partial-layout-invalidation-expected.html
    A LayoutTests/fast/inline/range-replace-partial-layout-invalidation.html
    M Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp

  Log Message:
  -----------
  Cherry-pick 8922f7c4d332. rdar://problem/109538333

    (REGRESSION 262148 at main) No repaint when deleting text, possibly only when the deleted text spans more than one line
    https://bugs.webkit.org/show_bug.cgi?id=257043
    <rdar://109538333>

    Reviewed by Antti Koivisto.

    Normally while editing inline content in a content-editable container e.g

      "This is some long
       long long long
       long text content"

      and select/delete "long long text" (spanning over line#2 and #3)

    What happens is RenderText receives a content mutation event pointing to the _beginning_ of "long long text".
    As a result we damage line #2 and run a partial layout staring from line#2 until after we see no layout change anymore or we hit content end.

    However some JS based editors call innerHTML instead to mimic editing steps turning the above example to a "range replace"
    type of mutation where the entire text content is getting replaced with the "new", shortened content.

    In such cases, instead of receiving the position of the actual damage, we end up with the offset value of 0
    since the entire content is being replaced (even though it's just a slight change in the text content)
    Now we damage line#0 and start running layout from the very first line until we see no layout change...which is the second line
    since the actual damage is on the third line.

    Since IFC does not support such mutations yet, in this patch we disable range based bailout which means while
    we still run partial inline layout, we always go all the way to the bottom of the content.

    /fast/inline/range-replace-partial-layout-invalidation-expected.html: Added.
    * LayoutTests/fast/inline/range-replace-partial-layout-invalidation.html: Added.
    * Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
    (WebCore::Layout::InlineInvalidation::textWillBeRemoved):

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

Identifier: 263769.43 at safari-7616.1.14.11-branch


  Commit: 07d7aa3b5f2518af55881b4645d254e894195383
      https://github.com/WebKit/WebKit/commit/07d7aa3b5f2518af55881b4645d254e894195383
  Author: Brady Eidson <beidson at apple.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick fbe202e644f1. rdar://problem/108176822

    WebKitSwiftOverlay should (once again) include a WebKitAdditions overlay
    https://bugs.webkit.org/show_bug.cgi?id=257046
    rdar://109577606

    Reviewed by Andy Estes.

    Include WebKitAdditionsSwiftOverlay from a well known location.

    * Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj:

    Canonical link: https://commits.webkit.org/264278@main
Identifier: 263319.494 at safari-7616.1.14.11-branch


  Commit: 41ca1ef990f283afb0788cc642ac85d4fb6f3e13
      https://github.com/WebKit/WebKit/commit/41ca1ef990f283afb0788cc642ac85d4fb6f3e13
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Revert fbe202e644f1. rdar://problem/108176822

Identifier: 263319.495 at safari-7616.1.14.11-branch


  Commit: 01cd2d2c3f8bcafaeea6b71ba16053ff5625c5bf
      https://github.com/WebKit/WebKit/commit/01cd2d2c3f8bcafaeea6b71ba16053ff5625c5bf
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-05-20 (Sat, 20 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.7

Identifier: 263322.493 at safari-7616.1.14.11-branch


  Commit: 05d675f07897795c58d6c8c7fdeb932e58d2a3d1
      https://github.com/WebKit/WebKit/commit/05d675f07897795c58d6c8c7fdeb932e58d2a3d1
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/RenderingResource.h
    M Source/WebCore/platform/graphics/filters/Filter.cpp
    M Source/WebCore/platform/graphics/filters/Filter.h
    M Source/WebCore/platform/graphics/filters/FilterFunction.cpp
    M Source/WebCore/platform/graphics/filters/FilterFunction.h
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp

  Log Message:
  -----------
  Cherry-pick 9a8998b85a0a. rdar://problem/109673458

    [GPU Process][Filters] Make FilterFunction a RenderingResource
    https://bugs.webkit.org/show_bug.cgi?id=256318
    rdar://108900138

    Reviewed by Simon Fraser.

    This will allow caching the SVGFilter in GPU Process and will allow referencing
    it in DisplayList items by its RenderingResourceIdentifier.

    To do that, FilterFunction has to be a RenderingResource. This will overcome a
    layering violation because we should not reference SVGFilter in platform sources.
    Also this will overcome a ref-counting problem since FilterFunction and
    RenderingResource are both RefCounted classes.

    * Source/WebCore/platform/graphics/RenderingResource.h:
    (WebCore::RenderingResource::renderingResourceIdentifierIfExists const):
    * Source/WebCore/platform/graphics/filters/Filter.cpp:
    (WebCore::Filter::Filter):
    * Source/WebCore/platform/graphics/filters/Filter.h:
    (WebCore::Filter::Filter):
    * Source/WebCore/platform/graphics/filters/FilterFunction.cpp:
    (WebCore::FilterFunction::FilterFunction):
    * Source/WebCore/platform/graphics/filters/FilterFunction.h:
    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::SVGFilter::create):
    (WebCore::SVGFilter::SVGFilter):
    * Source/WebCore/svg/graphics/filters/SVGFilter.h:
    * Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
    (IPC::ArgumentCoder<SVGFilter>::encode):
    (IPC::ArgumentCoder<SVGFilter>::decode):

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

Identifier: 263769.47 at safari-7616.1.14.11-branch


  Commit: f6d7fdfeb933f634021f4b55f5aec06c23b935cd
      https://github.com/WebKit/WebKit/commit/f6d7fdfeb933f634021f4b55f5aec06c23b935cd
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/DecomposedGlyphs.h
    M Source/WebCore/platform/graphics/Gradient.h
    M Source/WebCore/platform/graphics/NativeImage.h
    M Source/WebCore/platform/graphics/RenderingResource.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h
    M Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h
    M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h

  Log Message:
  -----------
  Cherry-pick d67761f1060a. rdar://problem/109673458

    [GPU Process] Cache all RenderingResources as one type
    https://bugs.webkit.org/show_bug.cgi?id=256408
    <rdar://problem/108977457>

    Reviewed by Simon Fraser.

    This makes adding a new RenderingResource less pervasive. RenderingResources are
    mainly cached to control their lifetime between WebProcess and GPUProcess. Their
    concrete types are rarely used especially in WebProcess. So replace the pointers
    to NativeImage, DecomposedGlyphs and Gradient to just a pointer to RenderingResource.
    Add traits to these classes so RenderingResource can be casted to any of them.

    * Source/WebCore/platform/graphics/DecomposedGlyphs.h:
    (isType):
    * Source/WebCore/platform/graphics/Gradient.h:
    (isType):
    * Source/WebCore/platform/graphics/NativeImage.h:
    (isType):
    * Source/WebCore/platform/graphics/RenderingResource.h:
    (WebCore::RenderingResource::isNativeImage const):
    (WebCore::RenderingResource::isGradient const):
    (WebCore::RenderingResource::isDecomposedGlyphs const):
    * Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:
    (WebCore::DisplayList::LocalResourceHeap::add):
    * Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:
    (WebKit::QualifiedResourceHeap::add):
    (WebKit::QualifiedResourceHeap::getNativeImage const):
    (WebKit::QualifiedResourceHeap::getDecomposedGlyphs const):
    (WebKit::QualifiedResourceHeap::getGradient const):
    (WebKit::QualifiedResourceHeap::removeRenderingResource):
    (WebKit::QualifiedResourceHeap::releaseAllResources):
    (WebKit::QualifiedResourceHeap::releaseAllImageResources):
    (WebKit::QualifiedResourceHeap::checkInvariants const):
    (WebKit::QualifiedResourceHeap::removeNativeImage): Deleted.
    (WebKit::QualifiedResourceHeap::removeDecomposedGlyphs): Deleted.
    (WebKit::QualifiedResourceHeap::removeGradient): Deleted.
    * Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:
    (WebKit::RemoteResourceCache::releaseRenderingResource):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
    (WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
    (WebKit::RemoteResourceCacheProxy::clear):
    (WebKit::RemoteResourceCacheProxy::imagesCount const):
    (WebKit::RemoteResourceCacheProxy::cachedNativeImage const):
    (WebKit::RemoteResourceCacheProxy::recordDecomposedGlyphsUse):
    (WebKit::RemoteResourceCacheProxy::recordGradientUse):
    (WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
    (WebKit::RemoteResourceCacheProxy::releaseRenderingResource):
    (WebKit::RemoteResourceCacheProxy::clearRenderingResourceMap):
    (WebKit::RemoteResourceCacheProxy::clearNativeImageMap):
    (WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
    (WebKit::RemoteResourceCacheProxy::releaseMemory):
    (WebKit::RemoteResourceCacheProxy::clearDecomposedGlyphsMap): Deleted.
    (WebKit::RemoteResourceCacheProxy::clearGradientMap): Deleted.
    * Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
    (WebKit::RemoteResourceCacheProxy::imagesCount const): Deleted.

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

Identifier: 263769.48 at safari-7616.1.14.11-branch


  Commit: 4a63d837404a73d384e020369685bff9b160db98
      https://github.com/WebKit/WebKit/commit/4a63d837404a73d384e020369685bff9b160db98
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebCore/svg/graphics/filters/SVGFilterExpression.h
    R Source/WebCore/svg/graphics/filters/SVGFilterExpressionReference.h
    M Source/WebCore/svg/graphics/filters/SVGFilterGraph.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Cherry-pick 56cc7591e5e3. rdar://problem/109673458

    [GPU Process][Filters] Make SVGFilter own a vector of unique FilterEffects
    https://bugs.webkit.org/show_bug.cgi?id=256333
    rdar://109060794

    Reviewed by Simon Fraser.

    Currently, SVGFilterExpressionTerm holds a Ref<FilterEffect> which may be referenced
    more than once by multiple SVGFilterExpressionTerms.

    We need make SVGFilter own a Vector of unique FilterEffects. SVGFilterExpressionTerm
    will hold an index to this Vector. This will allow building an SVGFilterTransaction
    which is a set of altered unique FilterEffects identified by the index in the vector
    of unique FilterEffects of SVGFilter.

    * Source/WebCore/Headers.cmake:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::SVGFilter::create):
    (WebCore::SVGFilter::SVGFilter):
    (WebCore::SVGFilter::buildExpression):
    (WebCore::SVGFilter::supportedFilterRenderingModes const):
    (WebCore::SVGFilter::effectsOfType const):
    (WebCore::SVGFilter::apply):
    (WebCore::SVGFilter::createFilterStyles const):
    (WebCore::SVGFilter::externalRepresentation const):
    * Source/WebCore/svg/graphics/filters/SVGFilter.h:
    * Source/WebCore/svg/graphics/filters/SVGFilterExpression.h:
    * Source/WebCore/svg/graphics/filters/SVGFilterExpressionReference.h: Removed.
    * Source/WebCore/svg/graphics/filters/SVGFilterGraph.h:
    (WebCore::SVGFilterGraph::SVGFilterGraph):
    (WebCore::SVGFilterGraph::nodes const):
    * Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
    (IPC::ArgumentCoder<SVGFilter>::encode):
    (IPC::ArgumentCoder<SVGFilter>::decode):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

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

Identifier: 263769.49 at safari-7616.1.14.11-branch


  Commit: 48a02f5386b1ff4c7a0451e64fe9d1657294405d
      https://github.com/WebKit/WebKit/commit/48a02f5386b1ff4c7a0451e64fe9d1657294405d
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/filters/FilterResults.h
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h

  Log Message:
  -----------
  Cherry-pick b860110f0ae4. rdar://problem/109673458

    [GPU Process][Filters] Top level SVGFilter should own its FilterResults
    https://bugs.webkit.org/show_bug.cgi?id=256535
    rdar://109107572

    Reviewed by Simon Fraser.

    This allows caching the FilterResults along with the SVGFilter in RemoteResourceCache.

    SVGFilter::ensureResults() returns FilterResults& but it takes FilterResultsCreator.
    FilterResultsCreator returns a std::unique_ptr<FilterResults> which SVGFilter
    will maintain.

    * Source/WebCore/platform/graphics/filters/FilterResults.h:
    * Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
    (WebCore::RenderSVGResourceFilter::applyResource):
    (WebCore::RenderSVGResourceFilter::markFilterForRepaint):
    * Source/WebCore/rendering/svg/RenderSVGResourceFilter.h:
    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::SVGFilter::ensureResults):
    (WebCore::SVGFilter::clearEffectResult):
    * Source/WebCore/svg/graphics/filters/SVGFilter.h:

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

Identifier: 263769.50 at safari-7616.1.14.11-branch


  Commit: 1cef389cb253bcf73669dc564f462898e00ab07c
      https://github.com/WebKit/WebKit/commit/1cef389cb253bcf73669dc564f462898e00ab07c
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/SourceImage.cpp
    M Source/WebCore/platform/graphics/SourceImage.h
    M Source/WebCore/platform/graphics/filters/DistantLightSource.cpp
    M Source/WebCore/platform/graphics/filters/DistantLightSource.h
    M Source/WebCore/platform/graphics/filters/FEBlend.cpp
    M Source/WebCore/platform/graphics/filters/FEBlend.h
    M Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp
    M Source/WebCore/platform/graphics/filters/FEColorMatrix.h
    M Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp
    M Source/WebCore/platform/graphics/filters/FEComponentTransfer.h
    M Source/WebCore/platform/graphics/filters/FEComposite.cpp
    M Source/WebCore/platform/graphics/filters/FEComposite.h
    M Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp
    M Source/WebCore/platform/graphics/filters/FEConvolveMatrix.h
    M Source/WebCore/platform/graphics/filters/FEDiffuseLighting.h
    M Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp
    M Source/WebCore/platform/graphics/filters/FEDisplacementMap.h
    M Source/WebCore/platform/graphics/filters/FEDropShadow.cpp
    M Source/WebCore/platform/graphics/filters/FEDropShadow.h
    M Source/WebCore/platform/graphics/filters/FEFlood.cpp
    M Source/WebCore/platform/graphics/filters/FEFlood.h
    M Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
    M Source/WebCore/platform/graphics/filters/FEGaussianBlur.h
    M Source/WebCore/platform/graphics/filters/FEImage.cpp
    M Source/WebCore/platform/graphics/filters/FEImage.h
    M Source/WebCore/platform/graphics/filters/FELighting.cpp
    M Source/WebCore/platform/graphics/filters/FELighting.h
    M Source/WebCore/platform/graphics/filters/FEMerge.cpp
    M Source/WebCore/platform/graphics/filters/FEMerge.h
    M Source/WebCore/platform/graphics/filters/FEMorphology.cpp
    M Source/WebCore/platform/graphics/filters/FEMorphology.h
    M Source/WebCore/platform/graphics/filters/FEOffset.cpp
    M Source/WebCore/platform/graphics/filters/FEOffset.h
    M Source/WebCore/platform/graphics/filters/FESpecularLighting.h
    M Source/WebCore/platform/graphics/filters/FETurbulence.cpp
    M Source/WebCore/platform/graphics/filters/FETurbulence.h
    M Source/WebCore/platform/graphics/filters/FilterEffect.cpp
    M Source/WebCore/platform/graphics/filters/FilterEffect.h
    M Source/WebCore/platform/graphics/filters/LightSource.h
    M Source/WebCore/platform/graphics/filters/PointLightSource.cpp
    M Source/WebCore/platform/graphics/filters/PointLightSource.h
    M Source/WebCore/platform/graphics/filters/SpotLightSource.cpp
    M Source/WebCore/platform/graphics/filters/SpotLightSource.h
    M Source/WebCore/svg/SVGPreserveAspectRatioValue.h

  Log Message:
  -----------
  Cherry-pick 5f6cc633dcd4. rdar://problem/109673458

    [GPU Process][Filters] Implement equality operator for FilterEffect
    https://bugs.webkit.org/show_bug.cgi?id=256759
    rdar://109303025

    Reviewed by Simon Fraser.

    The FilterEffect::operator==() will be virtual and will be overridden by all the
    superclasses. All the properties of the superclass and the properties of FilterEffect
    will be compared for equality.

    * Source/WebCore/platform/graphics/SourceImage.cpp:
    (WebCore::SourceImage::operator== const):
    * Source/WebCore/platform/graphics/SourceImage.h:
    * Source/WebCore/platform/graphics/filters/DistantLightSource.cpp:
    (WebCore::DistantLightSource::operator== const):
    * Source/WebCore/platform/graphics/filters/DistantLightSource.h:
    * Source/WebCore/platform/graphics/filters/FEBlend.cpp:
    (WebCore::FEBlend::operator== const):
    * Source/WebCore/platform/graphics/filters/FEBlend.h:
    * Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp:
    (WebCore::FEColorMatrix::operator== const):
    * Source/WebCore/platform/graphics/filters/FEColorMatrix.h:
    * Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp:
    (WebCore::FEComponentTransfer::operator== const):
    * Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:
    * Source/WebCore/platform/graphics/filters/FEComposite.cpp:
    (WebCore::FEComposite::operator== const):
    * Source/WebCore/platform/graphics/filters/FEComposite.h:
    * Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp:
    (WebCore::FEConvolveMatrix::operator== const):
    * Source/WebCore/platform/graphics/filters/FEConvolveMatrix.h:
    * Source/WebCore/platform/graphics/filters/FEDiffuseLighting.h:
    (WebCore::FEDiffuseLighting::operator== const):
    * Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp:
    (WebCore::FEDisplacementMap::operator== const):
    * Source/WebCore/platform/graphics/filters/FEDisplacementMap.h:
    * Source/WebCore/platform/graphics/filters/FEDropShadow.cpp:
    (WebCore::FEDropShadow::operator== const):
    * Source/WebCore/platform/graphics/filters/FEDropShadow.h:
    * Source/WebCore/platform/graphics/filters/FEFlood.cpp:
    (WebCore::FEFlood::operator== const):
    * Source/WebCore/platform/graphics/filters/FEFlood.h:
    * Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:
    (WebCore::FEGaussianBlur::operator== const):
    * Source/WebCore/platform/graphics/filters/FEGaussianBlur.h:
    * Source/WebCore/platform/graphics/filters/FEImage.cpp:
    (WebCore::FEImage::operator== const):
    * Source/WebCore/platform/graphics/filters/FEImage.h:
    * Source/WebCore/platform/graphics/filters/FELighting.cpp:
    (WebCore::FELighting::operator== const):
    * Source/WebCore/platform/graphics/filters/FELighting.h:
    * Source/WebCore/platform/graphics/filters/FEMerge.cpp:
    (WebCore::FEMerge::operator== const):
    * Source/WebCore/platform/graphics/filters/FEMerge.h:
    * Source/WebCore/platform/graphics/filters/FEMorphology.cpp:
    (WebCore::FEMorphology::operator== const):
    * Source/WebCore/platform/graphics/filters/FEMorphology.h:
    * Source/WebCore/platform/graphics/filters/FEOffset.cpp:
    (WebCore::FEOffset::operator== const):
    * Source/WebCore/platform/graphics/filters/FEOffset.h:
    * Source/WebCore/platform/graphics/filters/FESpecularLighting.h:
    (WebCore::FESpecularLighting::operator== const):
    * Source/WebCore/platform/graphics/filters/FETurbulence.cpp:
    (WebCore::FETurbulence::operator== const):
    * Source/WebCore/platform/graphics/filters/FETurbulence.h:
    * Source/WebCore/platform/graphics/filters/FilterEffect.cpp:
    (WebCore::FilterEffect::operator== const):
    * Source/WebCore/platform/graphics/filters/FilterEffect.h:
    (WebCore::FilterEffect::areEqual):
    * Source/WebCore/platform/graphics/filters/LightSource.h:
    (WebCore::LightSource::operator== const):
    (WebCore::LightSource::areEqual):
    * Source/WebCore/platform/graphics/filters/PointLightSource.cpp:
    (WebCore::PointLightSource::operator== const):
    * Source/WebCore/platform/graphics/filters/PointLightSource.h:
    * Source/WebCore/platform/graphics/filters/SpotLightSource.cpp:
    (WebCore::SpotLightSource::operator== const):
    * Source/WebCore/platform/graphics/filters/SpotLightSource.h:
    * Source/WebCore/svg/SVGPreserveAspectRatioValue.h:

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

Identifier: 263769.51 at safari-7616.1.14.11-branch


  Commit: b8409a737f9b44858b5eb86c2822f466f13d3764
      https://github.com/WebKit/WebKit/commit/b8409a737f9b44858b5eb86c2822f466f13d3764
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/RenderingResource.h
    M Source/WebCore/platform/graphics/displaylists/DisplayList.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h
    M Source/WebCore/platform/graphics/filters/Filter.h
    M Source/WebCore/platform/graphics/filters/FilterFunction.h
    M Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h

  Log Message:
  -----------
  Cherry-pick e4cb3bdcaddc. rdar://problem/109673458

    [GPU Process][Filters] Make RemoteResourceCache be capable of caching Filter
    https://bugs.webkit.org/show_bug.cgi?id=256324
    rdar://109069946

    Reviewed by Simon Fraser.

    This will allow sending the SVGFilter once to the GPU Process and referencing it
    later by its RenderingResourceIdentifier in the StreamConnection message.

    * Source/WebCore/platform/graphics/RenderingResource.h:
    (WebCore::RenderingResource::isFilter const):
    * Source/WebCore/platform/graphics/displaylists/DisplayList.h:
    (WebCore::DisplayList::DisplayList::cacheFilter):
    * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
    * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
    (WebCore::DisplayList::RecorderImpl::recordResourceUse):
    * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
    * Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:
    (WebCore::DisplayList::LocalResourceHeap::add):
    * Source/WebCore/platform/graphics/filters/Filter.h:
    (isType):
    * Source/WebCore/platform/graphics/filters/FilterFunction.h:
    (WebCore::FilterFunction::isFilter const): Deleted.
    * Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:
    (WebKit::QualifiedResourceHeap::add):
    (WebKit::QualifiedResourceHeap::getFilter const):
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::cacheFilter):
    (WebKit::RemoteRenderingBackend::cacheFilterWithQualifiedIdentifier):
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
    * Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:
    (WebKit::RemoteResourceCache::cacheFilter):
    (WebKit::RemoteResourceCache::cachedFilter const):
    * Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
    (WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
    (WebKit::RemoteRenderingBackendProxy::cacheFilter):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
    (WebKit::RemoteResourceCacheProxy::recordFilterUse):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

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

Identifier: 263769.52 at safari-7616.1.14.11-branch


  Commit: d37854b362b067ea53810d43c2b80c5f6171fb05
      https://github.com/WebKit/WebKit/commit/d37854b362b067ea53810d43c2b80c5f6171fb05
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp

  Log Message:
  -----------
  Cherry-pick b686ba471d7a. rdar://problem/109673458

    [GPU Process] [Filters] Cache the SVGFilter applying results in RemoteResourceCache
    https://bugs.webkit.org/show_bug.cgi?id=232845
    rdar://85426641

    Reviewed by Simon Fraser.

    This allows caching the results of applying an SVGFilter to a source ImageBuffer
    in GPU Process. We should be able to use the cached result if the Filter was not
    changed. We should be also able to clear some of the result FilterImages if a
    FilterEffect was changed.

    * Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
    (WebCore::RenderSVGResourceFilter::applyResource):
    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::SVGFilter::mergeEffects):
    * Source/WebCore/svg/graphics/filters/SVGFilter.h:
    * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
    (WebKit::RemoteDisplayListRecorder::drawFilteredImageBufferInternal):
    (WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
    * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
    (WebKit::RemoteDisplayListRecorderProxy::recordDrawFilteredImageBuffer):

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

Identifier: 263769.53 at safari-7616.1.14.11-branch


  Commit: d5dc16911ffef2ec34128099c7bb65ed74fab658
      https://github.com/WebKit/WebKit/commit/d5dc16911ffef2ec34128099c7bb65ed74fab658
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.8

Identifier: 263769.54 at safari-7616.1.14.11-branch


  Commit: 49eadf462ca2355439b5fff1c404b5845084e941
      https://github.com/WebKit/WebKit/commit/49eadf462ca2355439b5fff1c404b5845084e941
  Author: Brady Eidson <beidson at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick 8792d34445e2. rdar://problem/109674033

    WebKitSwiftOverlay should (once again) include a WebKitAdditions overlay
    https://bugs.webkit.org/show_bug.cgi?id=257046
    rdar://109674033

    Reviewed by Tim Horton.
    Informal review by James Savage.

    Include WebKitAdditionsSwiftOverlay from a well known location.

    * Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj:

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

Identifier: 263769.55 at safari-7616.1.14.11-branch


  Commit: 59318f8f05a747e9abb09e9532354f20ba9bee2c
      https://github.com/WebKit/WebKit/commit/59318f8f05a747e9abb09e9532354f20ba9bee2c
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in

  Log Message:
  -----------
   RemoteImageBufferProxyFlushState::waitForDidFlushOnSecondaryThread blocks on a task running on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=256073
<rdar://108642579>

Reviewed by Simon Fraser.

We attempt to wait for flushes of RemoteImageBufferProxy on a background thread, but the 'didFlush' IPC message is received on the main thread.

This can mean it gets delayed (and we don't know the flush is completed) if the main thread is otherwise busy. This delays first-paint on CPLT.

This change passes a Semphore across to the GPUP instead of the flush identifier, and we signal it when the flush is completed rather than sending a return 'didFlush' message.
The WebProcess waits on each flush Semaphore in a background WorkQueue, and then processes the equivalent of 'didFlush' asynchronously and notifies the condition variable to wake any waiting threads.

waitForDidFlushWithTimeout is removed, and all waiters now use the waitForDidFlushOnSecondaryThread code path (renamed) since all waiters are now 'secondary' WRT the flushing WorkQueue.

Synchronous flushes now use a proper synchronous IPC message, rather than relying on async + wait.

* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::flushContext):
(WebKit::RemoteDisplayListRecorder::flushContextSync):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::didFlush): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::sendSync):
(WebKit::RemoteDisplayListRecorderProxy::flushContext):
(WebKit::RemoteDisplayListRecorderProxy::flushContextSync):
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::flushDrawingContext):
(WebKit::RemoteImageBufferProxy::flushDrawingContextAsync):
(WebKit::RemoteImageBufferProxyFlushState::waitForDidFlush):
(WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout): Deleted.
(WebKit::RemoteImageBufferProxyFlushState::waitForDidFlushOnSecondaryThread): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess):
(WebKit::RemoteRenderingBackendProxy::addPendingFlush):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush): Deleted.
(WebKit::RemoteRenderingBackendProxy::didFlush): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:

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

Identifier: 263769.56 at safari-7616.1.14.11-branch


  Commit: 74158dd5d3f917fce77df6a55b5914bc039a4904
      https://github.com/WebKit/WebKit/commit/74158dd5d3f917fce77df6a55b5914bc039a4904
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm

  Log Message:
  -----------
  Cherry-pick d2f31696424a. rdar://problem/108642579

    RemoteImageBufferProxyFlushState::waitForDidFlushOnSecondaryThread blocks on a task running on the main thread.
    https://bugs.webkit.org/show_bug.cgi?id=256073
    <rdar://108642579>

    Reviewed by Simon Fraser.

    We attempt to wait for flushes of RemoteImageBufferProxy on a background thread, but the 'didFlush' IPC message is received on the main thread.

    This can mean it gets delayed (and we don't know the flush is completed) if the main thread is otherwise busy. This delays first-paint on CPLT.

    This change passes a Semphore across to the GPUP instead of the flush identifier, and we signal it when the flush is completed rather than sending a return 'didFlush' message.
    The WebProcess waits on each flush Semaphore in a background WorkQueue, and then processes the equivalent of 'didFlush' asynchronously and notifies the condition variable to wake any waiting threads.

    waitForDidFlushWithTimeout is removed, and all waiters now use the waitForDidFlushOnSecondaryThread code path (renamed) since all waiters are now 'secondary' WRT the flushing WorkQueue.

    Synchronous flushes now use a proper synchronous IPC message, rather than relying on async + wait.

    Adds a 0-delay asynchronous callOnMainThread hop when triggering the rendering update from RemoteLaterTreeDisplayRefreshMonitor::requestRefreshCallback.
    It appears that when doing the first requestRefreshCallback after idle, we currently just trigger a rendering update immediately, rather than waiting for displayDidRefresh. This differs
    from the non-GPUP code.
    This 0-delay step makes our behaviour more similar to the old code, but adding a proper displayDidRefresh wait would be preferable in the longer term.

    * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
    (WebKit::RemoteDisplayListRecorder::flushContext):
    (WebKit::RemoteDisplayListRecorder::flushContextSync):
    * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
    * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::didFlush): Deleted.
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
    (WebKit::RemoteDisplayListRecorderProxy::sendSync):
    (WebKit::RemoteDisplayListRecorderProxy::flushContext):
    (WebKit::RemoteDisplayListRecorderProxy::flushContextSync):
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
    (WebKit::RemoteImageBufferProxy::flushDrawingContext):
    (WebKit::RemoteImageBufferProxy::flushDrawingContextAsync):
    (WebKit::RemoteImageBufferProxyFlushState::waitForDidFlush):
    (WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout): Deleted.
    (WebKit::RemoteImageBufferProxyFlushState::waitForDidFlushOnSecondaryThread): Deleted.
    * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
    (WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
    (WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess):
    (WebKit::RemoteRenderingBackendProxy::addPendingFlush):
    (WebKit::RemoteRenderingBackendProxy::waitForDidFlush): Deleted.
    (WebKit::RemoteRenderingBackendProxy::didFlush): Deleted.
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
    * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
    (WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):

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

Identifier: 263769.57 at safari-7616.1.14.11-branch


  Commit: 59c8eb664fcc63bc5fd4cf9d83cfcfb1c299bf0c
      https://github.com/WebKit/WebKit/commit/59c8eb664fcc63bc5fd4cf9d83cfcfb1c299bf0c
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj

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

Identifier: 263769.58 at safari-7616.1.14.11-branch


  Commit: 33c1065d575698fb69ab07117d3ebc6b6cfccd06
      https://github.com/WebKit/WebKit/commit/33c1065d575698fb69ab07117d3ebc6b6cfccd06
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    M Source/WebCore/accessibility/AccessibilityObjectInterface.h
    M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
    M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h
    M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm

  Log Message:
  -----------
  Cherry-pick 9c6ff227993d. rdar://problem/109586801

    AX: WebAccessibilityObjectWrapperBase and WKAccessibilityWebPageObjectBase should hold WeakPtrs to their associated backing objects
    https://bugs.webkit.org/show_bug.cgi?id=257071
    rdar://109586801

    Reviewed by Andres Gonzalez.

    Continue the transition to ubiquitous smart pointer member usage per
    https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines.

    * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
    (-[WebAccessibilityObjectWrapper axBackingObject]):
    * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h:
    * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
    (-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
    (-[WebAccessibilityObjectWrapperBase hasIsolatedObject]):
    (-[WebAccessibilityObjectWrapperBase axBackingObject]):

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

Identifier: 263322.506 at safari-7616.1.14.11-branch


  Commit: 0258c15df5b165b19e0459ae24bb556268ae03a2
      https://github.com/WebKit/WebKit/commit/0258c15df5b165b19e0459ae24bb556268ae03a2
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    A LayoutTests/fast/images/decode-decoding-change-image-src-expected.html
    A LayoutTests/fast/images/decode-decoding-change-image-src.html
    M LayoutTests/fast/images/decoding-attribute-async-small-image.html
    M LayoutTests/fast/images/decoding-attribute-dynamic-async-small-image.html
    M Source/WebCore/rendering/RenderBoxModelObject.cpp

  Log Message:
  -----------
  Cherry-pick 36adb36a799f. rdar://problem/108930635

    Charts on sixcolors.com flicker when zooming in
    https://bugs.webkit.org/show_bug.cgi?id=256620
    rdar://108930635

    Reviewed by Simon Fraser.

    If
    	1. An image is in the current viewport,
    	2. It has the attribute decoding="async",
    	3. The layer has already painted at least once,
    	4. And the image frame is being re-decoded

    Then the decoding="async" attribute should be ignored to avoid flickering.

    RenderBoxModelObject::decodingModeForImageDraw() is re-factored such that caces
    which return DecodingMode::Synchronous are checked first. Then flickering case
    is checked. Then cases which return DecodingMode::Asynchronous are checked last.

    Two layout tests are changed to ensure the image is displayed on a fresh layer
    when the image has the decoding="async".

    * LayoutTests/fast/images/decode-decoding-change-image-src-expected.html: Added.
    * LayoutTests/fast/images/decode-decoding-change-image-src.html: Added.
    * Source/WebCore/rendering/RenderBoxModelObject.cpp:
    (WebCore::RenderBoxModelObject::decodingModeForImageDraw const):

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

Identifier: 263322.507 at safari-7616.1.14.11-branch


  Commit: 805eb5976bcfbf7eb4b20c272f401b0a04ed9563
      https://github.com/WebKit/WebKit/commit/805eb5976bcfbf7eb4b20c272f401b0a04ed9563
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.9

Identifier: 263322.508 at safari-7616.1.14.11-branch


  Commit: 020ec3aa668d2922ffb369e1c7fd91197550dd03
      https://github.com/WebKit/WebKit/commit/020ec3aa668d2922ffb369e1c7fd91197550dd03
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    R LayoutTests/fast/images/decode-decoding-change-image-src-expected.html
    R LayoutTests/fast/images/decode-decoding-change-image-src.html
    M LayoutTests/fast/images/decoding-attribute-async-small-image.html
    M LayoutTests/fast/images/decoding-attribute-dynamic-async-small-image.html
    M Source/WebCore/rendering/RenderBoxModelObject.cpp

  Log Message:
  -----------
  Revert 36adb36a799f. rdar://problem/108930635

Identifier: 263322.509 at safari-7616.1.14.11-branch


  Commit: d43cbc4bc24a0d7a60bbbbdd246a3d9e6ae0a429
      https://github.com/WebKit/WebKit/commit/d43cbc4bc24a0d7a60bbbbdd246a3d9e6ae0a429
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    A LayoutTests/fast/images/decode-decoding-change-image-src-expected.html
    A LayoutTests/fast/images/decode-decoding-change-image-src.html
    M LayoutTests/fast/images/decoding-attribute-async-small-image.html
    M LayoutTests/fast/images/decoding-attribute-dynamic-async-small-image.html
    M Source/WebCore/rendering/RenderBoxModelObject.cpp

  Log Message:
  -----------
  Cherry-pick 36adb36a799f. rdar://problem/108930635

    Charts on sixcolors.com flicker when zooming in
    https://bugs.webkit.org/show_bug.cgi?id=256620
    rdar://108930635

    Reviewed by Simon Fraser.

    If
    	1. An image is in the current viewport,
    	2. It has the attribute decoding="async",
    	3. The layer has already painted at least once,
    	4. And the image frame is being re-decoded

    Then the decoding="async" attribute should be ignored to avoid flickering.

    RenderBoxModelObject::decodingModeForImageDraw() is re-factored such that caces
    which return DecodingMode::Synchronous are checked first. Then flickering case
    is checked. Then cases which return DecodingMode::Asynchronous are checked last.

    Two layout tests are changed to ensure the image is displayed on a fresh layer
    when the image has the decoding="async".

    * LayoutTests/fast/images/decode-decoding-change-image-src-expected.html: Added.
    * LayoutTests/fast/images/decode-decoding-change-image-src.html: Added.
    * Source/WebCore/rendering/RenderBoxModelObject.cpp:
    (WebCore::RenderBoxModelObject::decodingModeForImageDraw const):

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

Identifier: 263322.510 at safari-7616.1.14.11-branch


  Commit: 2422f56571aa4a65c15c0fb79a187963ca849f47
      https://github.com/WebKit/WebKit/commit/2422f56571aa4a65c15c0fb79a187963ca849f47
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
    R LayoutTests/fast/images/decode-decoding-change-image-src-expected.html
    R LayoutTests/fast/images/decode-decoding-change-image-src.html
    M LayoutTests/fast/images/decoding-attribute-async-small-image.html
    M LayoutTests/fast/images/decoding-attribute-dynamic-async-small-image.html
    M Source/WebCore/rendering/RenderBoxModelObject.cpp

  Log Message:
  -----------
  Revert 0258c15df5b1. rdar://problem/108930635

Identifier: 263322.511 at safari-7616.1.14.11-branch


  Commit: d231f837f6aeacd679dc53e448c3c00ad04a3221
      https://github.com/WebKit/WebKit/commit/d231f837f6aeacd679dc53e448c3c00ad04a3221
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.10

Identifier: 263769.65 at safari-7616.1.14.11-branch


  Commit: b20627b5a7ffdccb59d28da8a96e1c7749ee4132
      https://github.com/WebKit/WebKit/commit/b20627b5a7ffdccb59d28da8a96e1c7749ee4132
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm

  Log Message:
  -----------
  Cherry-pick 0c7bb633923a. rdar://problem/109528876

    [iOS] Auto-PiP on Yahoo.com may display black feed
    https://bugs.webkit.org/show_bug.cgi?id=257059
    rdar://109528876

    Reviewed by Eric Carlson.

    Auto-PiP (as opposed to an explicit PiP operation) works by creating a empty WebAVPlayerLayerView,
    and WebAVPlayerViewController, and returning YES from the
    -playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground: delegate. However,
    auto-PiP will transfer the video view from the empty WebAVPlayerLayerView to the PiP window, and if
    the empty view doesn't have a video view, the resulting PiP window will be empty.

    * Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
    (VideoFullscreenInterfaceAVKit::doSetup):

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

Identifier: 263769.66 at safari-7616.1.14.11-branch


  Commit: 383b52b75cbac9e21320c4f347dd34e129c87946
      https://github.com/WebKit/WebKit/commit/383b52b75cbac9e21320c4f347dd34e129c87946
  Author: Brent Fulgham <bfulgham at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick fe4af8b17fb6. rdar://problem/109380900

    Cherry-pick 264460 at main (fe4af8b17fb6). <rdar://109380900>

        [Cocoa] Call [AVCaptureDevice ensureServerConnection] when new extensions are made to the GPU Process
        https://bugs.webkit.org/show_bug.cgi?id=257241
        <rdar://109380900>

        Reviewed by Eric Carlson.

        Our current code only calls [AVCaptureDevice ensureServerConnection] the first time we extend the sandbox.
        This can lead to problems if the user visits a site that only needs Microphone access (for example), and
        then visits a site that needs Camera access. Because the camera-related extensions are only recognized by
        the video capture system when [AVCaptureDevice ensureServiceConnection] is called, the fact that we called
        it before the new sandbox extensions were in place mean we never activate the relevant features.

        To fix this, we should simply call [AVCaptureDevice ensureServerConnection] any time we extend the sandbox.
        I have confirmed with the relevant teams that this call is low-cost (performance wise), and is not harmful
        to call repeatedly for things that have already been activated.

        This patch also adds new logging to help debug similar problems in the future.

        * Source/WebKit/GPUProcess/GPUProcess.cpp:
        (WebKit::GPUProcess::updateSandboxAccess): Add logging.
        (WebKit::GPUProcess::updateCaptureAccess): Ditto.
        * Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm:
        (WebKit::GPUProcess::ensureAVCaptureServerConnection): Add new logging, no longer make this a 'std::call_once'.

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

Identifier: 263769.67 at safari-7616.1.14.11-branch


  Commit: f0bd22f8802084634fe0aa265e685a8ea8811ffb
      https://github.com/WebKit/WebKit/commit/f0bd22f8802084634fe0aa265e685a8ea8811ffb
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm

  Log Message:
  -----------
  Revert 383b52b75cba. rdar://problem/109380900

Identifier: 263769.68 at safari-7616.1.14.11-branch


  Commit: 54d0a5767da4bbbeb581b806ff580a73966c7a79
      https://github.com/WebKit/WebKit/commit/54d0a5767da4bbbeb581b806ff580a73966c7a79
  Author: Brent Fulgham <bfulgham at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick 264460 at main (fe4af8b17fb6). <rdar://109380900>

    [Cocoa] Call [AVCaptureDevice ensureServerConnection] when new extensions are made to the GPU Process
    https://bugs.webkit.org/show_bug.cgi?id=257241
    <rdar://109380900>

    Reviewed by Eric Carlson.

    Our current code only calls [AVCaptureDevice ensureServerConnection] the first time we extend the sandbox.
    This can lead to problems if the user visits a site that only needs Microphone access (for example), and
    then visits a site that needs Camera access. Because the camera-related extensions are only recognized by
    the video capture system when [AVCaptureDevice ensureServiceConnection] is called, the fact that we called
    it before the new sandbox extensions were in place mean we never activate the relevant features.

    To fix this, we should simply call [AVCaptureDevice ensureServerConnection] any time we extend the sandbox.
    I have confirmed with the relevant teams that this call is low-cost (performance wise), and is not harmful
    to call repeatedly for things that have already been activated.

    This patch also adds new logging to help debug similar problems in the future.

    * Source/WebKit/GPUProcess/GPUProcess.cpp:
    (WebKit::GPUProcess::updateSandboxAccess): Add logging.
    (WebKit::GPUProcess::updateCaptureAccess): Ditto.
    * Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm:
    (WebKit::GPUProcess::ensureAVCaptureServerConnection): Add new logging, no longer make this a 'std::call_once'.

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

Identifier: 263769.69 at safari-7616.1.14.11-branch


  Commit: ff724d100bcfb2e88227d671517af587d21b8dd5
      https://github.com/WebKit/WebKit/commit/ff724d100bcfb2e88227d671517af587d21b8dd5
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    A LayoutTests/fast/images/decode-decoding-change-image-src-expected.html
    A LayoutTests/fast/images/decode-decoding-change-image-src.html
    M LayoutTests/fast/images/decoding-attribute-async-small-image.html
    M LayoutTests/fast/images/decoding-attribute-dynamic-async-small-image.html
    M Source/WebCore/rendering/RenderBoxModelObject.cpp

  Log Message:
  -----------
  Apply patch 0258c15df5b1 rdar://108930635 (Images on sixcolors.com and other sites flicker when zooming in)

Identifier: 263769.70 at safari-7616.1.14.11-branch


  Commit: 482524e77a12073b99364a37150a97f625c080ce
      https://github.com/WebKit/WebKit/commit/482524e77a12073b99364a37150a97f625c080ce
  Author: J Pascoe <j_pascoe at apple.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/CcidService.h
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/CcidService.mm

  Log Message:
  -----------
  Cherry-pick 52e6f05d3e91. rdar://problem/109060751

    [WebAuthn] Clean up observers in CcidService
    https://bugs.webkit.org/show_bug.cgi?id=257240
    rdar://109060751

    Reviewed by Brent Fulgham.

    This change ensures removeObserver:forKeyPath: is called for each observer we
    add via addObserver in CcidService.

    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/CcidService.h:
    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/CcidService.mm:
    (WebKit::CcidService::~CcidService):
    (WebKit::CcidService::removeObservers):
    (WebKit::CcidService::platformStartDiscovery):
    (WebKit::CcidService::updateSlots):
    (-[_WKSmartCardSlotStateObserver observeValueForKeyPath:ofObject:change:context:]):
    (-[_WKSmartCardSlotStateObserver removeObserver]):

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

Identifier: 263769.71 at safari-7616.1.14.11-branch


  Commit: 4f89809fa512d635abfa78f8de781f5f9aa28d32
      https://github.com/WebKit/WebKit/commit/4f89809fa512d635abfa78f8de781f5f9aa28d32
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-25 (Thu, 25 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.11

Identifier: 263769.72 at safari-7616.1.14.11-branch


  Commit: 0ab29f95cba3dd2d9614678f5e0735f1ba52fa8a
      https://github.com/WebKit/WebKit/commit/0ab29f95cba3dd2d9614678f5e0735f1ba52fa8a
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-05-25 (Thu, 25 May 2023)

  Changed paths:
    M Source/WebCore/platform/ScrollbarsController.h
    M Source/WebCore/platform/graphics/cocoa/IOSurface.h
    M Source/WebCore/platform/graphics/cocoa/IOSurface.mm
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    A Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp
    A Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollbarsController.h

  Log Message:
  -----------
  Cherry-pick b9e5b9ff4fe9. rdar://problem/106651668

    Cocoa Small RemoteLayerBackingStores should be drawn with software
    https://bugs.webkit.org/show_bug.cgi?id=253447
    rdar://problem/106651668

    Reviewed by Simon Fraser.

    Add a specific GPUP side backend for ImageBitmaps used for LayerBacking
    purposes, e.g. RemoteLayerBackingStore buffers. The buffers are drawn
    to with software rasterization.

    Fixes a bug in RemoteDisplayListRecorderProxy::createImageBuffer where
    intermediate ImageBuffers for filters would be created as Layer
    rendering purpose, where as the Layer purpose is supposed to be only
    for the Layer backing stores.

    Fixes a bug in RenderingPurpose where missing ShareableLocalSnapshot
    was not part of the enum serialization, making the serialization
    incorrect.

    * Source/WebCore/platform/ScrollbarsController.h:
    * Source/WebCore/platform/graphics/cocoa/IOSurface.h:
    * Source/WebCore/platform/graphics/cocoa/IOSurface.mm:
    (WebCore::IOSurface::createBitmapPlatformContext):
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::isSmallLayerBacking):
    (WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):
    (WebKit::RemoteRenderingBackend::prepareLayerBuffersForDisplay):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
    (WebKit::RemoteDisplayListRecorderProxy::createImageBuffer const):
    * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp: Added.
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::create):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::ImageBufferShareableMappedIOSurfaceBitmapBackend):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::createBackendHandle const):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::context):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::setOwnershipIdentity):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::backendSize const):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::bytesPerRow const):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::copyNativeImage):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::copyNativeImageForDrawing):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::sinkIntoNativeImage):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::isInUse const):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::releaseGraphicsContext):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::setVolatile):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::setNonVolatile):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::volatilityState const):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::setVolatilityState):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::transferToNewContext):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::getPixelBuffer):
    (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::putPixelBuffer):
    * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h: Added.
    * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollbarsController.h:

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

Identifier: 263769.73 at safari-7616.1.14.11-branch


  Commit: 6bfde3ff757fbbbe2f22308e5a4aec0c03ef9a6e
      https://github.com/WebKit/WebKit/commit/6bfde3ff757fbbbe2f22308e5a4aec0c03ef9a6e
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-05-25 (Thu, 25 May 2023)

  Changed paths:
    M Source/WebCore/html/CanvasBase.cpp

  Log Message:
  -----------
  Cherry-pick 1212e9728215. rdar://problem/109318643

    Ensure we have an image buffer before considering Canvas noise
    https://bugs.webkit.org/show_bug.cgi?id=257143
    rdar://109318643

    Reviewed by Matt Woodrow.

    If we don't have a ImageBuffer, then we don't have a canvas that needs
    post-processing. We can shortcircuit this path by checking if the image buffer
    is present.

    * Source/WebCore/html/CanvasBase.cpp:
    (WebCore::CanvasBase::shouldInjectNoiseBeforeReadback const):

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

Identifier: 263769.74 at safari-7616.1.14.11-branch


  Commit: ad49b3d1867c253080c763d8590c8e115ded568a
      https://github.com/WebKit/WebKit/commit/ad49b3d1867c253080c763d8590c8e115ded568a
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-26 (Fri, 26 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.12

Identifier: 263319.525 at safari-7616.1.14.11-branch


  Commit: 1f44c529755dfe8fe994bbba05e2f32f9dd0e114
      https://github.com/WebKit/WebKit/commit/1f44c529755dfe8fe994bbba05e2f32f9dd0e114
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-30 (Tue, 30 May 2023)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7616.1.14.11.13

Identifier: 263319.526 at safari-7616.1.14.11-branch


  Commit: 24069ade6e4f3739b47722bfe1f0209454e91fd7
      https://github.com/WebKit/WebKit/commit/24069ade6e4f3739b47722bfe1f0209454e91fd7
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-05-30 (Tue, 30 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/UserMediaProcessManager.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm

  Log Message:
  -----------
  Cherry-pick 6406adae9bf2. rdar://problem/109896538

    getDisplayMedia capture should mute other tabs when starting
    https://bugs.webkit.org/show_bug.cgi?id=257386
    rdar://problem/109896538

    Reviewed by Eric Carlson.

    We were muting other tabs within UserMediaProcessManager::willCreateMediaStream but only for microphone and camera
    as the screen/window code path was exiting early.
    Move the call to mute other tabs in WebPageProxy::willStartCapture so that it covers all code paths.

    Covered by API test.

    * Source/WebKit/UIProcess/UserMediaProcessManager.cpp:
    (WebKit::UserMediaProcessManager::willCreateMediaStream):
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::willStartCapture):
    * Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
    (TestWebKitAPI::TEST):

    Canonical link: https://commits.webkit.org/264611@main
Identifier: 263319.527 at safari-7616.1.14.11-branch


  Commit: d4905a4d528d79021fe11b5adbc30f5ddf45499d
      https://github.com/WebKit/WebKit/commit/d4905a4d528d79021fe11b5adbc30f5ddf45499d
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-05-30 (Tue, 30 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/UserMediaProcessManager.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm

  Log Message:
  -----------
  Revert "Cherry-pick 6406adae9bf2. rdar://problem/109896538"

This reverts commit 24069ade6e4f3739b47722bfe1f0209454e91fd7.

Identifier: 263319.528 at safari-7616.1.14.11-branch


Compare: https://github.com/WebKit/WebKit/compare/10b1c1a40933%5E...d4905a4d528d


More information about the webkit-changes mailing list