Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e257d805030a0048938dcb35475c7b99cf376ad3
      
https://github.com/WebKit/WebKit/commit/e257d805030a0048938dcb35475c7b99cf376ad3
  Author: Kiet Ho <[email protected]>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M LayoutTests/ipc/serialized-type-info.html
    M LayoutTests/platform/ios-site-isolation/TestExpectations
    M LayoutTests/platform/mac-site-isolation/TestExpectations
    M Source/WebCore/page/FrameTreeSyncData.in
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  [Site Isolation] Synchronize scroll position of LocalFrameView to 
RemoteFrameViews on change
rdar://179748816
https://bugs.webkit.org/show_bug.cgi?id=317152

Reviewed by Megan Gardner and Simon Fraser.

ScrollView::viewToContents() and contentsToView() (used by rootViewToContents, 
which
is used in a bunch of places including Intersection Observer) needs to know the 
current
scroll position of a frame. When Site Isolation is enabled, we didn't 
synchronize the
scroll position between processes on scrolling, so it's possible a process 
thinks a
remote frame is at the original scroll position, which it's actually halfway 
scrolled.

Fix this by synchronizing the scroll position when it changes using 
FrameTreeSyncData.

Test: 
imported/w3c/web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub.html

* LayoutTests/ipc/serialized-type-info.html:
    - Add instruction to fix missing IPC description issue.

* LayoutTests/platform/ios-site-isolation/TestExpectations:
* LayoutTests/platform/mac-site-isolation/TestExpectations:
* Source/WebCore/page/FrameTreeSyncData.in:
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::scrollPositionChanged):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::calculateFrameTreeSyncData const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameTreeSyncDataChangedInAnotherProcess):

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



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

Reply via email to