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