diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-29 02:58:07 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-29 02:58:07 +0000 |
commit | a1e6ad0532c7537ee72bcdce23fe8a8932114b5e (patch) | |
tree | 31800c70679ae35080f3dde03c0a3c9af929caa9 /content | |
parent | 99f8e0d06b19334c93fd15b9e74feedc8971fa37 (diff) | |
download | chromium_src-a1e6ad0532c7537ee72bcdce23fe8a8932114b5e.zip chromium_src-a1e6ad0532c7537ee72bcdce23fe8a8932114b5e.tar.gz chromium_src-a1e6ad0532c7537ee72bcdce23fe8a8932114b5e.tar.bz2 |
Remove ChromeURLRequestContext from content/.
Takes the last remaining uses and kills them, or moves them into ResourceContext.
Some of the additions to ResourceContext don't belong there either and will need to be removed.
BUG=77086,78596
TEST=none
Review URL: http://codereview.chromium.org/6880263
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
21 files changed, 168 insertions, 84 deletions
diff --git a/content/browser/DEPS b/content/browser/DEPS index 8c9b855..eb3b4a8 100644 --- a/content/browser/DEPS +++ b/content/browser/DEPS @@ -4,8 +4,6 @@ include_rules = [ # Listing of the remaining #chrome includes in content\browser. People are
# actively working on reducing this to 0. Do not add anymore!
- "+chrome/browser/net/chrome_url_request_context.h", # going away in http://codereview.chromium.org/6880263/
-
# jam will move asap, this was forgotten
"+chrome/browser/renderer_host/render_view_host_delegate.h",
diff --git a/content/browser/appcache/appcache_dispatcher_host.cc b/content/browser/appcache/appcache_dispatcher_host.cc index 668c34f..b52d62e 100644 --- a/content/browser/appcache/appcache_dispatcher_host.cc +++ b/content/browser/appcache/appcache_dispatcher_host.cc @@ -5,7 +5,6 @@ #include "content/browser/appcache/appcache_dispatcher_host.h" #include "base/callback.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "content/browser/appcache/chrome_appcache_service.h" #include "content/browser/resource_context.h" #include "content/browser/user_metrics.h" diff --git a/content/browser/appcache/chrome_appcache_service.h b/content/browser/appcache/chrome_appcache_service.h index 8314e48..6b0c1e9 100644 --- a/content/browser/appcache/chrome_appcache_service.h +++ b/content/browser/appcache/chrome_appcache_service.h @@ -14,7 +14,6 @@ #include "webkit/appcache/appcache_service.h" #include "webkit/quota/special_storage_policy.h" -class ChromeURLRequestContext; class FilePath; // An AppCacheService subclass used by the chrome. There is an instance diff --git a/content/browser/appcache/view_appcache_internals_job_factory.cc b/content/browser/appcache/view_appcache_internals_job_factory.cc index 42478d1..a797672 100644 --- a/content/browser/appcache/view_appcache_internals_job_factory.cc +++ b/content/browser/appcache/view_appcache_internals_job_factory.cc @@ -5,10 +5,9 @@ #include "content/browser/appcache/view_appcache_internals_job_factory.h" #include "base/string_util.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/common/url_constants.h" +#include "content/browser/appcache/chrome_appcache_service.h" #include "net/url_request/url_request.h" -#include "webkit/appcache/appcache_service.h" #include "webkit/appcache/view_appcache_internals_job.h" // static. @@ -20,10 +19,7 @@ bool ViewAppCacheInternalsJobFactory::IsSupportedURL(const GURL& url) { // static. net::URLRequestJob* ViewAppCacheInternalsJobFactory::CreateJobForRequest( - net::URLRequest* request) { - net::URLRequestContext* context = request->context(); - ChromeURLRequestContext* chrome_request_context = - reinterpret_cast<ChromeURLRequestContext*>(context); + net::URLRequest* request, ChromeAppCacheService* appcache_service) { return new appcache::ViewAppCacheInternalsJob( - request, chrome_request_context->appcache_service()); + request, appcache_service); } diff --git a/content/browser/appcache/view_appcache_internals_job_factory.h b/content/browser/appcache/view_appcache_internals_job_factory.h index d488b01..4b093c8 100644 --- a/content/browser/appcache/view_appcache_internals_job_factory.h +++ b/content/browser/appcache/view_appcache_internals_job_factory.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -6,17 +6,19 @@ #define CONTENT_BROWSER_APPCACHE_VIEW_APPCACHE_INTERNALS_JOB_FACTORY_H_ #pragma once +class ChromeAppCacheService; +class GURL; namespace net { class URLRequest; class URLRequestJob; } // namespace net -class GURL; - class ViewAppCacheInternalsJobFactory { public: static bool IsSupportedURL(const GURL& url); - static net::URLRequestJob* CreateJobForRequest(net::URLRequest* request); + static net::URLRequestJob* CreateJobForRequest( + net::URLRequest* request, + ChromeAppCacheService* appcache_service); }; #endif // CONTENT_BROWSER_APPCACHE_VIEW_APPCACHE_INTERNALS_JOB_FACTORY_H_ diff --git a/content/browser/file_system/file_system_dispatcher_host.cc b/content/browser/file_system/file_system_dispatcher_host.cc index 5fcbc2e..7989f604 100644 --- a/content/browser/file_system/file_system_dispatcher_host.cc +++ b/content/browser/file_system/file_system_dispatcher_host.cc @@ -12,7 +12,6 @@ #include "base/threading/thread.h" #include "base/time.h" #include "chrome/browser/content_settings/host_content_settings_map.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/browser/profiles/profile.h" #include "content/browser/resource_context.h" #include "content/common/file_system_messages.h" @@ -117,10 +116,11 @@ FileSystemDispatcherHost::FileSystemDispatcherHost( } FileSystemDispatcherHost::FileSystemDispatcherHost( - ChromeURLRequestContext* request_context, + net::URLRequestContext* request_context, + HostContentSettingsMap* host_content_settings_map, fileapi::FileSystemContext* file_system_context) : context_(file_system_context), - host_content_settings_map_(request_context->host_content_settings_map()), + host_content_settings_map_(host_content_settings_map), resource_context_(NULL), request_context_(request_context) { DCHECK(request_context_); diff --git a/content/browser/file_system/file_system_dispatcher_host.h b/content/browser/file_system/file_system_dispatcher_host.h index 440f20b..33203d1 100644 --- a/content/browser/file_system/file_system_dispatcher_host.h +++ b/content/browser/file_system/file_system_dispatcher_host.h @@ -12,7 +12,6 @@ #include "content/browser/browser_message_filter.h" #include "webkit/fileapi/file_system_types.h" -class ChromeURLRequestContext; class GURL; class HostContentSettingsMap; class Profile; @@ -34,7 +33,6 @@ class FileSystemOperation; namespace net { class URLRequestContext; -class URLRequestContextGetter; } // namespace net class FileSystemDispatcherHost : public BrowserMessageFilter { @@ -44,7 +42,8 @@ class FileSystemDispatcherHost : public BrowserMessageFilter { const content::ResourceContext* resource_context, HostContentSettingsMap* host_content_settings_map); // Used by the worker, since it has the context handy already. - FileSystemDispatcherHost(ChromeURLRequestContext* request_context, + FileSystemDispatcherHost(net::URLRequestContext* request_context, + HostContentSettingsMap* host_content_settings_map, fileapi::FileSystemContext* file_system_context); ~FileSystemDispatcherHost(); diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc index c975903..735266c 100644 --- a/content/browser/renderer_host/async_resource_handler.cc +++ b/content/browser/renderer_host/async_resource_handler.cc @@ -11,9 +11,10 @@ #include "base/logging.h" #include "base/shared_memory.h" #include "chrome/browser/debugger/devtools_netlog_observer.h" -#include "chrome/browser/net/chrome_url_request_context.h" +#include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/net/load_timing_observer.h" #include "chrome/common/render_messages.h" +#include "content/browser/host_zoom_map.h" #include "content/browser/renderer_host/global_request_id.h" #include "content/browser/renderer_host/resource_dispatcher_host.h" #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h" @@ -80,9 +81,13 @@ AsyncResourceHandler::AsyncResourceHandler( ResourceMessageFilter* filter, int routing_id, const GURL& url, + HostZoomMap* host_zoom_map, + HostContentSettingsMap* host_content_settings_map, ResourceDispatcherHost* resource_dispatcher_host) : filter_(filter), routing_id_(routing_id), + host_zoom_map_(host_zoom_map), + host_content_settings_map_(host_content_settings_map), rdh_(resource_dispatcher_host), next_buffer_size_(kInitialReadBufSize) { } @@ -124,18 +129,15 @@ bool AsyncResourceHandler::OnResponseStarted(int request_id, DevToolsNetLogObserver::PopulateResponseInfo(request, response); ResourceDispatcherHostRequestInfo* info = rdh_->InfoForRequest(request); - if (info->resource_type() == ResourceType::MAIN_FRAME) { + if (info->resource_type() == ResourceType::MAIN_FRAME && + request->context()) { GURL request_url(request->url()); - ChromeURLRequestContext* context = - static_cast<ChromeURLRequestContext*>(request->context()); - if (context) { - filter_->Send(new ViewMsg_SetContentSettingsForLoadingURL( - info->route_id(), request_url, - context->host_content_settings_map()->GetContentSettings( - request_url))); - filter_->Send(new ViewMsg_SetZoomLevelForLoadingURL(info->route_id(), - request_url, context->host_zoom_map()->GetZoomLevel(request_url))); - } + filter_->Send(new ViewMsg_SetContentSettingsForLoadingURL( + info->route_id(), request_url, + host_content_settings_map_->GetContentSettings(request_url))); + filter_->Send(new ViewMsg_SetZoomLevelForLoadingURL( + info->route_id(), + request_url, host_zoom_map_->GetZoomLevel(request_url))); } filter_->Send(new ResourceMsg_ReceivedResponse( diff --git a/content/browser/renderer_host/async_resource_handler.h b/content/browser/renderer_host/async_resource_handler.h index 7046720..8c60256 100644 --- a/content/browser/renderer_host/async_resource_handler.h +++ b/content/browser/renderer_host/async_resource_handler.h @@ -10,6 +10,8 @@ #include "content/browser/renderer_host/resource_handler.h" +class HostContentSettingsMap; +class HostZoomMap; class ResourceDispatcherHost; class ResourceMessageFilter; class SharedIOBuffer; @@ -21,6 +23,8 @@ class AsyncResourceHandler : public ResourceHandler { AsyncResourceHandler(ResourceMessageFilter* filter, int routing_id, const GURL& url, + HostZoomMap* host_zoom_map, + HostContentSettingsMap* host_content_settings_map, ResourceDispatcherHost* resource_dispatcher_host); // ResourceHandler implementation: @@ -46,6 +50,8 @@ class AsyncResourceHandler : public ResourceHandler { scoped_refptr<SharedIOBuffer> read_buffer_; ResourceMessageFilter* filter_; int routing_id_; + HostZoomMap* host_zoom_map_; + HostContentSettingsMap* host_content_settings_map_; ResourceDispatcherHost* rdh_; // |next_buffer_size_| is the size of the buffer to be allocated on the next diff --git a/content/browser/renderer_host/pepper_message_filter.cc b/content/browser/renderer_host/pepper_message_filter.cc index 9cec785..19208ae 100644 --- a/content/browser/renderer_host/pepper_message_filter.cc +++ b/content/browser/renderer_host/pepper_message_filter.cc @@ -7,12 +7,12 @@ #include "base/basictypes.h" #include "base/process_util.h" #include "base/threading/worker_pool.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "content/browser/browser_thread.h" #include "content/browser/renderer_host/browser_render_process_host.h" #include "content/browser/resource_context.h" #include "content/common/pepper_messages.h" #include "net/base/address_list.h" +#include "net/base/net_errors.h" #include "net/base/host_port_pair.h" #include "net/base/host_resolver.h" #include "net/url_request/url_request_context.h" diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc index b6f38c2..16a20be 100644 --- a/content/browser/renderer_host/render_message_filter.cc +++ b/content/browser/renderer_host/render_message_filter.cc @@ -14,9 +14,10 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/automation/automation_resource_message_filter.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/download/download_types.h" #include "chrome/browser/download/download_util.h" -#include "chrome/browser/net/chrome_url_request_context.h" +#include "chrome/browser/extensions/extension_info_map.h" #include "chrome/browser/net/predictor_api.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/desktop_notification_service_factory.h" @@ -44,6 +45,7 @@ #include "content/common/view_messages.h" #include "ipc/ipc_channel_handle.h" #include "net/base/cookie_monster.h" +#include "net/base/cookie_policy.h" #include "net/base/host_resolver_impl.h" #include "net/base/io_buffer.h" #include "net/base/keygen_handler.h" @@ -53,6 +55,7 @@ #include "net/http/http_cache.h" #include "net/http/http_network_layer.h" #include "net/url_request/url_request_context.h" +#include "net/url_request/url_request_context_getter.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebNotificationPresenter.h" #include "webkit/glue/context_menu.h" #include "webkit/glue/webcookie.h" @@ -275,6 +278,7 @@ RenderMessageFilter::RenderMessageFilter( : resource_dispatcher_host_(g_browser_process->resource_dispatcher_host()), plugin_service_(plugin_service), profile_(profile), + extension_info_map_(profile->GetExtensionInfoMap()), content_settings_(profile->GetHostContentSettingsMap()), request_context_(request_context), extensions_request_context_(profile->GetRequestContextForExtensions()), @@ -420,9 +424,7 @@ void RenderMessageFilter::OnMsgCreateWindow( // If the opener is trying to create a background window but doesn't have // the appropriate permission, fail the attempt. if (params.window_container_type == WINDOW_CONTAINER_TYPE_BACKGROUND) { - ChromeURLRequestContext* context = - GetRequestContextForURL(params.opener_url); - if (!context->extension_info_map()->CheckURLAccessToExtensionPermission( + if (!extension_info_map_->CheckURLAccessToExtensionPermission( params.opener_url, Extension::kBackgroundPermission)) { *route_id = MSG_ROUTING_NONE; return; @@ -452,7 +454,7 @@ void RenderMessageFilter::OnSetCookie(const IPC::Message& message, const GURL& url, const GURL& first_party_for_cookies, const std::string& cookie) { - ChromeURLRequestContext* context = GetRequestContextForURL(url); + net::URLRequestContext* context = GetRequestContextForURL(url); SetCookieCompletion* callback = new SetCookieCompletion( render_process_id_, message.routing_id(), url, cookie, context); @@ -474,7 +476,7 @@ void RenderMessageFilter::OnSetCookie(const IPC::Message& message, void RenderMessageFilter::OnGetCookies(const GURL& url, const GURL& first_party_for_cookies, IPC::Message* reply_msg) { - ChromeURLRequestContext* context = GetRequestContextForURL(url); + net::URLRequestContext* context = GetRequestContextForURL(url); GetCookiesCompletion* callback = new GetCookiesCompletion( render_process_id_, reply_msg->routing_id(), url, reply_msg, this, @@ -497,7 +499,7 @@ void RenderMessageFilter::OnGetRawCookies( const GURL& first_party_for_cookies, IPC::Message* reply_msg) { - ChromeURLRequestContext* context = GetRequestContextForURL(url); + net::URLRequestContext* context = GetRequestContextForURL(url); // Only return raw cookies to trusted renderers or if this request is // not targeted to an an external host like ChromeFrame. @@ -673,8 +675,7 @@ void RenderMessageFilter::OnCheckNotificationPermission( const GURL& source_url, int* result) { *result = WebKit::WebNotificationPresenter::PermissionNotAllowed; - ChromeURLRequestContext* context = GetRequestContextForURL(source_url); - if (context->extension_info_map()->CheckURLAccessToExtensionPermission( + if (extension_info_map_->CheckURLAccessToExtensionPermission( source_url, Extension::kNotificationPermission)) { *result = WebKit::WebNotificationPresenter::PermissionAllowed; return; @@ -731,14 +732,13 @@ void RenderMessageFilter::UpdateHostZoomLevelsOnUIThread( } } -ChromeURLRequestContext* RenderMessageFilter::GetRequestContextForURL( +net::URLRequestContext* RenderMessageFilter::GetRequestContextForURL( const GURL& url) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); net::URLRequestContextGetter* context_getter = url.SchemeIs(chrome::kExtensionScheme) ? extensions_request_context_ : request_context_; - return static_cast<ChromeURLRequestContext*>( - context_getter->GetURLRequestContext()); + return context_getter->GetURLRequestContext(); } #if defined(OS_MACOSX) @@ -987,7 +987,7 @@ SetCookieCompletion::SetCookieCompletion(int render_process_id, int render_view_id, const GURL& url, const std::string& cookie_line, - ChromeURLRequestContext* context) + net::URLRequestContext* context) : render_process_id_(render_process_id), render_view_id_(render_view_id), url_(url), @@ -1021,7 +1021,7 @@ GetCookiesCompletion::GetCookiesCompletion(int render_process_id, const GURL& url, IPC::Message* reply_msg, RenderMessageFilter* filter, - ChromeURLRequestContext* context, + net::URLRequestContext* context, bool raw_cookies) : url_(url), reply_msg_(reply_msg), diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h index 266316d..322053e 100644 --- a/content/browser/renderer_host/render_message_filter.h +++ b/content/browser/renderer_host/render_message_filter.h @@ -27,8 +27,8 @@ #include "ui/gfx/native_widget_types.h" #include "ui/gfx/surface/transport_dib.h" -class ChromeURLRequestContext; struct FontDescriptor; +class ExtensionInfoMap; class HostContentSettingsMap; class HostZoomMap; class NotificationsPrefsCache; @@ -86,7 +86,7 @@ class RenderMessageFilter : public BrowserMessageFilter { // Returns either the extension net::URLRequestContext or regular // net::URLRequestContext depending on whether |url| is an extension URL. // Only call on the IO thread. - ChromeURLRequestContext* GetRequestContextForURL(const GURL& url); + net::URLRequestContext* GetRequestContextForURL(const GURL& url); private: friend class BrowserThread; @@ -229,6 +229,10 @@ class RenderMessageFilter : public BrowserMessageFilter { // accessed on the UI thread! Profile* profile_; + // The extension info map. Stored separately from the profile so we can + // access it on other threads. + ExtensionInfoMap* extension_info_map_; + // The host content settings map. Stored separately from the profile so we can // access it on other threads. HostContentSettingsMap* content_settings_; @@ -269,7 +273,7 @@ class SetCookieCompletion : public net::CompletionCallback { int render_view_id, const GURL& url, const std::string& cookie_line, - ChromeURLRequestContext* context); + net::URLRequestContext* context); virtual ~SetCookieCompletion(); virtual void RunWithParams(const Tuple1<int>& params); @@ -287,7 +291,7 @@ class SetCookieCompletion : public net::CompletionCallback { int render_view_id_; GURL url_; std::string cookie_line_; - scoped_refptr<ChromeURLRequestContext> context_; + scoped_refptr<net::URLRequestContext> context_; }; class GetCookiesCompletion : public net::CompletionCallback { @@ -296,7 +300,7 @@ class GetCookiesCompletion : public net::CompletionCallback { int render_view_id, const GURL& url, IPC::Message* reply_msg, RenderMessageFilter* filter, - ChromeURLRequestContext* context, + net::URLRequestContext* context, bool raw_cookies); virtual ~GetCookiesCompletion(); @@ -320,7 +324,7 @@ class GetCookiesCompletion : public net::CompletionCallback { GURL url_; IPC::Message* reply_msg_; scoped_refptr<RenderMessageFilter> filter_; - scoped_refptr<ChromeURLRequestContext> context_; + scoped_refptr<net::URLRequestContext> context_; int render_process_id_; int render_view_id_; bool raw_cookies_; diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc index 169468e..c32d8b90 100644 --- a/content/browser/renderer_host/resource_dispatcher_host.cc +++ b/content/browser/renderer_host/resource_dispatcher_host.cc @@ -23,7 +23,6 @@ #include "chrome/browser/download/download_util.h" #include "chrome/browser/download/save_file_manager.h" #include "chrome/browser/external_protocol_handler.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/browser/net/url_request_tracking.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/profiles/profile.h" @@ -36,6 +35,7 @@ #include "chrome/browser/ui/login/login_prompt.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/url_constants.h" +#include "content/browser/appcache/chrome_appcache_service.h" #include "content/browser/cert_store.h" #include "content/browser/child_process_security_policy.h" #include "content/browser/chrome_blob_storage_context.h" @@ -376,8 +376,6 @@ void ResourceDispatcherHost::BeginRequest( ChildProcessInfo::ProcessType process_type = filter_->process_type(); int child_id = filter_->child_id(); - ChromeURLRequestContext* context = filter_->GetURLRequestContext( - request_data.resource_type); const content::ResourceContext& resource_context = filter_->resource_context(); @@ -414,7 +412,7 @@ void ResourceDispatcherHost::BeginRequest( BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, NewRunnableFunction(prerender::HandlePrefetchTagOnUIThread, - context->prerender_manager(), + resource_context.prerender_manager(), std::make_pair(child_id, route_id), request_data.url, referrer, @@ -433,7 +431,10 @@ void ResourceDispatcherHost::BeginRequest( filter_, request_data.url, sync_result, this); } else { handler = new AsyncResourceHandler( - filter_, route_id, request_data.url, this); + filter_, route_id, request_data.url, + resource_context.host_zoom_map(), + resource_context.host_content_settings_map(), + this); } // The RedirectToFileResourceHandler depends on being next in the chain. @@ -487,7 +488,8 @@ void ResourceDispatcherHost::BeginRequest( } request->set_load_flags(load_flags); - request->set_context(context); + request->set_context( + filter_->GetURLRequestContext(request_data.resource_type)); request->set_priority(DetermineRequestPriority(request_data.resource_type, load_flags)); diff --git a/content/browser/renderer_host/resource_message_filter.cc b/content/browser/renderer_host/resource_message_filter.cc index 0eafb30..3729e9e 100644 --- a/content/browser/renderer_host/resource_message_filter.cc +++ b/content/browser/renderer_host/resource_message_filter.cc @@ -4,7 +4,6 @@ #include "content/browser/renderer_host/resource_message_filter.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/render_messages.h" #include "content/browser/browser_thread.h" @@ -43,9 +42,7 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& message, message, this, message_was_ok); } -ChromeURLRequestContext* ResourceMessageFilter::GetURLRequestContext( +net::URLRequestContext* ResourceMessageFilter::GetURLRequestContext( ResourceType::Type type) { - net::URLRequestContext* rv = - url_request_context_selector_->GetRequestContext(type); - return static_cast<ChromeURLRequestContext*>(rv); + return url_request_context_selector_->GetRequestContext(type); } diff --git a/content/browser/renderer_host/resource_message_filter.h b/content/browser/renderer_host/resource_message_filter.h index 1897413..b2d5e25 100644 --- a/content/browser/renderer_host/resource_message_filter.h +++ b/content/browser/renderer_host/resource_message_filter.h @@ -10,7 +10,6 @@ #include "content/common/child_process_info.h" #include "webkit/glue/resource_type.h" -class ChromeURLRequestContext; class ResourceDispatcherHost; namespace content { @@ -57,7 +56,7 @@ class ResourceMessageFilter : public BrowserMessageFilter { } // Returns the net::URLRequestContext for the given request. - ChromeURLRequestContext* GetURLRequestContext( + net::URLRequestContext* GetURLRequestContext( ResourceType::Type request_type); int child_id() const { return child_id_; } diff --git a/content/browser/resource_context.cc b/content/browser/resource_context.cc index 199f5dc..adafc44 100644 --- a/content/browser/resource_context.cc +++ b/content/browser/resource_context.cc @@ -94,4 +94,52 @@ void ResourceContext::set_blob_storage_context( blob_storage_context_ = context; } +HostZoomMap* ResourceContext::host_zoom_map() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + EnsureInitialized(); + return host_zoom_map_; +} + +void ResourceContext::set_host_zoom_map(HostZoomMap* host_zoom_map) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + host_zoom_map_ = host_zoom_map; +} + +HostContentSettingsMap* ResourceContext::host_content_settings_map() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + EnsureInitialized(); + return host_content_settings_map_; +} + +void ResourceContext::set_host_content_settings_map( + HostContentSettingsMap* host_content_settings_map) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + host_content_settings_map_ = host_content_settings_map; +} + +const ExtensionInfoMap* ResourceContext::extension_info_map() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + EnsureInitialized(); + return extension_info_map_; +} + +void ResourceContext::set_extension_info_map( + ExtensionInfoMap* extension_info_map) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + extension_info_map_ = extension_info_map; +} + +const base::WeakPtr<prerender::PrerenderManager>& +ResourceContext::prerender_manager() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + EnsureInitialized(); + return prerender_manager_; +} + +void ResourceContext::set_prerender_manager( + const base::WeakPtr<prerender::PrerenderManager>& prerender_manager) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + prerender_manager_ = prerender_manager; +} + } // namespace content diff --git a/content/browser/resource_context.h b/content/browser/resource_context.h index 68994b5..e275b3b 100644 --- a/content/browser/resource_context.h +++ b/content/browser/resource_context.h @@ -7,9 +7,13 @@ #include "base/basictypes.h" #include "base/memory/ref_counted.h" +#include "base/memory/weak_ptr.h" class ChromeAppCacheService; class ChromeBlobStorageContext; +class ExtensionInfoMap; +class HostContentSettingsMap; +class HostZoomMap; namespace fileapi { class FileSystemContext; } // namespace fileapi @@ -17,6 +21,9 @@ namespace net { class HostResolver; class URLRequestContext; } // namespace net +namespace prerender { +class PrerenderManager; +} // namespace prerender namespace webkit_database { class DatabaseTracker; } // namespace webkit_database @@ -49,6 +56,26 @@ class ResourceContext { ChromeBlobStorageContext* blob_storage_context() const; void set_blob_storage_context(ChromeBlobStorageContext* context); + HostZoomMap* host_zoom_map() const; + void set_host_zoom_map(HostZoomMap* host_zoom_map); + + // ======================================================================= + // TODO(willchan): These don't belong in content/. Remove them eventually. + + // TODO(jam): Kill this one. + HostContentSettingsMap* host_content_settings_map() const; + void set_host_content_settings_map( + HostContentSettingsMap* host_content_settings_map); + + // TODO(mpcomplete): Kill this one. + const ExtensionInfoMap* extension_info_map() const; + void set_extension_info_map(ExtensionInfoMap* extension_info_map); + + // TODO(cbentzel): Kill this one. + const base::WeakPtr<prerender::PrerenderManager>& prerender_manager() const; + void set_prerender_manager( + const base::WeakPtr<prerender::PrerenderManager>& prerender_manager); + protected: ResourceContext(); @@ -61,6 +88,14 @@ class ResourceContext { webkit_database::DatabaseTracker* database_tracker_; fileapi::FileSystemContext* file_system_context_; ChromeBlobStorageContext* blob_storage_context_; + HostZoomMap* host_zoom_map_; + + // ======================================================================= + // TODO(willchan): These don't belong in content/. Remove them eventually. + + HostContentSettingsMap* host_content_settings_map_; + ExtensionInfoMap* extension_info_map_; + base::WeakPtr<prerender::PrerenderManager> prerender_manager_; DISALLOW_COPY_AND_ASSIGN(ResourceContext); }; diff --git a/content/browser/worker_host/worker_message_filter.cc b/content/browser/worker_host/worker_message_filter.cc index dc18ee5..c9a0745 100644 --- a/content/browser/worker_host/worker_message_filter.cc +++ b/content/browser/worker_host/worker_message_filter.cc @@ -4,7 +4,6 @@ #include "content/browser/worker_host/worker_message_filter.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "content/browser/resource_context.h" #include "content/browser/worker_host/message_port_service.h" #include "content/browser/worker_host/worker_service.h" diff --git a/content/browser/worker_host/worker_process_host.cc b/content/browser/worker_host/worker_process_host.cc index a67cbf1..47783a1 100644 --- a/content/browser/worker_host/worker_process_host.cc +++ b/content/browser/worker_host/worker_process_host.cc @@ -12,6 +12,8 @@ #include "base/message_loop.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/content_settings/host_content_settings_map.h" +#include "chrome/browser/extensions/extension_info_map.h" #include "content/browser/appcache/appcache_dispatcher_host.h" #include "content/browser/browser_thread.h" #include "content/browser/child_process_security_policy.h" @@ -37,6 +39,7 @@ #include "net/base/mime_util.h" #include "ipc/ipc_switches.h" #include "net/base/registry_controlled_domain.h" +#include "webkit/fileapi/file_system_context.h" #include "webkit/fileapi/file_system_path_manager.h" #include "webkit/fileapi/sandbox_mount_point_provider.h" #include "webkit/glue/resource_type.h" @@ -184,7 +187,7 @@ bool WorkerProcessHost::Init(int render_process_id) { // requests them. ChildProcessSecurityPolicy::GetInstance()->GrantPermissionsForFile( id(), - GetChromeURLRequestContext()->file_system_context()-> + resource_context_->file_system_context()-> path_manager()->sandbox_provider()->base_path(), base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_CREATE | @@ -206,11 +209,12 @@ bool WorkerProcessHost::Init(int render_process_id) { void WorkerProcessHost::CreateMessageFilters(int render_process_id) { DCHECK(resource_context_); - ChromeURLRequestContext* chrome_url_context = GetChromeURLRequestContext(); + net::URLRequestContext* request_context = + resource_context_->request_context(); ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter( id(), WORKER_PROCESS, resource_context_, - new URLRequestContextSelector(chrome_url_context), + new URLRequestContextSelector(request_context), resource_dispatcher_host_); AddFilter(resource_message_filter); @@ -223,18 +227,20 @@ void WorkerProcessHost::CreateMessageFilters(int render_process_id) { AddFilter(worker_message_filter_); AddFilter(new AppCacheDispatcherHost(resource_context_, id())); AddFilter(new FileSystemDispatcherHost( - chrome_url_context, resource_context_->file_system_context())); + request_context, + resource_context_->host_content_settings_map(), + resource_context_->file_system_context())); AddFilter(new FileUtilitiesMessageFilter(id())); AddFilter( new BlobMessageFilter(id(), resource_context_->blob_storage_context())); AddFilter(new MimeRegistryMessageFilter()); AddFilter(new DatabaseMessageFilter( resource_context_->database_tracker(), - chrome_url_context->host_content_settings_map())); + resource_context_->host_content_settings_map())); SocketStreamDispatcherHost* socket_stream_dispatcher_host = new SocketStreamDispatcherHost( - new URLRequestContextSelector(chrome_url_context)); + new URLRequestContextSelector(request_context)); AddFilter(socket_stream_dispatcher_host); } @@ -339,7 +345,7 @@ void WorkerProcessHost::OnAllowDatabase(int worker_route_id, const string16& display_name, unsigned long estimated_size, bool* result) { - ContentSetting content_setting = GetChromeURLRequestContext()-> + ContentSetting content_setting = resource_context_-> host_content_settings_map()->GetContentSetting( url, CONTENT_SETTINGS_TYPE_COOKIES, ""); @@ -458,7 +464,7 @@ void WorkerProcessHost::UpdateTitle() { // Check if it's an extension-created worker, in which case we want to use // the name of the extension. - std::string extension_name = GetChromeURLRequestContext()-> + std::string extension_name = resource_context_-> extension_info_map()->GetNameForExtension(title); if (!extension_name.empty()) { titles.insert(extension_name); @@ -482,11 +488,6 @@ void WorkerProcessHost::UpdateTitle() { set_name(ASCIIToWide(display_title)); } -ChromeURLRequestContext* WorkerProcessHost::GetChromeURLRequestContext() { - return static_cast<ChromeURLRequestContext*>( - resource_context_->request_context()); -} - void WorkerProcessHost::DocumentDetached(WorkerMessageFilter* filter, unsigned long long document_id) { // Walk all instances and remove the document from their document set. diff --git a/content/browser/worker_host/worker_process_host.h b/content/browser/worker_host/worker_process_host.h index 0f49ee6..00005aa 100644 --- a/content/browser/worker_host/worker_process_host.h +++ b/content/browser/worker_host/worker_process_host.h @@ -10,7 +10,6 @@ #include "base/basictypes.h" #include "base/file_path.h" -#include "chrome/browser/net/chrome_url_request_context.h" #include "content/browser/browser_child_process_host.h" #include "content/browser/worker_host/worker_document_set.h" #include "googleurl/src/gurl.h" @@ -176,8 +175,6 @@ class WorkerProcessHost : public BrowserChildProcessHost { // Updates the title shown in the task manager. void UpdateTitle(); - ChromeURLRequestContext* GetChromeURLRequestContext(); - Instances instances_; const content::ResourceContext* const resource_context_; diff --git a/content/browser/worker_host/worker_service.h b/content/browser/worker_host/worker_service.h index b6c3abc..a84f410 100644 --- a/content/browser/worker_host/worker_service.h +++ b/content/browser/worker_host/worker_service.h @@ -10,6 +10,7 @@ #include "base/memory/singleton.h" #include "base/threading/non_thread_safe.h" #include "content/browser/worker_host/worker_process_host.h" +#include "content/common/notification_registrar.h" #include "googleurl/src/gurl.h" namespace content { |