diff options
author | dominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-05 17:50:50 +0000 |
---|---|---|
committer | dominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-05 17:50:50 +0000 |
commit | 3085c50e9961a71ec0bb473c26efad9ca6589e46 (patch) | |
tree | 7fd256605ce42e8e4ddee423e0dde13a655ff355 /chrome/browser/profiles | |
parent | 56f38f4aee4a6fb282d20bd6f0f506661e00d81f (diff) | |
download | chromium_src-3085c50e9961a71ec0bb473c26efad9ca6589e46.zip chromium_src-3085c50e9961a71ec0bb473c26efad9ca6589e46.tar.gz chromium_src-3085c50e9961a71ec0bb473c26efad9ca6589e46.tar.bz2 |
Moved PrerenderManager to ProfileKeyedService system.
As per https://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/554b5b0ca05e001d# it is recommended that weak references to services be removed from Profiles and constructed as ProfileKeyedServices instead. This does this for the PrerenderManager.
(Continuation of http://codereview.chromium.org/7795009/)
BUG=94643
TEST=Prerender*
Review URL: http://codereview.chromium.org/7846001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104130 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/profiles')
-rw-r--r-- | chrome/browser/profiles/off_the_record_profile_impl.cc | 7 | ||||
-rw-r--r-- | chrome/browser/profiles/off_the_record_profile_impl.h | 1 | ||||
-rw-r--r-- | chrome/browser/profiles/profile.h | 8 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_dependency_manager.cc | 2 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_impl.cc | 27 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_impl.h | 2 | ||||
-rw-r--r-- | chrome/browser/profiles/profile_io_data.cc | 3 |
7 files changed, 9 insertions, 41 deletions
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc index 6edfeb6..20d1c11 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.cc +++ b/chrome/browser/profiles/off_the_record_profile_impl.cc @@ -578,13 +578,6 @@ PrefProxyConfigTracker* OffTheRecordProfileImpl::GetProxyConfigTracker() { return pref_proxy_config_tracker_; } -prerender::PrerenderManager* OffTheRecordProfileImpl::GetPrerenderManager() { - // We do not allow prerendering in OTR profiles at this point. - // TODO(tburkard): Figure out if we want to support this, and how, at some - // point in the future. - return NULL; -} - chrome_browser_net::Predictor* OffTheRecordProfileImpl::GetNetworkPredictor() { // We do not store information about websites visited in OTR profiles which // is necessary for a Predictor, so we do not have a Predictor at all. diff --git a/chrome/browser/profiles/off_the_record_profile_impl.h b/chrome/browser/profiles/off_the_record_profile_impl.h index 9f7dea4..032d451 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.h +++ b/chrome/browser/profiles/off_the_record_profile_impl.h @@ -127,7 +127,6 @@ class OffTheRecordProfileImpl : public Profile, #endif // defined(OS_CHROMEOS) virtual PrefProxyConfigTracker* GetProxyConfigTracker() OVERRIDE; - virtual prerender::PrerenderManager* GetPrerenderManager() OVERRIDE; virtual chrome_browser_net::Predictor* GetNetworkPredictor() OVERRIDE; virtual void DeleteTransportSecurityStateSince(base::Time time) OVERRIDE; diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h index 8c3b742..ee1c908 100644 --- a/chrome/browser/profiles/profile.h +++ b/chrome/browser/profiles/profile.h @@ -39,10 +39,6 @@ namespace net { class SSLConfigService; } -namespace prerender { -class PrerenderManager; -} - namespace speech_input { class SpeechRecognizer; } @@ -483,10 +479,6 @@ class Profile : public content::BrowserContext { // access to the the proxy configuration possibly defined by preferences. virtual PrefProxyConfigTracker* GetProxyConfigTracker() = 0; - // Returns the PrerenderManager used to prerender entire webpages for this - // profile. - virtual prerender::PrerenderManager* GetPrerenderManager() = 0; - // Returns the Predictor object used for dns prefetch. virtual chrome_browser_net::Predictor* GetNetworkPredictor() = 0; diff --git a/chrome/browser/profiles/profile_dependency_manager.cc b/chrome/browser/profiles/profile_dependency_manager.cc index 93f37a9..d9c720e7 100644 --- a/chrome/browser/profiles/profile_dependency_manager.cc +++ b/chrome/browser/profiles/profile_dependency_manager.cc @@ -12,6 +12,7 @@ #include "chrome/browser/background/background_contents_service_factory.h" #include "chrome/browser/extensions/extension_speech_input_manager.h" #include "chrome/browser/plugin_prefs.h" +#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h" #include "chrome/browser/profiles/profile_keyed_service.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" @@ -41,6 +42,7 @@ void AssertFactoriesBuilt() { CloudPrintProxyServiceFactory::GetInstance(); PersonalDataManagerFactory::GetInstance(); PluginPrefs::Initialize(); + prerender::PrerenderManagerFactory::GetInstance(); SessionServiceFactory::GetInstance(); TabRestoreServiceFactory::GetInstance(); TemplateURLServiceFactory::GetInstance(); diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 9227a3c..b76b3df 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -58,7 +58,7 @@ #include "chrome/browser/prefs/browser_prefs.h" #include "chrome/browser/prefs/pref_value_store.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" -#include "chrome/browser/prerender/prerender_manager.h" +#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/profiles/profile_info_cache.h" #include "chrome/browser/profiles/profile_manager.h" @@ -130,11 +130,9 @@ #endif #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/locale_change_guard.h" #include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/preferences.h" -#include "chrome/browser/chromeos/prerender_condition_network.h" #endif using base::Time; @@ -943,8 +941,10 @@ void ProfileImpl::OnPrefsLoaded(bool success) { ProfileDependencyManager::GetInstance()->CreateProfileServices(this, false); DCHECK(!net_pref_observer_.get()); - net_pref_observer_.reset( - new NetPrefObserver(prefs_.get(), GetPrerenderManager(), predictor_)); + net_pref_observer_.reset(new NetPrefObserver( + prefs_.get(), + prerender::PrerenderManagerFactory::GetForProfile(this), + predictor_)); DoFinalInit(); } @@ -1748,23 +1748,6 @@ PrefProxyConfigTracker* ProfileImpl::GetProxyConfigTracker() { return pref_proxy_config_tracker_; } -prerender::PrerenderManager* ProfileImpl::GetPrerenderManager() { - if (!prerender::PrerenderManager::IsPrerenderingPossible()) - return NULL; - if (!prerender_manager_.get()) { - CHECK(g_browser_process->prerender_tracker()); - prerender_manager_.reset( - new prerender::PrerenderManager( - this, g_browser_process->prerender_tracker())); -#if defined(OS_CHROMEOS) - prerender_manager_->AddCondition( - new chromeos::PrerenderConditionNetwork( - chromeos::CrosLibrary::Get()->GetNetworkLibrary())); -#endif - } - return prerender_manager_.get(); -} - chrome_browser_net::Predictor* ProfileImpl::GetNetworkPredictor() { return predictor_; } diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h index c538eac..c4cfebf 100644 --- a/chrome/browser/profiles/profile_impl.h +++ b/chrome/browser/profiles/profile_impl.h @@ -141,7 +141,6 @@ class ProfileImpl : public Profile, #endif // defined(OS_CHROMEOS) virtual PrefProxyConfigTracker* GetProxyConfigTracker() OVERRIDE; - virtual prerender::PrerenderManager* GetPrerenderManager() OVERRIDE; // NotificationObserver implementation. virtual void Observe(int type, @@ -214,7 +213,6 @@ class ProfileImpl : public Profile, scoped_refptr<ExtensionSpecialStoragePolicy> extension_special_storage_policy_; scoped_ptr<SSLHostState> ssl_host_state_; - scoped_ptr<prerender::PrerenderManager> prerender_manager_; scoped_ptr<NetPrefObserver> net_pref_observer_; scoped_ptr<TemplateURLFetcher> template_url_fetcher_; scoped_ptr<BookmarkModel> bookmark_bar_model_; diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc index 4b3843a5..58516db 100644 --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc @@ -31,6 +31,7 @@ #include "chrome/browser/policy/url_blacklist_manager.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prerender/prerender_manager.h" +#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/transport_security_persister.h" @@ -185,7 +186,7 @@ prerender::PrerenderManager* GetPrerenderManagerOnUI( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); Profile* profile = profile_getter.Run(); if (profile) - return profile->GetPrerenderManager(); + return prerender::PrerenderManagerFactory::GetForProfile(profile); return NULL; } |