[webkit-changes] [WebKit/WebKit] 7f060a: [Site Isolation] Fix drawing after navigating an i...
Alex Christensen
noreply at github.com
Fri May 17 15:50:19 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7f060afff4ba1c4ed01a62591672a2c143c17fb8
https://github.com/WebKit/WebKit/commit/7f060afff4ba1c4ed01a62591672a2c143c17fb8
Author: Alex Christensen <achristensen at apple.com>
Date: 2024-05-17 (Fri, 17 May 2024)
Changed paths:
A LayoutTests/http/tests/site-isolation/draw-after-cross-origin-navigation-between-two-remote-frames-expected.html
A LayoutTests/http/tests/site-isolation/draw-after-cross-origin-navigation-between-two-remote-frames.html
M Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp
M Source/WebKit/UIProcess/ProvisionalFrameProxy.h
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebFrameProxy.h
Log Message:
-----------
[Site Isolation] Fix drawing after navigating an iframe from one third party domain to another
https://bugs.webkit.org/show_bug.cgi?id=274335
Reviewed by Charlie Wolfe.
A LayerHostingContextIdentifier needs to be persistent for the lifetime of the WebFrameProxy so the second navigation
draws successfully. Otherwise, we were generating a new LayerHostingContextIdentifier with the second provisional
navigation but the parent frame's process was never aware of the change, and it shouldn't be because there should be
no change of the LayerHostingContextIdentifier, but a change of where the hosted layers are coming from.
I manually tested that this makes it work as desired when browsing. For an automated test, we need at least 3 domains
but we only have two accessible from layout tests: 127.0.0.1 and localhost. Luckily, this test still covers the
change even if the first load never succeeds. We only need to get to the point of generating a LayerHostingContextIdentifier
which can be done with a localhost subdomain that doesn't exist.
* LayoutTests/http/tests/site-isolation/draw-after-cross-origin-navigation-between-two-remote-frames-expected.html: Added.
* LayoutTests/http/tests/site-isolation/draw-after-cross-origin-navigation-between-two-remote-frames.html: Added.
* Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp:
(WebKit::ProvisionalFrameProxy::ProvisionalFrameProxy):
* Source/WebKit/UIProcess/ProvisionalFrameProxy.h:
(WebKit::ProvisionalFrameProxy::layerHostingContextIdentifier const): Deleted.
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::WebFrameProxy):
(WebKit::WebFrameProxy::prepareForProvisionalLoadInProcess):
(WebKit::WebFrameProxy::commitProvisionalFrame):
* Source/WebKit/UIProcess/WebFrameProxy.h:
Canonical link: https://commits.webkit.org/278926@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list