Skip to content

Commit

Permalink
Revert 5d4cfd0. rdar://problem/102292977
Browse files Browse the repository at this point in the history
  • Loading branch information
alancoon committed Nov 14, 2022
1 parent b6d6b2e commit f913da4
Show file tree
Hide file tree
Showing 12 changed files with 41 additions and 27 deletions.
Expand Up @@ -51,7 +51,7 @@ class NavigationSOAuthorizationSession : public SOAuthorizationSession, private
protected:
using Callback = CompletionHandler<void(bool)>;

NavigationSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, InitiatingAction, Callback&&);
NavigationSOAuthorizationSession(Ref<API::NavigationAction>&&, WebPageProxy&, InitiatingAction, Callback&&);

void invokeCallback(bool intercepted) { m_callback(intercepted); }

Expand Down
Expand Up @@ -35,8 +35,8 @@

namespace WebKit {

NavigationSOAuthorizationSession::NavigationSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, InitiatingAction action, Callback&& completionHandler)
: SOAuthorizationSession(delegate, WTFMove(navigationAction), page, action)
NavigationSOAuthorizationSession::NavigationSOAuthorizationSession(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, InitiatingAction action, Callback&& completionHandler)
: SOAuthorizationSession(WTFMove(navigationAction), page, action)
, m_callback(WTFMove(completionHandler))
{
}
Expand Down
Expand Up @@ -45,13 +45,13 @@ class PopUpSOAuthorizationSession final : public SOAuthorizationSession {
using NewPageCallback = CompletionHandler<void(RefPtr<WebPageProxy>&&)>;
using UIClientCallback = Function<void(Ref<API::NavigationAction>&&, NewPageCallback&&)>;

static Ref<SOAuthorizationSession> create(RetainPtr<WKSOAuthorizationDelegate>, WebPageProxy&, Ref<API::NavigationAction>&&, NewPageCallback&&, UIClientCallback&&);
static Ref<SOAuthorizationSession> create(WebPageProxy&, Ref<API::NavigationAction>&&, NewPageCallback&&, UIClientCallback&&);
~PopUpSOAuthorizationSession();

void close(WKWebView *);

private:
PopUpSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate>, WebPageProxy&, Ref<API::NavigationAction>&&, NewPageCallback&&, UIClientCallback&&);
PopUpSOAuthorizationSession(WebPageProxy&, Ref<API::NavigationAction>&&, NewPageCallback&&, UIClientCallback&&);

void shouldStartInternal() final;
void fallBackToWebPathInternal() final;
Expand Down
Expand Up @@ -94,13 +94,13 @@ - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigat

namespace WebKit {

Ref<SOAuthorizationSession> PopUpSOAuthorizationSession::create(RetainPtr<WKSOAuthorizationDelegate> delegate, WebPageProxy& page, Ref<API::NavigationAction>&& navigationAction, NewPageCallback&& newPageCallback, UIClientCallback&& uiClientCallback)
Ref<SOAuthorizationSession> PopUpSOAuthorizationSession::create(WebPageProxy& page, Ref<API::NavigationAction>&& navigationAction, NewPageCallback&& newPageCallback, UIClientCallback&& uiClientCallback)
{
return adoptRef(*new PopUpSOAuthorizationSession(delegate, page, WTFMove(navigationAction), WTFMove(newPageCallback), WTFMove(uiClientCallback)));
return adoptRef(*new PopUpSOAuthorizationSession(page, WTFMove(navigationAction), WTFMove(newPageCallback), WTFMove(uiClientCallback)));
}

PopUpSOAuthorizationSession::PopUpSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate> delegate, WebPageProxy& page, Ref<API::NavigationAction>&& navigationAction, NewPageCallback&& newPageCallback, UIClientCallback&& uiClientCallback)
: SOAuthorizationSession(delegate, WTFMove(navigationAction), page, InitiatingAction::PopUp)
PopUpSOAuthorizationSession::PopUpSOAuthorizationSession(WebPageProxy& page, Ref<API::NavigationAction>&& navigationAction, NewPageCallback&& newPageCallback, UIClientCallback&& uiClientCallback)
: SOAuthorizationSession(WTFMove(navigationAction), page, InitiatingAction::PopUp)
, m_newPageCallback(WTFMove(newPageCallback))
, m_uiClientCallback(WTFMove(uiClientCallback))
{
Expand Down
Expand Up @@ -35,10 +35,10 @@ class RedirectSOAuthorizationSession final : public NavigationSOAuthorizationSes
public:
using Callback = CompletionHandler<void(bool)>;

static Ref<SOAuthorizationSession> create(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, Callback&& completionHandler);
static Ref<SOAuthorizationSession> create(Ref<API::NavigationAction>&&, WebPageProxy&, Callback&& completionHandler);

private:
RedirectSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&);
RedirectSOAuthorizationSession(Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&);

// SOAuthorizationSession
void fallBackToWebPathInternal() final;
Expand Down
Expand Up @@ -38,13 +38,13 @@
namespace WebKit {
using namespace WebCore;

Ref<SOAuthorizationSession> RedirectSOAuthorizationSession::create(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler)
Ref<SOAuthorizationSession> RedirectSOAuthorizationSession::create(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler)
{
return adoptRef(*new RedirectSOAuthorizationSession(delegate, WTFMove(navigationAction), page, WTFMove(completionHandler)));
return adoptRef(*new RedirectSOAuthorizationSession(WTFMove(navigationAction), page, WTFMove(completionHandler)));
}

RedirectSOAuthorizationSession::RedirectSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler)
: NavigationSOAuthorizationSession(delegate, WTFMove(navigationAction), page, InitiatingAction::Redirect, WTFMove(completionHandler))
RedirectSOAuthorizationSession::RedirectSOAuthorizationSession(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler)
: NavigationSOAuthorizationSession(WTFMove(navigationAction), page, InitiatingAction::Redirect, WTFMove(completionHandler))
{
}

Expand Down
Expand Up @@ -81,7 +81,7 @@
return;
}

auto session = subframeNavigation ? SubFrameSOAuthorizationSession::create(m_soAuthorizationDelegate, WTFMove(navigationAction), page, WTFMove(completionHandler), targetFrame->handle()->frameID()) : RedirectSOAuthorizationSession::create(m_soAuthorizationDelegate, WTFMove(navigationAction), page, WTFMove(completionHandler));
auto session = subframeNavigation ? SubFrameSOAuthorizationSession::create(WTFMove(navigationAction), page, WTFMove(completionHandler), targetFrame->handle()->frameID()) : RedirectSOAuthorizationSession::create(WTFMove(navigationAction), page, WTFMove(completionHandler));
[m_soAuthorizationDelegate setSession:WTFMove(session)];
}

Expand All @@ -107,7 +107,7 @@
return;
}

auto session = PopUpSOAuthorizationSession::create(m_soAuthorizationDelegate, page, WTFMove(navigationAction), WTFMove(newPageCallback), WTFMove(uiClientCallback));
auto session = PopUpSOAuthorizationSession::create(page, WTFMove(navigationAction), WTFMove(newPageCallback), WTFMove(uiClientCallback));
[m_soAuthorizationDelegate setSession:WTFMove(session)];
}

Expand Down
Expand Up @@ -64,6 +64,8 @@ class SOAuthorizationSession : public ThreadSafeRefCounted<SOAuthorizationSessio

virtual ~SOAuthorizationSession();

void setSOAuthorizationDelegate(WKSOAuthorizationDelegate *);

// Probably not start immediately.
void shouldStart();

Expand All @@ -88,7 +90,7 @@ class SOAuthorizationSession : public ThreadSafeRefCounted<SOAuthorizationSessio
Completed
};

SOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, InitiatingAction);
SOAuthorizationSession(Ref<API::NavigationAction>&&, WebPageProxy&, InitiatingAction);

void start();
WebPageProxy* page() const { return m_page.get(); }
Expand Down
Expand Up @@ -87,13 +87,12 @@ static bool isSameOrigin(const WebCore::ResourceRequest& request, const WebCore:

} // namespace

SOAuthorizationSession::SOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, InitiatingAction action)
SOAuthorizationSession::SOAuthorizationSession(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, InitiatingAction action)
: m_soAuthorization(adoptNS([PAL::allocSOAuthorizationInstance() init]))
, m_navigationAction(WTFMove(navigationAction))
, m_page(page)
, m_action(action)
{
m_soAuthorization.get().delegate = delegate.get();
}

SOAuthorizationSession::~SOAuthorizationSession()
Expand All @@ -111,6 +110,11 @@ static bool isSameOrigin(const WebCore::ResourceRequest& request, const WebCore:
dismissViewController();
}

void SOAuthorizationSession::setSOAuthorizationDelegate(WKSOAuthorizationDelegate *delegate)
{
[m_soAuthorization setDelegate:delegate];
}

const char* SOAuthorizationSession::initiatingActionString() const
{
return toString(m_action);
Expand Down
Expand Up @@ -42,14 +42,14 @@ class SubFrameSOAuthorizationSession final : public NavigationSOAuthorizationSes
using SOAuthorizationSession::WeakValueType;
using SOAuthorizationSession::WeakPtrImplType;

static Ref<SOAuthorizationSession> create(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&, WebCore::FrameIdentifier);
static Ref<SOAuthorizationSession> create(Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&, WebCore::FrameIdentifier);

~SubFrameSOAuthorizationSession();

private:
using Supplement = std::variant<Vector<uint8_t>, String>;

SubFrameSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate>, Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&, WebCore::FrameIdentifier);
SubFrameSOAuthorizationSession(Ref<API::NavigationAction>&&, WebPageProxy&, Callback&&, WebCore::FrameIdentifier);

// SOAuthorizationSession
void fallBackToWebPathInternal() final;
Expand Down
Expand Up @@ -47,13 +47,13 @@

} // namespace

Ref<SOAuthorizationSession> SubFrameSOAuthorizationSession::create(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler, FrameIdentifier frameID)
Ref<SOAuthorizationSession> SubFrameSOAuthorizationSession::create(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler, FrameIdentifier frameID)
{
return adoptRef(*new SubFrameSOAuthorizationSession(delegate, WTFMove(navigationAction), page, WTFMove(completionHandler), frameID));
return adoptRef(*new SubFrameSOAuthorizationSession(WTFMove(navigationAction), page, WTFMove(completionHandler), frameID));
}

SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession(RetainPtr<WKSOAuthorizationDelegate> delegate, Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler, FrameIdentifier frameID)
: NavigationSOAuthorizationSession(delegate, WTFMove(navigationAction), page, InitiatingAction::SubFrame, WTFMove(completionHandler))
SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession(Ref<API::NavigationAction>&& navigationAction, WebPageProxy& page, Callback&& completionHandler, FrameIdentifier frameID)
: NavigationSOAuthorizationSession(WTFMove(navigationAction), page, InitiatingAction::SubFrame, WTFMove(completionHandler))
, m_frameID(frameID)
{
if (auto* frame = page.process().webFrame(m_frameID))
Expand Down
Expand Up @@ -144,10 +144,18 @@ - (void)setSession:(RefPtr<WebKit::SOAuthorizationSession>&&)session
{
RELEASE_ASSERT(RunLoop::isMain());
WKSOAUTHORIZATIONDELEGATE_RELEASE_LOG("setSession: (existing session = %p, new session = %p)", _session.get(), session.get());
_session = WTFMove(session);
if (_session.get() == session.get())
return;

if (_session)
_session->setSOAuthorizationDelegate(nil);

_session = WTFMove(session);

if (_session) {
_session->setSOAuthorizationDelegate(self);
_session->shouldStart();
}
}
@end

Expand Down

0 comments on commit f913da4

Please sign in to comment.