Commit bd46b805 authored by mmenke's avatar mmenke Committed by Commit bot

PrerenderManager: No longer expose weak pointers.

BUG=none

Review-Url: https://codereview.chromium.org/2346863003
Cr-Commit-Position: refs/heads/master@{#419341}
parent 8f7a51a1
...@@ -157,12 +157,14 @@ struct PrerenderManager::NavigationRecord { ...@@ -157,12 +157,14 @@ struct PrerenderManager::NavigationRecord {
PrerenderManager::PrerenderManager(Profile* profile) PrerenderManager::PrerenderManager(Profile* profile)
: profile_(profile), : profile_(profile),
prerender_contents_factory_(PrerenderContents::CreateFactory()), prerender_contents_factory_(PrerenderContents::CreateFactory()),
last_prerender_start_time_(GetCurrentTimeTicks() - last_prerender_start_time_(
GetCurrentTimeTicks() -
base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)),
prerender_history_(new PrerenderHistory(kHistoryLength)), prerender_history_(new PrerenderHistory(kHistoryLength)),
histograms_(new PrerenderHistograms()), histograms_(new PrerenderHistograms()),
profile_network_bytes_(0), profile_network_bytes_(0),
last_recorded_profile_network_bytes_(0) { last_recorded_profile_network_bytes_(0),
weak_factory_(this) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
// Certain experiments override our default config_ values. // Certain experiments override our default config_ values.
...@@ -1032,7 +1034,8 @@ void PrerenderManager::PeriodicCleanup() { ...@@ -1032,7 +1034,8 @@ void PrerenderManager::PeriodicCleanup() {
void PrerenderManager::PostCleanupTask() { void PrerenderManager::PostCleanupTask() {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
base::ThreadTaskRunnerHandle::Get()->PostTask( base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::Bind(&PrerenderManager::PeriodicCleanup, AsWeakPtr())); FROM_HERE, base::Bind(&PrerenderManager::PeriodicCleanup,
weak_factory_.GetWeakPtr()));
} }
base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender(
......
...@@ -71,8 +71,7 @@ class PrerenderLocalPredictor; ...@@ -71,8 +71,7 @@ class PrerenderLocalPredictor;
// PrerenderManager is responsible for initiating and keeping prerendered // PrerenderManager is responsible for initiating and keeping prerendered
// views of web pages. All methods must be called on the UI thread unless // views of web pages. All methods must be called on the UI thread unless
// indicated otherwise. // indicated otherwise.
class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, class PrerenderManager : public content::NotificationObserver,
public content::NotificationObserver,
public content::RenderProcessHostObserver, public content::RenderProcessHostObserver,
public KeyedService, public KeyedService,
public MediaCaptureDevicesDispatcher::Observer { public MediaCaptureDevicesDispatcher::Observer {
...@@ -588,6 +587,8 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, ...@@ -588,6 +587,8 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
using PrerenderProcessSet = std::set<content::RenderProcessHost*>; using PrerenderProcessSet = std::set<content::RenderProcessHost*>;
PrerenderProcessSet prerender_process_hosts_; PrerenderProcessSet prerender_process_hosts_;
base::WeakPtrFactory<PrerenderManager> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(PrerenderManager); DISALLOW_COPY_AND_ASSIGN(PrerenderManager);
}; };
......
...@@ -240,8 +240,6 @@ class NetInternalsMessageHandler ...@@ -240,8 +240,6 @@ class NetInternalsMessageHandler
// This is the "real" message handler, which lives on the IO thread. // This is the "real" message handler, which lives on the IO thread.
scoped_refptr<IOThreadImpl> proxy_; scoped_refptr<IOThreadImpl> proxy_;
base::WeakPtr<prerender::PrerenderManager> prerender_manager_;
DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler); DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler);
}; };
...@@ -410,14 +408,6 @@ void NetInternalsMessageHandler::RegisterMessages() { ...@@ -410,14 +408,6 @@ void NetInternalsMessageHandler::RegisterMessages() {
proxy_->AddRequestContextGetter(profile->GetRequestContextForExtensions()); proxy_->AddRequestContextGetter(profile->GetRequestContextForExtensions());
#endif #endif
prerender::PrerenderManager* prerender_manager =
prerender::PrerenderManagerFactory::GetForProfile(profile);
if (prerender_manager) {
prerender_manager_ = prerender_manager->AsWeakPtr();
} else {
prerender_manager_ = base::WeakPtr<prerender::PrerenderManager>();
}
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
"notifyReady", "notifyReady",
base::Bind(&NetInternalsMessageHandler::OnRendererReady, base::Bind(&NetInternalsMessageHandler::OnRendererReady,
...@@ -542,8 +532,12 @@ void NetInternalsMessageHandler::OnGetPrerenderInfo( ...@@ -542,8 +532,12 @@ void NetInternalsMessageHandler::OnGetPrerenderInfo(
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::unique_ptr<base::DictionaryValue> value; std::unique_ptr<base::DictionaryValue> value;
if (prerender_manager_) {
value = prerender_manager_->GetAsValue(); prerender::PrerenderManager* prerender_manager =
prerender::PrerenderManagerFactory::GetForProfile(
Profile::FromWebUI(web_ui()));
if (prerender_manager) {
value = prerender_manager->GetAsValue();
} else { } else {
value.reset(new base::DictionaryValue()); value.reset(new base::DictionaryValue());
value->SetBoolean("enabled", false); value->SetBoolean("enabled", false);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment