browser(webkit): treat empty credentials as enabled auth interception (#385)
This commit is contained in:
parent
b858ae3316
commit
544595f3e1
|
|
@ -1 +1 @@
|
||||||
1062
|
1063
|
||||||
|
|
|
||||||
|
|
@ -6936,7 +6936,7 @@ index 78caedf0c0ce83675569502d150fcc44e5f9868c..ae6b43a49986380a521dcfbe8d5dc9e3
|
||||||
} // namespace WebKit
|
} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp
|
diff --git a/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..58e69943a8978790fbe6fa0f478c64dd2895a551
|
index 0000000000000000000000000000000000000000..ca238991a6fed35f2b18d46735fbac7243794a5f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp
|
+++ b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp
|
||||||
@@ -0,0 +1,63 @@
|
@@ -0,0 +1,63 @@
|
||||||
|
|
@ -6999,7 +6999,7 @@ index 0000000000000000000000000000000000000000..58e69943a8978790fbe6fa0f478c64dd
|
||||||
+ if (username && password)
|
+ if (username && password)
|
||||||
+ m_page.setAuthCredentialsForAutomation(WebCore::Credential(*username, *password, CredentialPersistencePermanent));
|
+ m_page.setAuthCredentialsForAutomation(WebCore::Credential(*username, *password, CredentialPersistencePermanent));
|
||||||
+ else
|
+ else
|
||||||
+ m_page.setAuthCredentialsForAutomation(WebCore::Credential());
|
+ m_page.setAuthCredentialsForAutomation(Optional<WebCore::Credential>());
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+} // namespace WebKit
|
+} // namespace WebKit
|
||||||
|
|
@ -7536,7 +7536,7 @@ index 0000000000000000000000000000000000000000..033f936d9d3caf594b78bb6ad39249d6
|
||||||
+
|
+
|
||||||
+} // namespace WebKit
|
+} // namespace WebKit
|
||||||
diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp
|
diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp
|
||||||
index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec77be5817a 100644
|
index 9b868717128b9f0b592c94c3b325507d99d6797b..876cd00e9e9c5d95d7d3069012653d4c4584deea 100644
|
||||||
--- a/Source/WebKit/UIProcess/WebPageProxy.cpp
|
--- a/Source/WebKit/UIProcess/WebPageProxy.cpp
|
||||||
+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp
|
+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp
|
||||||
@@ -889,6 +889,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason)
|
@@ -889,6 +889,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason)
|
||||||
|
|
@ -7556,7 +7556,7 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec7
|
||||||
+ m_inputProcessingObserver = observer;
|
+ m_inputProcessingObserver = observer;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+void WebPageProxy::setAuthCredentialsForAutomation(WebCore::Credential&& credentials) {
|
+void WebPageProxy::setAuthCredentialsForAutomation(Optional<WebCore::Credential>&& credentials) {
|
||||||
+ m_credentialsForAutomation = WTFMove(credentials);
|
+ m_credentialsForAutomation = WTFMove(credentials);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
|
@ -7667,18 +7667,22 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec7
|
||||||
if (m_loaderClient)
|
if (m_loaderClient)
|
||||||
handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this);
|
handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this);
|
||||||
else
|
else
|
||||||
@@ -7595,6 +7621,10 @@ void WebPageProxy::gamepadActivity(const Vector<GamepadData>& gamepadDatas, bool
|
@@ -7595,6 +7621,14 @@ void WebPageProxy::gamepadActivity(const Vector<GamepadData>& gamepadDatas, bool
|
||||||
|
|
||||||
void WebPageProxy::didReceiveAuthenticationChallengeProxy(Ref<AuthenticationChallengeProxy>&& authenticationChallenge)
|
void WebPageProxy::didReceiveAuthenticationChallengeProxy(Ref<AuthenticationChallengeProxy>&& authenticationChallenge)
|
||||||
{
|
{
|
||||||
+ if (!m_credentialsForAutomation.isEmpty() && !authenticationChallenge->core().previousFailureCount()) {
|
+ if (m_credentialsForAutomation.hasValue()) {
|
||||||
+ authenticationChallenge->listener().completeChallenge(AuthenticationChallengeDisposition::UseCredential, m_credentialsForAutomation);
|
+ if (m_credentialsForAutomation->isEmpty() || authenticationChallenge->core().previousFailureCount()) {
|
||||||
|
+ authenticationChallenge->listener().completeChallenge(AuthenticationChallengeDisposition::PerformDefaultHandling);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ authenticationChallenge->listener().completeChallenge(AuthenticationChallengeDisposition::UseCredential, *m_credentialsForAutomation);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
m_navigationClient->didReceiveAuthenticationChallenge(*this, authenticationChallenge.get());
|
m_navigationClient->didReceiveAuthenticationChallenge(*this, authenticationChallenge.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7656,7 +7686,8 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID,
|
@@ -7656,7 +7690,8 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID,
|
||||||
MESSAGE_CHECK(m_process, frame);
|
MESSAGE_CHECK(m_process, frame);
|
||||||
|
|
||||||
// FIXME: Geolocation should probably be using toString() as its string representation instead of databaseIdentifier().
|
// FIXME: Geolocation should probably be using toString() as its string representation instead of databaseIdentifier().
|
||||||
|
|
@ -7688,7 +7692,7 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec7
|
||||||
auto request = m_geolocationPermissionRequestManager.createRequest(geolocationID);
|
auto request = m_geolocationPermissionRequestManager.createRequest(geolocationID);
|
||||||
Function<void(bool)> completionHandler = [request = WTFMove(request)](bool allowed) {
|
Function<void(bool)> completionHandler = [request = WTFMove(request)](bool allowed) {
|
||||||
if (allowed)
|
if (allowed)
|
||||||
@@ -7664,6 +7695,11 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID,
|
@@ -7664,6 +7699,11 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID,
|
||||||
else
|
else
|
||||||
request->deny();
|
request->deny();
|
||||||
};
|
};
|
||||||
|
|
@ -7701,7 +7705,7 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec7
|
||||||
// FIXME: Once iOS migrates to the new WKUIDelegate SPI, clean this up
|
// FIXME: Once iOS migrates to the new WKUIDelegate SPI, clean this up
|
||||||
// and make it one UIClient call that calls the completionHandler with false
|
// and make it one UIClient call that calls the completionHandler with false
|
||||||
diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h
|
diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h
|
||||||
index 8189e085e43ea304b38ff84e41e6e49f10c8da20..dc1eeb8cd5c35c1ee5020cbe72639de559d7f952 100644
|
index 8189e085e43ea304b38ff84e41e6e49f10c8da20..c07e4bca568d77d842695c206eb21108b3b98d71 100644
|
||||||
--- a/Source/WebKit/UIProcess/WebPageProxy.h
|
--- a/Source/WebKit/UIProcess/WebPageProxy.h
|
||||||
+++ b/Source/WebKit/UIProcess/WebPageProxy.h
|
+++ b/Source/WebKit/UIProcess/WebPageProxy.h
|
||||||
@@ -35,6 +35,7 @@
|
@@ -35,6 +35,7 @@
|
||||||
|
|
@ -7732,7 +7736,7 @@ index 8189e085e43ea304b38ff84e41e6e49f10c8da20..dc1eeb8cd5c35c1ee5020cbe72639de5
|
||||||
+ virtual void didProcessAllPendingMouseEvents() = 0;
|
+ virtual void didProcessAllPendingMouseEvents() = 0;
|
||||||
+ };
|
+ };
|
||||||
+ void setObserber(InputProcessingObserver*);
|
+ void setObserber(InputProcessingObserver*);
|
||||||
+ void setAuthCredentialsForAutomation(WebCore::Credential&&);
|
+ void setAuthCredentialsForAutomation(Optional<WebCore::Credential>&&);
|
||||||
+ void setPermissionsForAutomation(const HashMap<String, HashSet<String>>&);
|
+ void setPermissionsForAutomation(const HashMap<String, HashSet<String>>&);
|
||||||
+
|
+
|
||||||
void initializeWebPage();
|
void initializeWebPage();
|
||||||
|
|
@ -7758,7 +7762,7 @@ index 8189e085e43ea304b38ff84e41e6e49f10c8da20..dc1eeb8cd5c35c1ee5020cbe72639de5
|
||||||
bool m_isLayerTreeFrozenDueToSwipeAnimation { false };
|
bool m_isLayerTreeFrozenDueToSwipeAnimation { false };
|
||||||
|
|
||||||
String m_overriddenMediaType;
|
String m_overriddenMediaType;
|
||||||
+ WebCore::Credential m_credentialsForAutomation;
|
+ Optional<WebCore::Credential> m_credentialsForAutomation;
|
||||||
+ HashMap<String, HashSet<String>> m_permissionsForAutomation;
|
+ HashMap<String, HashSet<String>> m_permissionsForAutomation;
|
||||||
|
|
||||||
#if PLATFORM(IOS_FAMILY) && ENABLE(DEVICE_ORIENTATION)
|
#if PLATFORM(IOS_FAMILY) && ENABLE(DEVICE_ORIENTATION)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue