Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fa24f4dd4063c526c78440b381fce8baee934a5e
      
https://github.com/WebKit/WebKit/commit/fa24f4dd4063c526c78440b381fce8baee934a5e
  Author: Wenson Hsieh <wenson_hs...@apple.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M Source/WebCore/SaferCPPExpectations/ForwardDeclCheckerExpectations
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    A Source/WebCore/platform/FixedContainerEdges.cpp
    M Source/WebCore/platform/FixedContainerEdges.h
    M Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp
    M Source/WebCore/platform/graphics/NativeImage.cpp
    M Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp
    M 
Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  [Page color sampling] Refactor fixed container edge sampling so that we keep 
track of state on all rect edges
https://bugs.webkit.org/show_bug.cgi?id=293165

Reviewed by Abrar Rahman Protyasha.

Part 1 of refactoring the fixed container edge sampling heuristic to be more 
stable — this adds a
member to `Page` to store the last `FixedContainerEdges` state. Instead of 
computing this and
sending it along in the remote layer tree transaction, we now call 
`updateFixedContainerEdges` and
send along the current state.

* Source/WebCore/SaferCPPExpectations/ForwardDeclCheckerExpectations:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::didCommitLoad):
(WebCore::Page::updateFixedContainerEdges):
(WebCore::Page::lastTopFixedContainerColor const):
* Source/WebCore/page/Page.h:

Replace `m_lastTopFixedContainerColor` (which only keeps track of the last 
predominant color on the
top edge) with `m_fixedContainerEdges`, which keeps track of all sampled edges. 
Note that this is a
`UniqueRef`, in order to avoid including `FixedContainerEdges.h` in `Page.h`.

(WebCore::Page::fixedContainerEdges const):
(WebCore::Page::setLastTopFixedContainerColor): Deleted.
(WebCore::Page::lastTopFixedContainerColor const): Deleted.
* Source/WebCore/platform/FixedContainerEdges.cpp: Copied from 
Source/WebCore/platform/FixedContainerEdges.h.

Add an implementation file for `FixedContainerEdges` so that it can contain the
`WTF_MAKE_TZONE_ALLOCATED_IMPL`. Also move a couple of inline method 
definitions to the source file,
to make the header somewhat more readable.

(WebCore::FixedContainerEdges::hasFixedEdge const):
(WebCore::FixedContainerEdges::predominantColor const):
* Source/WebCore/platform/FixedContainerEdges.h:
(WebCore::FixedContainerEdges::FixedContainerEdges):
(WebCore::FixedContainerEdges::hasFixedEdge const): Deleted.
(WebCore::FixedContainerEdges::predominantColor const): Deleted.
* Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp:
* Source/WebCore/platform/graphics/NativeImage.cpp:
* Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp:

Unified source build fixes (include missing headers).

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::setFixedContainerEdges):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to