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