Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 38a194b1080ba3d5db300fabc999b8e8fc30225e
      
https://github.com/WebKit/WebKit/commit/38a194b1080ba3d5db300fabc999b8e8fc30225e
  Author: Alex Christensen <[email protected]>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M 
LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html
    M LayoutTests/platform/mac-site-isolation/TestExpectations
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/page/Frame.h
    M Source/WebCore/page/LocalFrame.cpp
    M Source/WebCore/page/LocalFrame.h
    M Source/WebCore/page/RemoteFrame.cpp
    M Source/WebCore/page/RemoteFrame.h
    M Source/WebCore/page/RemoteFrameClient.h
    M Source/WebKit/UIProcess/API/C/WKPageInjectedBundleClient.h
    M Source/WebKit/UIProcess/WebPageInjectedBundleClient.cpp
    M Source/WebKit/UIProcess/WebPageInjectedBundleClient.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Tools/DumpRenderTree/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
    M Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
    M Tools/WebKitTestRunner/TestController.cpp

  Log Message:
  -----------
  Implement printNavigationErrorMessage with site isolation
https://bugs.webkit.org/show_bug.cgi?id=272135
rdar://125885740

Reviewed by Charlie Wolfe.

printNavigationErrorMessage would be easy to implement if we didn't want to 
print the URL of
the frame whose navigation was unsuccessfully attempted.  Having both URLs is 
useful for
the web inspector, but if the target frame is a RemoteFrame, then the current 
process does
not and should not have the URL.  To keep the test output the same and keep the 
inspector
log useful, if the Frame is a RemoteFrame, then send an asynchronous message to 
a process
that has the URL before printing to the console.

When we do this, we now have console output that doesn't appear immediately.  
We have to
wait for it to arrive.  I implemented this by adding 
TestRunner.flushConsoleLogs, which just
needs to send a round trip message to the UI process.  Unfortunately, in order 
to have the
reply sent to the right process, we can't just use 
WKPagePostMessageToInjectedBundle like
we have so far because that always sends a message to the main frame's process. 
 We need
a new bundle SPI, WKBundlePagePostMessageWithAsyncReply, which sends the reply 
to whatever
process sent the message.  Migrating other use of cacheTestRunnerCallback and
callTestRunnerCallback to this will probably make our test infrastructure a 
little more
site-isolation-friendly.

* LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html:
* LayoutTests/platform/mac-site-isolation/TestExpectations:
* Source/WebCore/dom/Document.cpp:
(WebCore::printNavigationErrorMessage):
(WebCore::Document::canNavigate):
(WebCore::Document::canNavigateInternal):
* Source/WebCore/page/Frame.h:
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::documentURLForConsoleLog):
* Source/WebCore/page/LocalFrame.h:
* Source/WebCore/page/RemoteFrame.cpp:
(WebCore::RemoteFrame::documentURLForConsoleLog):
* Source/WebCore/page/RemoteFrame.h:
* Source/WebCore/page/RemoteFrameClient.h:
* Source/WebKit/UIProcess/API/C/WKPageInjectedBundleClient.h:
* Source/WebKit/UIProcess/WebPageInjectedBundleClient.cpp:
(WebKit::WebPageInjectedBundleClient::didReceiveAsyncMessageFromInjectedBundle):
* Source/WebKit/UIProcess/WebPageInjectedBundleClient.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMessageWithAsyncReply):
(WebKit::WebPageProxy::documentURLForConsoleLog):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePagePostMessageWithAsyncReply):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp:
(WebKit::WebRemoteFrameClient::documentURLForConsoleLog):
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::postMessageWithAsyncReply):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Tools/DumpRenderTree/TestRunner.cpp:
(flushConsoleLogsCallback):
(TestRunner::staticFunctions):
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::firstRootFrame):
(WTR::firstRootFrameJSContext):
(WTR::asyncReplyHandler):
(WTR::postMessageWithAsyncReply):
* Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::flushConsoleLogs):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::createOtherPlatformWebView):
(WTR::TestController::createWebViewWithOptions):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to