[webkit-changes] [WebKit/WebKit] 5d4cfd: Set SOAuthorization's delegate after creation

J Pascoe noreply at github.com
Tue Nov 8 13:18:58 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5d4cfd0b422334957753e2efc60555a59cc9192b
      https://github.com/WebKit/WebKit/commit/5d4cfd0b422334957753e2efc60555a59cc9192b
  Author: J Pascoe <j_pascoe at apple.com>
  Date:   2022-11-08 (Tue, 08 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm
    M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm

  Log Message:
  -----------
  Set SOAuthorization's delegate after creation
https://bugs.webkit.org/show_bug.cgi?id=247585
rdar://101836775

Reviewed by Brent Fulgham.

The previous process for changing the SOAuthorizationSession and setting the SOAuthorizationDelegate
can lead to a race where the ssesion is set multiple times in a very short period. The session swap
logic in [WKSOAuthorizationDelegate setSession] can set the delegate to null which can end up cancelling
the new request. This patch restores setting SOAuthorization when initializing the session.

Covered by existing SOAuthorization tests.

* Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h:
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm:
(WebKit::NavigationSOAuthorizationSession::NavigationSOAuthorizationSession):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h:
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:
(WebKit::PopUpSOAuthorizationSession::create):
(WebKit::PopUpSOAuthorizationSession::PopUpSOAuthorizationSession):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h:
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm:
(WebKit::RedirectSOAuthorizationSession::create):
(WebKit::RedirectSOAuthorizationSession::RedirectSOAuthorizationSession):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:
(WebKit::SOAuthorizationCoordinator::tryAuthorize):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::SOAuthorizationSession):
(WebKit::SOAuthorizationSession::setSOAuthorizationDelegate): Deleted.
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h:
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:
(WebKit::SubFrameSOAuthorizationSession::create):
(WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm:
(-[WKSOAuthorizationDelegate setSession:]):

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




More information about the webkit-changes mailing list