summaryrefslogtreecommitdiffstats
path: root/content/browser/resource_context_impl.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 21:56:26 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 21:56:26 +0000
commit33c1c26ae20ac8b60ce78945ad016a277d2b10ec (patch)
tree04f2df52a0fd311fb0b7ebf715c4ecbfa0d478db /content/browser/resource_context_impl.cc
parentdeeed436a6981cb7f22ab1ccd843272dc90fbfd1 (diff)
downloadchromium_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.cc25
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();
}