summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-08-05 15:42:17 +0100
committerBen Murdoch <benm@google.com>2011-08-05 15:50:19 +0100
commitb03ba594dfb7cae54557397a2a86b0a926da4685 (patch)
tree1500e82f92fed8e60b7e033b15d53b9f65c23e3f /Source
parent6b9d05281a529f9cd3e527fb8d657b338bb4fd7a (diff)
downloadexternal_webkit-b03ba594dfb7cae54557397a2a86b0a926da4685.zip
external_webkit-b03ba594dfb7cae54557397a2a86b0a926da4685.tar.gz
external_webkit-b03ba594dfb7cae54557397a2a86b0a926da4685.tar.bz2
Plumb a bool through to Java to supress auth dialog.
In the case of a prefetch or favicon load, we want to silently fail auth loads but allow the use of cached credentials. To acheive this, pass an extra flag through to Java to decide whether to show the prompt or not. Requires: frameworks/base change: Ida5708aad7cbe5633106e9ae2997c9231aaf95b8 packages/apps/Browser change: Id901855830bbe17ede8a18293cff2bbc0aad4ba8 Bug: 5094761 Change-Id: If8c6f22e8307e1e13b8f7ad29f79305ce24b3255
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebRequest.cpp4
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebResourceRequest.cpp11
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp4
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.h2
-rw-r--r--Source/WebKit/android/jni/WebCoreFrameBridge.cpp6
-rw-r--r--Source/WebKit/android/jni/WebCoreFrameBridge.h2
6 files changed, 21 insertions, 8 deletions
diff --git a/Source/WebKit/android/WebCoreSupport/WebRequest.cpp b/Source/WebKit/android/WebCoreSupport/WebRequest.cpp
index 85460bd..90b0939 100644
--- a/Source/WebKit/android/WebCoreSupport/WebRequest.cpp
+++ b/Source/WebKit/android/WebCoreSupport/WebRequest.cpp
@@ -395,8 +395,10 @@ void WebRequest::OnAuthRequired(net::URLRequest* request, net::AuthChallengeInfo
bool firstTime = (m_authRequestCount == 0);
++m_authRequestCount;
+ bool suppressDialog = (request->load_flags() & net::LOAD_DO_NOT_PROMPT_FOR_LOGIN);
+
m_urlLoader->maybeCallOnMainThread(NewRunnableMethod(
- m_urlLoader.get(), &WebUrlLoaderClient::authRequired, authInfoPtr, firstTime));
+ m_urlLoader.get(), &WebUrlLoaderClient::authRequired, authInfoPtr, firstTime, suppressDialog));
}
// Called when we received an SSL certificate error. The delegate will provide
diff --git a/Source/WebKit/android/WebCoreSupport/WebResourceRequest.cpp b/Source/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
index 9b70fce..2ede1ca 100644
--- a/Source/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
+++ b/Source/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
@@ -62,6 +62,17 @@ WebResourceRequest::WebResourceRequest(const WebCore::ResourceRequest& resourceR
}
+ switch (resourceRequest.targetType()) {
+ case ResourceRequest::TargetIsPrefetch:
+ m_loadFlags |= (net::LOAD_PREFETCH | net::LOAD_DO_NOT_PROMPT_FOR_LOGIN);
+ break;
+ case ResourceRequest::TargetIsFavicon:
+ m_loadFlags |= net::LOAD_DO_NOT_PROMPT_FOR_LOGIN;
+ break;
+ default: break;
+ }
+
+
// Set the request headers
const HTTPHeaderMap& map = resourceRequest.httpHeaderFields();
for (HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it) {
diff --git a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
index 9ee0de2..56a9539 100644
--- a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
+++ b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.cpp
@@ -469,7 +469,7 @@ void WebUrlLoaderClient::didFinishLoading()
finish();
}
-void WebUrlLoaderClient::authRequired(scoped_refptr<net::AuthChallengeInfo> authChallengeInfo, bool firstTime)
+void WebUrlLoaderClient::authRequired(scoped_refptr<net::AuthChallengeInfo> authChallengeInfo, bool firstTime, bool suppressDialog)
{
if (!isActive())
return;
@@ -477,7 +477,7 @@ void WebUrlLoaderClient::authRequired(scoped_refptr<net::AuthChallengeInfo> auth
std::string host = base::SysWideToUTF8(authChallengeInfo->host_and_port);
std::string realm = base::SysWideToUTF8(authChallengeInfo->realm);
- m_webFrame->didReceiveAuthenticationChallenge(this, host, realm, firstTime);
+ m_webFrame->didReceiveAuthenticationChallenge(this, host, realm, firstTime, suppressDialog);
}
void WebUrlLoaderClient::reportSslCertError(int cert_error, net::X509Certificate* cert)
diff --git a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.h b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.h
index dc7e8d5..5f03339 100644
--- a/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.h
+++ b/Source/WebKit/android/WebCoreSupport/WebUrlLoaderClient.h
@@ -90,7 +90,7 @@ public:
void didFinishLoading();
void didFail(PassOwnPtr<WebResponse>);
void willSendRequest(PassOwnPtr<WebResponse>);
- void authRequired(scoped_refptr<net::AuthChallengeInfo>, bool firstTime);
+ void authRequired(scoped_refptr<net::AuthChallengeInfo>, bool firstTime, bool suppressDialog);
void reportSslCertError(int cert_error, net::X509Certificate* cert);
void requestClientCert(net::SSLCertRequestInfo* cert);
diff --git a/Source/WebKit/android/jni/WebCoreFrameBridge.cpp b/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
index c08e629..6a1a19f 100644
--- a/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
+++ b/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
@@ -287,7 +287,7 @@ WebFrame::WebFrame(JNIEnv* env, jobject obj, jobject historyList, WebCore::Page*
mJavaFrame->mGetFileSize = env->GetMethodID(clazz, "getFileSize", "(Ljava/lang/String;)I");
mJavaFrame->mGetFile = env->GetMethodID(clazz, "getFile", "(Ljava/lang/String;[BII)I");
mJavaFrame->mDidReceiveAuthenticationChallenge = env->GetMethodID(clazz, "didReceiveAuthenticationChallenge",
- "(ILjava/lang/String;Ljava/lang/String;Z)V");
+ "(ILjava/lang/String;Ljava/lang/String;ZZ)V");
mJavaFrame->mReportSslCertError = env->GetMethodID(clazz, "reportSslCertError", "(II[BLjava/lang/String;)V");
mJavaFrame->mRequestClientCert = env->GetMethodID(clazz, "requestClientCert", "(I[B)V");
mJavaFrame->mDownloadStart = env->GetMethodID(clazz, "downloadStart",
@@ -967,7 +967,7 @@ WebFrame::density() const
#if USE(CHROME_NETWORK_STACK)
void
-WebFrame::didReceiveAuthenticationChallenge(WebUrlLoaderClient* client, const std::string& host, const std::string& realm, bool useCachedCredentials)
+WebFrame::didReceiveAuthenticationChallenge(WebUrlLoaderClient* client, const std::string& host, const std::string& realm, bool useCachedCredentials, bool suppressDialog)
{
#ifdef ANDROID_INSTRUMENT
TimeCounterAuto counter(TimeCounter::JavaCallbackTimeCounter);
@@ -980,7 +980,7 @@ WebFrame::didReceiveAuthenticationChallenge(WebUrlLoaderClient* client, const st
jstring jHost = stdStringToJstring(env, host, true);
jstring jRealm = stdStringToJstring(env, realm, true);
- env->CallVoidMethod(javaFrame.get(), mJavaFrame->mDidReceiveAuthenticationChallenge, jHandle, jHost, jRealm, useCachedCredentials);
+ env->CallVoidMethod(javaFrame.get(), mJavaFrame->mDidReceiveAuthenticationChallenge, jHandle, jHost, jRealm, useCachedCredentials, suppressDialog);
env->DeleteLocalRef(jHost);
env->DeleteLocalRef(jRealm);
checkException(env);
diff --git a/Source/WebKit/android/jni/WebCoreFrameBridge.h b/Source/WebKit/android/jni/WebCoreFrameBridge.h
index 0a8fe8b..f02c1e9 100644
--- a/Source/WebKit/android/jni/WebCoreFrameBridge.h
+++ b/Source/WebKit/android/jni/WebCoreFrameBridge.h
@@ -115,7 +115,7 @@ class WebFrame : public WebCoreRefObject {
float density() const;
- void didReceiveAuthenticationChallenge(WebUrlLoaderClient*, const std::string& host, const std::string& realm, bool useCachedCredentials);
+ void didReceiveAuthenticationChallenge(WebUrlLoaderClient*, const std::string& host, const std::string& realm, bool useCachedCredentials, bool suppressDialog);
void reportSslCertError(WebUrlLoaderClient* client, int cert_error, const std::string& cert, const std::string& url);