Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 38e88737aa9734bff86b0807f2ef751b73900477
      
https://github.com/WebKit/WebKit/commit/38e88737aa9734bff86b0807f2ef751b73900477
  Author: Phinehas Fuachie <[email protected]>
  Date:   2026-07-21 (Tue, 21 Jul 2026)

  Changed paths:
    A LayoutTests/http/tests/site-isolation/fullscreen-resize-event-expected.txt
    A LayoutTests/http/tests/site-isolation/fullscreen-resize-event.html
    A 
LayoutTests/http/tests/site-isolation/resources/fullscreen-resize-event.html
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/page/LocalFrameView.h
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.h
    M TestExpectations/apitests
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Remove extra resize event when entering fullscreen with site 
isolation on
https://bugs.webkit.org/show_bug.cgi?id=319554
rdar://150329731

Reviewed by Alex Christensen.

With site isolation, entering fullscreen from a cross-origin <iframe> 
dispatched two resize events
instead of one. The iframe's child process creates its LocalFrameView at the 
viewport size (its
true size isn't known yet) and records that as the resize baseline. When the 
real size later
arrives from the frame-owning process, setFrameRect schedules a spurious 
resize; fullscreen then
fires the second. A same-process iframe never sees this because its view starts 
at the correct
size.

Treat the first frame rect delivered from the frame-owning process as 
establishing the baseline
rather than a change: prime LocalFrameView's resize baseline to the incoming 
size before
setFrameRect, so the correction is absorbed while later size changes 
(fullscreen, script, layout)
still fire normally.

And this fix makes TEST(SiteIsolation, DISABLED_Events) deterministic.

* LayoutTests/http/tests/site-isolation/fullscreen-resize-event-expected.txt: 
Added.
* LayoutTests/http/tests/site-isolation/fullscreen-resize-event.html: Added.
* LayoutTests/http/tests/site-isolation/resources/fullscreen-resize-event.html: 
Added.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::primeResizeEventBaseline):
* Source/WebCore/page/LocalFrameView.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createProvisionalFrame):
(WebKit::WebFrame::updateFrameRectFromRemote):
(WebKit::WebFrame::updateLocalFrameRect):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
(WebKit::WebFrame::consumeIsInitialFrameRect):
* TestExpectations/apitests:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, Events)):
(TestWebKitAPI::(SiteIsolation, DISABLED_Events)): Deleted.

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



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

Reply via email to