Index: content/browser/frame_host/render_frame_message_filter.cc |
diff --git a/content/browser/frame_host/render_frame_message_filter.cc b/content/browser/frame_host/render_frame_message_filter.cc |
index a1ccf839d0aead6e9b7e3f9efb59b597cec057f6..a4a91b09e4869065e1ba2ea995e6442ea2a7d189 100644 |
--- a/content/browser/frame_host/render_frame_message_filter.cc |
+++ b/content/browser/frame_host/render_frame_message_filter.cc |
@@ -212,6 +212,7 @@ RenderFrameMessageFilter::RenderFrameMessageFilter( |
net::URLRequestContextGetter* request_context, |
RenderWidgetHelper* render_widget_helper) |
: BrowserMessageFilter(FrameMsgStart), |
+ BrowserAssociatedInterface<mojom::RenderFrameMessageFilter>(this, this), |
#if defined(ENABLE_PLUGINS) |
plugin_service_(plugin_service), |
profile_data_directory_(browser_context->GetPath()), |
@@ -232,7 +233,6 @@ bool RenderFrameMessageFilter::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(RenderFrameMessageFilter, message) |
IPC_MESSAGE_HANDLER(FrameHostMsg_CreateChildFrame, OnCreateChildFrame) |
- IPC_MESSAGE_HANDLER(FrameHostMsg_SetCookie, OnSetCookie) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(FrameHostMsg_GetCookies, OnGetCookies) |
IPC_MESSAGE_HANDLER(FrameHostMsg_CookiesEnabled, OnCookiesEnabled) |
IPC_MESSAGE_HANDLER(FrameHostMsg_DownloadUrl, OnDownloadUrl) |
@@ -261,6 +261,10 @@ bool RenderFrameMessageFilter::OnMessageReceived(const IPC::Message& message) { |
return handled; |
} |
+void RenderFrameMessageFilter::OnDestruct() const { |
+ BrowserThread::DeleteOnIOThread::Destruct(this); |
+} |
+ |
void RenderFrameMessageFilter::DownloadUrl(int render_view_id, |
int render_frame_id, |
const GURL& url, |
@@ -304,39 +308,6 @@ void RenderFrameMessageFilter::OnCreateChildFrame( |
params.frame_owner_properties, *new_routing_id)); |
} |
-void RenderFrameMessageFilter::OnSetCookie(int render_frame_id, |
- const GURL& url, |
- const GURL& first_party_for_cookies, |
- const std::string& cookie) { |
- ChildProcessSecurityPolicyImpl* policy = |
- ChildProcessSecurityPolicyImpl::GetInstance(); |
- if (!policy->CanAccessDataForOrigin(render_process_id_, url)) { |
- bad_message::ReceivedBadMessage(this, |
- bad_message::RFMF_SET_COOKIE_BAD_ORIGIN); |
- return; |
- } |
- |
- net::CookieOptions options; |
- bool experimental_web_platform_features_enabled = |
- base::CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kEnableExperimentalWebPlatformFeatures); |
- const std::string enforce_strict_secure_group = |
- base::FieldTrialList::FindFullName(kEnforceStrictSecureExperiment); |
- if (experimental_web_platform_features_enabled || |
- base::StartsWith(enforce_strict_secure_group, "Enabled", |
- base::CompareCase::INSENSITIVE_ASCII)) { |
- options.set_enforce_strict_secure(); |
- } |
- if (GetContentClient()->browser()->AllowSetCookie( |
- url, first_party_for_cookies, cookie, resource_context_, |
- render_process_id_, render_frame_id, options)) { |
- net::URLRequestContext* context = GetRequestContextForURL(url); |
- // Pass a null callback since we don't care about when the 'set' completes. |
- context->cookie_store()->SetCookieWithOptionsAsync( |
- url, cookie, options, net::CookieStore::SetCookiesCallback()); |
- } |
-} |
- |
void RenderFrameMessageFilter::OnGetCookies(int render_frame_id, |
const GURL& url, |
const GURL& first_party_for_cookies, |
@@ -460,6 +431,39 @@ void RenderFrameMessageFilter::OnRenderProcessGone() { |
this, bad_message::RFMF_RENDERER_FAKED_ITS_OWN_DEATH); |
} |
+void RenderFrameMessageFilter::SetCookie(int32_t render_frame_id, |
+ const GURL& url, |
+ const GURL& first_party_for_cookies, |
+ const mojo::String& cookie) { |
+ ChildProcessSecurityPolicyImpl* policy = |
+ ChildProcessSecurityPolicyImpl::GetInstance(); |
+ if (!policy->CanAccessDataForOrigin(render_process_id_, url)) { |
+ bad_message::ReceivedBadMessage(this, |
+ bad_message::RFMF_SET_COOKIE_BAD_ORIGIN); |
+ return; |
+ } |
+ |
+ net::CookieOptions options; |
+ bool experimental_web_platform_features_enabled = |
+ base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableExperimentalWebPlatformFeatures); |
+ const std::string enforce_strict_secure_group = |
+ base::FieldTrialList::FindFullName(kEnforceStrictSecureExperiment); |
+ if (experimental_web_platform_features_enabled || |
+ base::StartsWith(enforce_strict_secure_group, "Enabled", |
+ base::CompareCase::INSENSITIVE_ASCII)) { |
+ options.set_enforce_strict_secure(); |
+ } |
+ if (GetContentClient()->browser()->AllowSetCookie( |
+ url, first_party_for_cookies, cookie, resource_context_, |
+ render_process_id_, render_frame_id, options)) { |
+ net::URLRequestContext* context = GetRequestContextForURL(url); |
+ // Pass a null callback since we don't care about when the 'set' completes. |
+ context->cookie_store()->SetCookieWithOptionsAsync( |
+ url, cookie, options, net::CookieStore::SetCookiesCallback()); |
+ } |
+} |
+ |
#if defined(ENABLE_PLUGINS) |
void RenderFrameMessageFilter::OnGetPlugins( |