diff options
-rw-r--r-- | chrome/browser/renderer_host/resource_message_filter.cc | 10 | ||||
-rw-r--r-- | chrome/browser/renderer_host/resource_message_filter.h | 3 | ||||
-rw-r--r-- | chrome/common/render_messages_internal.h | 6 | ||||
-rw-r--r-- | chrome/renderer/renderer_webkitclient_impl.cc | 9 | ||||
-rw-r--r-- | chrome/renderer/renderer_webkitclient_impl.h | 2 |
5 files changed, 30 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc index 82e964c..3821384 100644 --- a/chrome/browser/renderer_host/resource_message_filter.cc +++ b/chrome/browser/renderer_host/resource_message_filter.cc @@ -305,6 +305,7 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(ViewHostMsg_GetCookies, OnGetCookies) IPC_MESSAGE_HANDLER(ViewHostMsg_GetRawCookies, OnGetRawCookies) IPC_MESSAGE_HANDLER(ViewHostMsg_DeleteCookie, OnDeleteCookie) + IPC_MESSAGE_HANDLER(ViewHostMsg_GetCookiesEnabled, OnGetCookiesEnabled) #if defined(OS_WIN) // This hack is Windows-specific. IPC_MESSAGE_HANDLER(ViewHostMsg_LoadFont, OnLoadFont) #endif @@ -541,6 +542,15 @@ void ResourceMessageFilter::OnDeleteCookie(const GURL& url, context->cookie_store()->DeleteCookie(url, cookie_name); } +void ResourceMessageFilter::OnGetCookiesEnabled( + const GURL& url, + const GURL& first_party_for_cookies, + bool* enabled) { + URLRequestContext* context = GetRequestContextForURL(url); + *enabled = + context->cookie_policy()->type() != net::CookiePolicy::BLOCK_ALL_COOKIES; +} + #if defined(OS_WIN) // This hack is Windows-specific. void ResourceMessageFilter::OnLoadFont(LOGFONT font) { // If renderer is running in a sandbox, GetTextMetrics diff --git a/chrome/browser/renderer_host/resource_message_filter.h b/chrome/browser/renderer_host/resource_message_filter.h index 89db5d7..0da26f0f 100644 --- a/chrome/browser/renderer_host/resource_message_filter.h +++ b/chrome/browser/renderer_host/resource_message_filter.h @@ -129,6 +129,9 @@ class ResourceMessageFilter : public IPC::ChannelProxy::MessageFilter, std::vector<webkit_glue::WebCookie>* raw_cookies); void OnDeleteCookie(const GURL& url, const std::string& cookieName); + void OnGetCookiesEnabled(const GURL& url, + const GURL& first_party_for_cookies, + bool* enabled); void OnPluginFileDialog(const IPC::Message& msg, bool multiple_files, const std::wstring& title, diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h index 3ab66e2..dde0fe7 100644 --- a/chrome/common/render_messages_internal.h +++ b/chrome/common/render_messages_internal.h @@ -1064,6 +1064,12 @@ IPC_BEGIN_MESSAGES(ViewHost) GURL /* url */, std::string /* cookie_name */) + // Used to get raw cookie information for the given URL + IPC_SYNC_MESSAGE_CONTROL2_1(ViewHostMsg_GetCookiesEnabled, + GURL /* url */, + GURL /* first_party_for_cookies */, + bool /* enabled */) + // Used to get the list of plugins IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_GetPlugins, bool /* refresh*/, diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc index 290c011..2dcf582 100644 --- a/chrome/renderer/renderer_webkitclient_impl.cc +++ b/chrome/renderer/renderer_webkitclient_impl.cc @@ -158,6 +158,15 @@ void RendererWebKitClientImpl::deleteCookie(const WebURL& url, new ViewHostMsg_DeleteCookie(url, cookie_name_utf8)); } +bool RendererWebKitClientImpl::cookiesEnabled( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies) { + bool enabled; + RenderThread::current()->Send( + new ViewHostMsg_GetCookiesEnabled( + url, first_party_for_cookies, &enabled)); + return enabled; +} + void RendererWebKitClientImpl::prefetchHostName(const WebString& hostname) { if (!hostname.isEmpty()) { std::string hostname_utf8; diff --git a/chrome/renderer/renderer_webkitclient_impl.h b/chrome/renderer/renderer_webkitclient_impl.h index eb77dce..2388d07 100644 --- a/chrome/renderer/renderer_webkitclient_impl.h +++ b/chrome/renderer/renderer_webkitclient_impl.h @@ -44,6 +44,8 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl { WebKit::WebVector<WebKit::WebCookie>* raw_cookies); virtual void deleteCookie(const WebKit::WebURL& url, const WebKit::WebString& cookie_name); + virtual bool cookiesEnabled(const WebKit::WebURL& url, + const WebKit::WebURL& first_party_for_cookies); virtual void prefetchHostName(const WebKit::WebString&); virtual WebKit::WebString defaultLocale(); virtual void suddenTerminationChanged(bool enabled); |