From 33c1c26ae20ac8b60ce78945ad016a277d2b10ec Mon Sep 17 00:00:00 2001 From: "jam@chromium.org" Date: Thu, 24 Jan 2013 21:56:26 +0000 Subject: Move core url data manager classes to content. BUG=169170 Review URL: https://codereview.chromium.org/12049052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178663 0039d316-1c4b-4281-b951-d872f2087c98 --- content/browser/resource_context_impl.cc | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'content/browser/resource_context_impl.cc') diff --git a/content/browser/resource_context_impl.cc b/content/browser/resource_context_impl.cc index 5d0e9f9..2574be9 100644 --- a/content/browser/resource_context_impl.cc +++ b/content/browser/resource_context_impl.cc @@ -9,19 +9,21 @@ #include "content/browser/host_zoom_map_impl.h" #include "content/browser/loader/resource_dispatcher_host_impl.h" #include "content/browser/loader/resource_request_info_impl.h" +#include "content/browser/webui/url_data_manager_backend.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" -// Key names on ResourceContext. -static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; -static const char* kHostZoomMapKeyName = "content_host_zoom_map"; - using base::UserDataAdapter; namespace content { namespace { +// Key names on ResourceContext. +const char kBlobStorageContextKeyName[] = "content_blob_storage_context"; +const char kHostZoomMapKeyName[] = "content_host_zoom_map"; +const char kURLDataManagerBackendKeyName[] = "url_data_manager_backend"; + class NonOwningZoomData : public base::SupportsUserData::Data { public: explicit NonOwningZoomData(HostZoomMap* hzm) : host_zoom_map_(hzm) {} @@ -45,6 +47,9 @@ ResourceContext::~ResourceContext() { rdhi->CancelRequestsForContext(this); rdhi->RemoveResourceContext(this); } + + // In some tests this object is destructed on UI thread. + DetachUserDataThread(); } ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( @@ -60,6 +65,17 @@ HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) { context->GetUserData(kHostZoomMapKeyName))->host_zoom_map(); } +ChromeURLDataManagerBackend* GetURLDataManagerForResourceContext( + ResourceContext* context) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + if (!context->GetUserData(kURLDataManagerBackendKeyName)) { + context->SetUserData(kURLDataManagerBackendKeyName, + new ChromeURLDataManagerBackend()); + } + return static_cast( + context->GetUserData(kURLDataManagerBackendKeyName)); +} + void InitializeResourceContext(BrowserContext* browser_context) { ResourceContext* resource_context = browser_context->GetResourceContext(); DCHECK(!resource_context->GetUserData(kHostZoomMapKeyName)); @@ -75,6 +91,7 @@ void InitializeResourceContext(BrowserContext* browser_context) { kHostZoomMapKeyName, new NonOwningZoomData( HostZoomMap::GetForBrowserContext(browser_context))); + resource_context->DetachUserDataThread(); } -- cgit v1.1