Chromium Code Reviews| Index: content/browser/resource_context_impl.cc |
| =================================================================== |
| --- content/browser/resource_context_impl.cc (revision 178598) |
| +++ content/browser/resource_context_impl.cc (working copy) |
| @@ -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. |
| +static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; |
|
awong
2013/01/24 19:55:29
The static is redundant here since were in the ano
awong
2013/01/24 20:10:42
FYI, reading through c-style@, const char[] seems
|
| +static const char* kHostZoomMapKeyName = "content_host_zoom_map"; |
| +static 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 @@ |
| rdhi->CancelRequestsForContext(this); |
| rdhi->RemoveResourceContext(this); |
| } |
| + |
| + // In some tests this object is destructed on UI thread. |
| + DetachUserDataThread(); |
| } |
| ChromeBlobStorageContext* GetChromeBlobStorageContextForResourceContext( |
| @@ -60,6 +65,17 @@ |
| 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 @@ |
| kHostZoomMapKeyName, |
| new NonOwningZoomData( |
| HostZoomMap::GetForBrowserContext(browser_context))); |
| + |
| resource_context->DetachUserDataThread(); |
| } |