| 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.
|
| +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 @@
|
| 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();
|
| }
|
|
|
|
|