Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ab284b2b78794e09d0d9250ed336cc01cd4e8b34
      
https://github.com/WebKit/WebKit/commit/ab284b2b78794e09d0d9250ed336cc01cd4e8b34
  Author: Wenson Hsieh <[email protected]>
  Date:   2025-10-15 (Wed, 15 Oct 2025)

  Changed paths:
    A 
LayoutTests/fast/page-color-sampling/color-sampling-skips-negative-z-index-modal-containers-expected.txt
    A 
LayoutTests/fast/page-color-sampling/color-sampling-skips-negative-z-index-modal-containers.html
    M Source/WebCore/page/LocalFrameView.cpp

  Log Message:
  -----------
  REGRESSION (298506@main): [PLT6] ~13% increase in time to first paint / 
DOMContentLoaded on Facebook
https://bugs.webkit.org/show_bug.cgi?id=300831
rdar://162552413

Reviewed by Abrar Rahman Protyasha.

After the changes in 298506@main, we now get a bottom fixed color extension on 
the old, PLT 6
version of Twitter (notably, not Facebook) due to the fact that we no longer 
ignore viewport-sized
modal containers for the purposes of color sampling. This means that when 
navigating from Twitter to
Facebook during warm PLT 6 (these two subtests run back-to-back), Safari 
removes the solid color
extension behind the navigation bar, which causes UIKit's scroll pocket code to 
resample and re-
render the scroll pocket.

This additional spike in CPU / GPU activity during navigation subsequently 
slows down the time to
first paint on Facebook by a few milliseconds — enough to cause a significant 
regression on certain
(older) device models.

To mitigate this, we make some changes to the color sampling heuristic, such 
that we avoid detecting
the fixed-position container (which is z-ordered below the rest of the feed) on 
Twitter for the
purposes of color sampling.

Test: 
fast/page-color-sampling/color-sampling-skips-negative-z-index-modal-containers.html

* 
LayoutTests/fast/page-color-sampling/color-sampling-skips-negative-z-index-modal-containers-expected.txt:
 Added.
* 
LayoutTests/fast/page-color-sampling/color-sampling-skips-negative-z-index-modal-containers.html:
 Added.

Add a new layout test to exercise this adjustment.

* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::fixedContainerEdges const):

Don't consider large (viewport-sized) containers with a negative `z-index` as 
candidates for color
sampling.

Canonical link: https://commits.webkit.org/301605@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