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

Reply via email to