Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e97a970f4f182a0dd7f31c946bddd96c02ad2b5f
https://github.com/WebKit/WebKit/commit/e97a970f4f182a0dd7f31c946bddd96c02ad2b5f
Author: Charlie Wolfe <[email protected]>
Date: 2026-02-05 (Thu, 05 Feb 2026)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm
Log Message:
-----------
Block JS initiated mainframe navigations while safe browsing warning is
displayed
https://bugs.webkit.org/show_bug.cgi?id=307008
rdar://167596435
Reviewed by Pascoe.
When a safe browsing warning is shown and JavaScript tries to navigate via
location.href, the page would
incorrectly close. This happened because the new navigation lead to the warning
view being cleared, whose
dealloc called the completion handler with ContinueUnsafeLoad::No.
Fix by blocking non-API-initiated main frame navigations in
decidePolicyForNavigationAction while a
browsing warning is displayed.
Test: Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::hasBrowsingWarning const):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(TEST(SafeBrowsing, NavigationFromWarningPage)):
(TEST(SafeBrowsing, SetTimeoutNavigationFromWarningPage)):
Canonical link: https://commits.webkit.org/306922@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications