Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7f060afff4ba1c4ed01a62591672a2c143c17fb8 https://github.com/WebKit/WebKit/commit/7f060afff4ba1c4ed01a62591672a2c143c17fb8 Author: Alex Christensen <achristen...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes