Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f5aa57b6b88aa2ffca5cd1457a45c56723031bcd https://github.com/WebKit/WebKit/commit/f5aa57b6b88aa2ffca5cd1457a45c56723031bcd Author: Wenson Hsieh <wenson_hs...@apple.com> Date: 2025-02-14 (Fri, 14 Feb 2025)
Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/page/LocalFrameView.cpp M Source/WebCore/page/LocalFrameView.h M Source/WebCore/page/PageColorSampler.cpp M Source/WebCore/page/PageColorSampler.h A Source/WebCore/platform/FixedContainerEdges.h Log Message: ----------- [Cocoa] Add a heuristic to detect and sample colors in fixed-position elements at the edges of the viewport https://bugs.webkit.org/show_bug.cgi?id=287690 rdar://144839983 Reviewed by Abrar Rahman Protyasha. Work towards rdar://144839983; see below for more details. * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/page/LocalFrameView.cpp: (WebCore::LocalFrameView::fixedContainerEdges const): Add a helper method that returns the set of `FixedContainerEdges` (see the new header below), by first hit-testing around all 4 edges of the layout viewport in search of elements with fixed- position ancestors in the render tree; for each edge with a fixed ancestor, we then use the new page color sampling helper below to extract the predominant color. * Source/WebCore/page/LocalFrameView.h: * Source/WebCore/page/PageColorSampler.cpp: (WebCore::PageColorSampler::predominantColor): Add a helper method that samples the predominant color in the given rect (in absolute coordinates) by taking a snapshot, building a histogram of color frequencies, and checking whether the number of similar colors represents a majority of all sampled colors. * Source/WebCore/page/PageColorSampler.h: * Source/WebCore/platform/FixedContainerEdges.h: Added. Add a helper class, `FixedContainerEdges`, that represents two pieces of information about each of the 4 edges of the layout viewport (top, left, bottom, right): - Whether there's a fixed-position container near that edge. - A sampled predominant color, or the invalid color if none is detected (e.g. due to too many different colors). Canonical link: https://commits.webkit.org/290411@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