diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 21:56:26 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 21:56:26 +0000 |
commit | 33c1c26ae20ac8b60ce78945ad016a277d2b10ec (patch) | |
tree | 04f2df52a0fd311fb0b7ebf715c4ecbfa0d478db /content/browser/resource_context_impl.cc | |
parent | deeed436a6981cb7f22ab1ccd843272dc90fbfd1 (diff) | |
download | chromium_src-33c1c26ae20ac8b60ce78945ad016a277d2b10ec.zip chromium_src-33c1c26ae20ac8b60ce78945ad016a277d2b10ec.tar.gz chromium_src-33c1c26ae20ac8b60ce78945ad016a277d2b10ec.tar.bz2 |
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
Diffstat (limited to 'content/browser/resource_context_impl.cc')
-rw-r--r-- | content/browser/resource_context_impl.cc | 25 |
1 files changed, 21 insertions, 4 deletions
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<ChromeURLDataManagerBackend*>( + 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(); } |