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