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

  Changed paths:
    M Source/WebCore/page/RemoteFrameView.cpp
    M Source/WebCore/page/RemoteFrameView.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Scrolling in one process should not trigger redisplay in 
another process
https://bugs.webkit.org/show_bug.cgi?id=325677
rdar://problem/188727951

Reviewed by Simon Fraser.

When a local frame scrolls, it broadcasts its scroll position to the other 
processes in the
page. Each of those processes then applies the scroll position to the 
RemoteFrameView associated
with that frame. This eventually calls ScrollView::scrollContentsSlowPath, 
which sends a
PageDidScroll IPC to the UIProcess and schedules a redisplay of the process's 
drawing area.

This work is unnecessary. The process that scrolled already sends a 
PageDidScroll IPC and already
repaints the scrolled frame's contents.

Fix this by making RemoteFrameView::scrollContentsSlowPath a no-op.

Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

* Source/WebCore/page/RemoteFrameView.cpp:
(WebCore::RemoteFrameView::scrollContentsSlowPath):
* Source/WebCore/page/RemoteFrameView.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(-[SiteIsolationPageScrollCounter _webViewDidScroll:]):
(TestWebKitAPI::(SiteIsolation, 
CrossSiteIframeProcessesDoNotReportMainFrameScroll)):

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



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

Reply via email to