Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e0471a8d0e2bbc0c56745721aeb79ac57b7bd8a0 https://github.com/WebKit/WebKit/commit/e0471a8d0e2bbc0c56745721aeb79ac57b7bd8a0 Author: Ben Nham <n...@apple.com> Date: 2023-12-19 (Tue, 19 Dec 2023)
Changed paths: M Source/WebCore/loader/FrameLoader.cpp M Source/WebCore/loader/NavigationAction.cpp M Source/WebCore/loader/NavigationAction.h M Source/WebCore/loader/PolicyChecker.cpp M Source/WebCore/page/ContextMenuController.cpp M Source/WebKit/Shared/NavigationActionData.h M Source/WebKit/Shared/NavigationActionData.serialization.in M Source/WebKit/UIProcess/API/APINavigation.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm Log Message: ----------- Sever window opener on manual navigation https://bugs.webkit.org/show_bug.cgi?id=266354 rdar://118951619 Reviewed by Alex Christensen. When a user does a cross-origin manual navigation (e.g. navigating via the address bar, opening a bookmark, ...), then we should sever the window.opener reference. This should be safe since other browsers are already doing this: https://github.com/whatwg/html/issues/6356. This requires propagating the existing isRequestFromClientOrUserInput flag from more callsites. Previously we were only setting that flag on NavigationAction after a fragment navigation. * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::loadURL): (WebCore::FrameLoader::load): (WebCore::FrameLoader::loadWithDocumentLoader): (WebCore::FrameLoader::reload): (WebCore::FrameLoader::loadPostRequest): (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): (WebCore::FrameLoader::loadDifferentDocumentItem): (WebCore::createWindow): * Source/WebCore/loader/NavigationAction.cpp: (WebCore::NavigationAction::NavigationAction): * Source/WebCore/loader/NavigationAction.h: * Source/WebCore/loader/PolicyChecker.cpp: (WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy): * Source/WebCore/page/ContextMenuController.cpp: (WebCore::openNewWindow): * Source/WebKit/Shared/NavigationActionData.h: * Source/WebKit/Shared/NavigationActionData.serialization.in: * Source/WebKit/UIProcess/API/APINavigation.h: (API::Navigation::isRequestFromClientOrUserInput const): * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigationInternal): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createWindow): * Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): * Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp: (WebKit::WebLocalFrameLoaderClient::didSameDocumentNavigationForFrameViaJSHistoryAPI): (WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp: (WebKit::WebRemoteFrameClient::changeLocation): * Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Canonical link: https://commits.webkit.org/272321@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes