summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-29 02:58:07 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-29 02:58:07 +0000
commita1e6ad0532c7537ee72bcdce23fe8a8932114b5e (patch)
tree31800c70679ae35080f3dde03c0a3c9af929caa9 /content
parent99f8e0d06b19334c93fd15b9e74feedc8971fa37 (diff)
downloadchromium_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')
-rw-r--r--content/browser/DEPS2
-rw-r--r--content/browser/appcache/appcache_dispatcher_host.cc1
-rw-r--r--content/browser/appcache/chrome_appcache_service.h1
-rw-r--r--content/browser/appcache/view_appcache_internals_job_factory.cc10
-rw-r--r--content/browser/appcache/view_appcache_internals_job_factory.h10
-rw-r--r--content/browser/file_system/file_system_dispatcher_host.cc6
-rw-r--r--content/browser/file_system/file_system_dispatcher_host.h5
-rw-r--r--content/browser/renderer_host/async_resource_handler.cc26
-rw-r--r--content/browser/renderer_host/async_resource_handler.h6
-rw-r--r--content/browser/renderer_host/pepper_message_filter.cc2
-rw-r--r--content/browser/renderer_host/render_message_filter.cc28
-rw-r--r--content/browser/renderer_host/render_message_filter.h16
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host.cc14
-rw-r--r--content/browser/renderer_host/resource_message_filter.cc7
-rw-r--r--content/browser/renderer_host/resource_message_filter.h3
-rw-r--r--content/browser/resource_context.cc48
-rw-r--r--content/browser/resource_context.h35
-rw-r--r--content/browser/worker_host/worker_message_filter.cc1
-rw-r--r--content/browser/worker_host/worker_process_host.cc27
-rw-r--r--content/browser/worker_host/worker_process_host.h3
-rw-r--r--content/browser/worker_host/worker_service.h1
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 {