summaryrefslogtreecommitdiffstats
path: root/webkit/api
diff options
context:
space:
mode:
authorlevin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-26 23:11:35 +0000
committerlevin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-26 23:11:35 +0000
commitd80a585deb9565e83276c3e0042014b2412b4efa (patch)
tree4cd96ca5b04f239246e58c1a695337b553655ce7 /webkit/api
parent49672df7e74a0633a0ee92e89b4daff904765638 (diff)
downloadchromium_src-d80a585deb9565e83276c3e0042014b2412b4efa.zip
chromium_src-d80a585deb9565e83276c3e0042014b2412b4efa.tar.gz
chromium_src-d80a585deb9565e83276c3e0042014b2412b4efa.tar.bz2
Add WebKit api support for allowing/disallowing stored
credentials and cookies from being sent to along with a request. I added the parameter for credentials to WebURLRequestPrivate since it isn't in ResourceRequest for now and then checked all places that do WebURLRequest::toMutableResourceRequest() or WebURLRequest::toResourceRequest() to ensure that they were not loosing information. Right now, there is a non-orthogonal relationship between setAllowStoredCredentials and setAllowCookies which is a carry over from WebKit but I could change this to make setAllowStoredCredentials only refer to user name/password if it thought that this is better. TEST=Covered by layout tests. BUG=http://crbug.com/10961 Review URL: http://codereview.chromium.org/174495 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24555 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/api')
-rw-r--r--webkit/api/public/WebURLRequest.h8
-rw-r--r--webkit/api/src/ResourceHandle.cpp10
-rw-r--r--webkit/api/src/WebURLRequest.cpp20
-rw-r--r--webkit/api/src/WebURLRequestPrivate.h3
4 files changed, 39 insertions, 2 deletions
diff --git a/webkit/api/public/WebURLRequest.h b/webkit/api/public/WebURLRequest.h
index 1f3b506..0cdd71b 100644
--- a/webkit/api/public/WebURLRequest.h
+++ b/webkit/api/public/WebURLRequest.h
@@ -88,6 +88,14 @@ namespace WebKit {
WEBKIT_API WebURL firstPartyForCookies() const;
WEBKIT_API void setFirstPartyForCookies(const WebURL&);
+ WEBKIT_API bool allowCookies() const;
+ WEBKIT_API void setAllowCookies(bool allowCookies);
+
+ // Controls whether user name, password, and cookies may be sent with the
+ // request. (If false, this overrides allowCookies.)
+ WEBKIT_API bool allowStoredCredentials() const;
+ WEBKIT_API void setAllowStoredCredentials(bool allowStoredCredentials);
+
WEBKIT_API CachePolicy cachePolicy() const;
WEBKIT_API void setCachePolicy(CachePolicy);
diff --git a/webkit/api/src/ResourceHandle.cpp b/webkit/api/src/ResourceHandle.cpp
index ef398e9..06881bf 100644
--- a/webkit/api/src/ResourceHandle.cpp
+++ b/webkit/api/src/ResourceHandle.cpp
@@ -62,6 +62,7 @@ public:
void start();
void cancel();
void setDefersLoading(bool);
+ bool allowStoredCredentials() const;
// WebURLLoaderClient methods:
virtual void willSendRequest(WebURLLoader*, WebURLRequest&, const WebURLResponse&);
@@ -85,6 +86,7 @@ void ResourceHandleInternal::start()
ASSERT(m_loader.get());
WrappedResourceRequest wrappedRequest(m_request);
+ wrappedRequest.setAllowStoredCredentials(allowStoredCredentials());
m_loader->loadAsynchronously(wrappedRequest, this);
}
@@ -101,6 +103,11 @@ void ResourceHandleInternal::setDefersLoading(bool value)
m_loader->setDefersLoading(value);
}
+bool ResourceHandleInternal::allowStoredCredentials() const
+{
+ return m_client && m_client->shouldUseCredentialStorage(m_owner);
+}
+
void ResourceHandleInternal::willSendRequest(
WebURLLoader*, WebURLRequest& request, const WebURLResponse& response)
{
@@ -237,7 +244,7 @@ bool ResourceHandle::supportsBufferedData()
// static
void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request,
- StoredCredentials unused,
+ StoredCredentials storedCredentials,
ResourceError& error,
ResourceResponse& response,
Vector<char>& data,
@@ -247,6 +254,7 @@ void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request,
ASSERT(loader.get());
WrappedResourceRequest requestIn(request);
+ requestIn.setAllowStoredCredentials(storedCredentials == AllowStoredCredentials);
WrappedResourceResponse responseOut(response);
WebURLError errorOut;
WebData dataOut;
diff --git a/webkit/api/src/WebURLRequest.cpp b/webkit/api/src/WebURLRequest.cpp
index 579b544..08828f9 100644
--- a/webkit/api/src/WebURLRequest.cpp
+++ b/webkit/api/src/WebURLRequest.cpp
@@ -103,6 +103,26 @@ void WebURLRequest::setFirstPartyForCookies(const WebURL& firstPartyForCookies)
m_private->m_resourceRequest->setFirstPartyForCookies(firstPartyForCookies);
}
+bool WebURLRequest::allowCookies() const
+{
+ return m_private->m_resourceRequest->allowHTTPCookies();
+}
+
+void WebURLRequest::setAllowCookies(bool allowCookies)
+{
+ m_private->m_resourceRequest->setAllowHTTPCookies(allowCookies);
+}
+
+bool WebURLRequest::allowStoredCredentials() const
+{
+ return m_private->m_allowStoredCredentials;
+}
+
+void WebURLRequest::setAllowStoredCredentials(bool allowStoredCredentials)
+{
+ m_private->m_allowStoredCredentials = allowStoredCredentials;
+}
+
WebURLRequest::CachePolicy WebURLRequest::cachePolicy() const
{
return static_cast<WebURLRequest::CachePolicy>(
diff --git a/webkit/api/src/WebURLRequestPrivate.h b/webkit/api/src/WebURLRequestPrivate.h
index 5c95a6f..79fe96a 100644
--- a/webkit/api/src/WebURLRequestPrivate.h
+++ b/webkit/api/src/WebURLRequestPrivate.h
@@ -37,12 +37,13 @@ namespace WebKit {
class WebURLRequestPrivate {
public:
- WebURLRequestPrivate() : m_resourceRequest(0) { }
+ WebURLRequestPrivate() : m_resourceRequest(0), m_allowStoredCredentials(true) { }
// Called by WebURLRequest when it no longer needs this object.
virtual void dispose() = 0;
WebCore::ResourceRequest* m_resourceRequest;
+ bool m_allowStoredCredentials;
};
} // namespace WebKit