summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/renderer_host/resource_message_filter.cc10
-rw-r--r--chrome/browser/renderer_host/resource_message_filter.h3
-rw-r--r--chrome/common/render_messages_internal.h6
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc9
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.h2
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);