summaryrefslogtreecommitdiffstats
path: root/chrome/browser/profiles
diff options
context:
space:
mode:
authordominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-05 17:50:50 +0000
committerdominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-05 17:50:50 +0000
commit3085c50e9961a71ec0bb473c26efad9ca6589e46 (patch)
tree7fd256605ce42e8e4ddee423e0dde13a655ff355 /chrome/browser/profiles
parent56f38f4aee4a6fb282d20bd6f0f506661e00d81f (diff)
downloadchromium_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.cc7
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl.h1
-rw-r--r--chrome/browser/profiles/profile.h8
-rw-r--r--chrome/browser/profiles/profile_dependency_manager.cc2
-rw-r--r--chrome/browser/profiles/profile_impl.cc27
-rw-r--r--chrome/browser/profiles/profile_impl.h2
-rw-r--r--chrome/browser/profiles/profile_io_data.cc3
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;
}