Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b4e25f1796cb897fdcfb2a726dcd50fac4968fb1
https://github.com/WebKit/WebKit/commit/b4e25f1796cb897fdcfb2a726dcd50fac4968fb1
Author: Wenson Hsieh <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M
LayoutTests/fast/page-color-sampling/page-color-sampling-skips-small-elements.html
M Source/WebCore/page/LocalFrameView.cpp
Log Message:
-----------
[iOS] [Liquid Glass] baidu.com: Fixed color extensions appear after moving
"百度APP内播放" to the bottom
https://bugs.webkit.org/show_bug.cgi?id=294414
rdar://152741332
Reviewed by Abrar Rahman Protyasha and Aditya Keerthi.
On baidu.com, after following a link to a video article from the front page and
then dragging to
reposition the purple "百度APP内播放" ("Play in Baidu app") dialog against the edges
of the viewport,
white fixed color extension views will appear on the sides of any viewport
edges that have nonzero
obscured insets. This happens because:
1. When dragging the dialog against a viewport edge, it gets detected as a
fixed container
2. This causes us to sample the fixed edge color, which results in a
multi-color result; we handle
this by falling back to page background color — white.
3. Due to color sampling stability heuristics in 295099@main, we end up
keeping the sampled colors
stable even if the dialog is repositioned by the user, such that it's no
longer near the edge.
To fix this, we broaden the heuristic in 294382@main to also apply to top and
bottom viewport edges.
This was initially limited to left/right edges to limit risk (e.g. it would
have broken sampling for
the fixed header on wallflowersanfrancisco.com, where the fixed-position
container itself is empty
but contains visual overflow). However, this is no longer a risk after the
changes in 294820@main,
which adjusted `isNearlyViewportSized` to only check _either_ the width _or_
height of the element,
instead of the ratio of the rect that overlaps.
As such, it should now be safe to remove the `side == BoxSide::Left || side ==
BoxSide::Right` check
for this `TooSmall` case.
*
LayoutTests/fast/page-color-sampling/page-color-sampling-skips-small-elements.html:
Augment an existing layout test to cover this case as well.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::fixedContainerEdges const):
Canonical link: https://commits.webkit.org/296175@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes