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

Reply via email to