Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ea0c784f0e7c9de1554c481f80c2dced82ec495d
      
https://github.com/WebKit/WebKit/commit/ea0c784f0e7c9de1554c481f80c2dced82ec495d
  Author: Pascoe <[email protected]>
  Date:   2026-06-01 (Mon, 01 Jun 2026)

  Changed paths:
    M Source/WebKit/UIProcess/Cocoa/NavigationState.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SOAuthorizationTests.mm

  Log Message:
  -----------
  Support setting _extensibleSSOEnabled after a WebView is loaded
rdar://178276637
https://bugs.webkit.org/show_bug.cgi?id=315885

Reviewed by Abrar Rahman Protyasha and Tim Horton.

WebsiteDataStore::soAuthorizationCoordinator() RELEASE_ASSERTs that Extensible
SSO is enabled, but trySOAuthorization() in NavigationState only checked
NavigationAction::shouldPerformSOAuthorization() and the URL scheme handler
before calling it.

That flag is cleared up front in 
WebPageProxy::decidePolicyForNavigationActionShared()
when the preference is disabled, but the policy decision is resolved 
asynchronously by
the client, so a client that disables Extensible SSO on a web view after the 
decision
has begun leaves the flag set from when SSO was still on. trySOAuthorization() 
then reached
the coordinator and hit the assertion. Re-check the preference at the point of 
use, matching
the existing WebPageProxy variant.

Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SOAuthorizationTests.mm

* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::trySOAuthorization):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SOAuthorizationTests.mm:
(-[TestSOAuthorizationDelegate init]):
(-[TestSOAuthorizationDelegate 
webView:decidePolicyForNavigationAction:decisionHandler:]):
(TestWebKitAPI::TEST(SOAuthorizationRedirect, DisableSSODuringPolicyDecision)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to