diff options
author | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 23:11:35 +0000 |
---|---|---|
committer | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 23:11:35 +0000 |
commit | d80a585deb9565e83276c3e0042014b2412b4efa (patch) | |
tree | 4cd96ca5b04f239246e58c1a695337b553655ce7 /webkit/api | |
parent | 49672df7e74a0633a0ee92e89b4daff904765638 (diff) | |
download | chromium_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.h | 8 | ||||
-rw-r--r-- | webkit/api/src/ResourceHandle.cpp | 10 | ||||
-rw-r--r-- | webkit/api/src/WebURLRequest.cpp | 20 | ||||
-rw-r--r-- | webkit/api/src/WebURLRequestPrivate.h | 3 |
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 |