diff --git a/chrome/browser/renderer_host/render_message_filter.cc b/chrome/browser/renderer_host/render_message_filter.cc index 5fa92ec271e56a143b3d57e126bc72ae8bb79d9f..05b40aa9f49d6ed2d84b94cfa56b01a27d62b8b0 100644 --- a/chrome/browser/renderer_host/render_message_filter.cc +++ b/chrome/browser/renderer_host/render_message_filter.cc @@ -240,6 +240,7 @@ RenderMessageFilter::RenderMessageFilter( plugin_service_(plugin_service), print_job_manager_(print_job_manager), profile_(profile), + content_settings_(profile->GetHostContentSettingsMap()), ALLOW_THIS_IN_INITIALIZER_LIST(resolve_proxy_msg_helper_(this, NULL)), media_request_context_(profile->GetRequestContextForMedia()), extensions_request_context_(profile->GetRequestContextForExtensions()), @@ -578,7 +579,9 @@ void RenderMessageFilter::OnSetCookie(const IPC::Message& message, // If this render view is associated with an automation channel, aka // ChromeFrame then we need to set cookies in the external host. - if (!AutomationResourceMessageFilter::SetCookiesForUrl(url, cookie, callback)) { + if (!AutomationResourceMessageFilter::SetCookiesForUrl(url, + cookie, + callback)) { int policy = net::OK; if (context->cookie_policy()) { policy = context->cookie_policy()->CanSetCookie( @@ -787,12 +790,12 @@ void RenderMessageFilter::OnGotPluginInfo(bool found, if (found) { info_copy.enabled = info_copy.enabled && plugin_service_->PrivatePluginAllowedForURL(info_copy.path, policy_url); - HostContentSettingsMap* map = profile_->GetHostContentSettingsMap(); std::string resource = NPAPI::PluginList::Singleton()->GetPluginGroupIdentifier(info_copy); - setting = map->GetContentSetting(policy_url, - CONTENT_SETTINGS_TYPE_PLUGINS, - resource); + setting = content_settings_->GetContentSetting( + policy_url, + CONTENT_SETTINGS_TYPE_PLUGINS, + resource); } ViewHostMsg_GetPluginInfo::WriteReplyParams( diff --git a/chrome/browser/renderer_host/render_message_filter.h b/chrome/browser/renderer_host/render_message_filter.h index e912aaa06cec387e7489624edf8d5a778ca44a95..d783afd05f3fc4e063e59513d21825eba3ef2bef 100644 --- a/chrome/browser/renderer_host/render_message_filter.h +++ b/chrome/browser/renderer_host/render_message_filter.h @@ -34,6 +34,7 @@ class ChromeURLRequestContext; struct FontDescriptor; +class HostContentSettingsMap; class HostZoomMap; class NotificationsPrefsCache; class PpapiPluginProcessHost; @@ -413,6 +414,10 @@ class RenderMessageFilter : public IPC::ChannelProxy::MessageFilter, // accessed on the UI thread! Profile* profile_; + // The host content settings map. Stored separately from the profile so we can + // access it on other threads. + HostContentSettingsMap* content_settings_; + // Helper class for handling PluginProcessHost_ResolveProxy messages (manages // the requests to the proxy service). ResolveProxyMsgHelper resolve_proxy_msg_helper_;