From f37bff408d28bb87f74ebb1907cb4727ae22329e Mon Sep 17 00:00:00 2001 From: "sky@chromium.org" Date: Wed, 9 Feb 2011 21:59:32 +0000 Subject: Attempt 2 at: Splits ChromeURLDataManager into 2 chunks: . ChromeURLDataManager is no longer a singleton and is always used on the UI thread. ChromeURLDataManager is now profile specific (you get from the profile). . ChromeURLDataManagerBackend handles the URLRequests and the DataSources. ChromeURLDataManagerBackend is created by ChromeURLRequestContext. All DataSources are now profile specific. There were two that wanted to be global, but have been converted. This differs from the version I landed in that there is now a NULL check in ChromeURLDataManager::DeleteDataSources. BUG=52022 71868 TEST=none TBR=willchan, evan, ahendrickson Review URL: http://codereview.chromium.org/6462036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74340 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/net/chrome_url_request_context.cc | 8 ++++++++ chrome/browser/net/chrome_url_request_context.h | 4 ++++ 2 files changed, 12 insertions(+) (limited to 'chrome/browser/net') diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc index e42ae2d..573ffdc 100644 --- a/chrome/browser/net/chrome_url_request_context.cc +++ b/chrome/browser/net/chrome_url_request_context.cc @@ -11,6 +11,7 @@ #include "base/string_util.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_thread.h" +#include "chrome/browser/dom_ui/chrome_url_data_manager_backend.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/user_script_master.h" #include "chrome/browser/io_thread.h" @@ -732,6 +733,13 @@ ChromeURLRequestContext::ChromeURLRequestContext() CheckCurrentlyOnIOThread(); } +ChromeURLDataManagerBackend* + ChromeURLRequestContext::GetChromeURLDataManagerBackend() { + if (!chrome_url_data_manager_backend_.get()) + chrome_url_data_manager_backend_.reset(new ChromeURLDataManagerBackend()); + return chrome_url_data_manager_backend_.get(); +} + ChromeURLRequestContext::~ChromeURLRequestContext() { CheckCurrentlyOnIOThread(); diff --git a/chrome/browser/net/chrome_url_request_context.h b/chrome/browser/net/chrome_url_request_context.h index 5d57b46..943b0fd 100644 --- a/chrome/browser/net/chrome_url_request_context.h +++ b/chrome/browser/net/chrome_url_request_context.h @@ -40,6 +40,7 @@ class DnsCertProvenanceChecker; class NetworkDelegate; } +class ChromeURLDataManagerBackend; class ChromeURLRequestContext; class ChromeURLRequestContextFactory; @@ -102,6 +103,8 @@ class ChromeURLRequestContext : public net::URLRequestContext { return prerender_manager_.get(); } + ChromeURLDataManagerBackend* GetChromeURLDataManagerBackend(); + protected: virtual ~ChromeURLRequestContext(); @@ -191,6 +194,7 @@ class ChromeURLRequestContext : public net::URLRequestContext { scoped_refptr extension_info_map_; scoped_refptr extension_io_event_router_; scoped_refptr prerender_manager_; + scoped_ptr chrome_url_data_manager_backend_; bool is_off_the_record_; -- cgit v1.1