Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fcf6fe0d7fff1c96791b1b3a8c30b21e082e47d7
      
https://github.com/WebKit/WebKit/commit/fcf6fe0d7fff1c96791b1b3a8c30b21e082e47d7
  Author: Ben Nham <[email protected]>
  Date:   2026-09-24 (Thu, 24 Sep 2026)

  Changed paths:
    M 
LayoutTests/http/tests/site-isolation/do-not-rebroadcast-frame-geometry-while-scrolling-expected.txt
    M 
LayoutTests/http/tests/site-isolation/do-not-rebroadcast-frame-geometry-while-scrolling.html
    M 
LayoutTests/http/tests/site-isolation/only-broadcast-scroll-position-if-remote-frame-exists.html
    A 
LayoutTests/http/wpt/site-isolation/intersection-observer/remote-observations-when-viewport-is-not-replicated.sub-expected.txt
    A 
LayoutTests/http/wpt/site-isolation/intersection-observer/remote-observations-when-viewport-is-not-replicated.sub.html
    A 
LayoutTests/http/wpt/site-isolation/intersection-observer/resources/report-target-intersection-frame.html
    M LayoutTests/platform/win/TestExpectations
    M Source/WebCore/loader/LocalFrameLoaderClient.cpp
    M Source/WebCore/loader/LocalFrameLoaderClient.h
    M Source/WebCore/page/FrameGeometrySyncData.h
    M Source/WebCore/page/Page.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Suppress scroll position updates from main frame
https://bugs.webkit.org/show_bug.cgi?id=324892
rdar://problem/188122073

Reviewed by Mike Wyrzykowski.

This suppresses broadcasting the FrameViewportInfo update (which changes with 
the scroll position)
from the main frame if all remote frames are offscreen for consecutive 
rendering updates.

The theory here is that while a remote frame is offscreen, the exact scroll 
position and layout
viewport of the main frame shouldn't matter:

 - IntersectionObserver should continue reporting no intersection
 - Tile coverage and exposedContentRect should still compute zero tile coverage
 - Offscreen throttling via windowClipRect should continue to throttle

Tests: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
       
http/wpt/site-isolation/intersection-observer/remote-observations-when-viewport-is-not-replicated.sub.html

* 
LayoutTests/http/tests/site-isolation/do-not-rebroadcast-frame-geometry-while-scrolling-expected.txt:
* 
LayoutTests/http/tests/site-isolation/do-not-rebroadcast-frame-geometry-while-scrolling.html:
* 
LayoutTests/http/tests/site-isolation/only-broadcast-scroll-position-if-remote-frame-exists.html:
* 
LayoutTests/http/wpt/site-isolation/intersection-observer/remote-observations-when-viewport-is-not-replicated.sub-expected.txt:
 Added.
* 
LayoutTests/http/wpt/site-isolation/intersection-observer/remote-observations-when-viewport-is-not-replicated.sub.html:
 Added.
* 
LayoutTests/http/wpt/site-isolation/intersection-observer/resources/report-target-intersection-frame.html:
 Added.
* LayoutTests/platform/win/TestExpectations:
* Source/WebCore/loader/LocalFrameLoaderClient.cpp:
(WebCore::LocalFrameLoaderClient::broadcastFrameViewportInfoToOtherProcessesIfNeeded):
* Source/WebCore/loader/LocalFrameLoaderClient.h:
* Source/WebCore/page/FrameGeometrySyncData.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::syncLocalFrameInfoToRemote):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::clearLastBroadcastFrameTreeSyncData):
(WebKit::WebLocalFrameLoaderClient::broadcastFrameViewportInfoToOtherProcessesIfNeeded):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, HitTestingInScrolledCrossOriginIframe)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to