Index: chrome/browser/prerender/prerender_manager.cc |
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
index 629e113f32a34419f5afe021e611aafb3ae8956a..87916d3f5771a45ac5e81256943c7a24a81c9125 100644 |
--- a/chrome/browser/prerender/prerender_manager.cc |
+++ b/chrome/browser/prerender/prerender_manager.cc |
@@ -21,7 +21,6 @@ |
#include "base/values.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chrome_notification_types.h" |
-#include "chrome/browser/net/chrome_cookie_notification_details.h" |
#include "chrome/browser/net/prediction_options.h" |
#include "chrome/browser/predictors/predictor_database.h" |
#include "chrome/browser/predictors/predictor_database_factory.h" |
mmenke
2015/04/09 16:29:04
I don't think we need these three any more.
davidben
2015/04/09 20:43:00
Looks like prediction_options is still used. Other
|
@@ -31,7 +30,6 @@ |
#include "chrome/browser/prerender/prerender_handle.h" |
#include "chrome/browser/prerender/prerender_histograms.h" |
#include "chrome/browser/prerender/prerender_history.h" |
-#include "chrome/browser/prerender/prerender_local_predictor.h" |
#include "chrome/browser/prerender/prerender_manager_factory.h" |
#include "chrome/browser/prerender/prerender_tab_helper.h" |
#include "chrome/browser/prerender/prerender_util.h" |
@@ -66,7 +64,6 @@ using content::BrowserThread; |
using content::RenderViewHost; |
using content::SessionStorageNamespace; |
using content::WebContents; |
-using predictors::LoggedInPredictorTable; |
namespace prerender { |
@@ -120,37 +117,6 @@ bool NeedMatchCompleteDummyForFinalStatus(FinalStatus final_status) { |
final_status != FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE; |
} |
-void CheckIfCookiesExistForDomainResultOnUIThread( |
- const net::CookieMonster::HasCookiesForETLDP1Callback& callback, |
- bool cookies_exist) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- callback.Run(cookies_exist); |
-} |
- |
-void CheckIfCookiesExistForDomainResultOnIOThread( |
- const net::CookieMonster::HasCookiesForETLDP1Callback& callback, |
- bool cookies_exist) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- BrowserThread::PostTask( |
- BrowserThread::UI, |
- FROM_HERE, |
- base::Bind(&CheckIfCookiesExistForDomainResultOnUIThread, |
- callback, |
- cookies_exist)); |
-} |
- |
-void CheckIfCookiesExistForDomainOnIOThread( |
- net::URLRequestContextGetter* rq_context, |
- const std::string& domain_key, |
- const net::CookieMonster::HasCookiesForETLDP1Callback& callback) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- net::CookieStore* cookie_store = |
- rq_context->GetURLRequestContext()->cookie_store(); |
- cookie_store->GetCookieMonster()->HasCookiesForETLDP1Async( |
- domain_key, |
- base::Bind(&CheckIfCookiesExistForDomainResultOnIOThread, callback)); |
-} |
- |
} // namespace |
class PrerenderManager::OnCloseWebContentsDeleter |
@@ -238,27 +204,6 @@ PrerenderManager::PrerenderManager(Profile* profile) |
// the same thread that it was created on. |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (IsLocalPredictorEnabled()) |
- local_predictor_.reset(new PrerenderLocalPredictor(this)); |
- |
- if (IsLoggedInPredictorEnabled() && !profile_->IsOffTheRecord()) { |
- predictors::PredictorDatabase* predictor_db = |
- predictors::PredictorDatabaseFactory::GetForProfile(profile); |
- if (predictor_db) { |
- logged_in_predictor_table_ = predictor_db->logged_in_table(); |
- scoped_ptr<LoggedInStateMap> new_state_map(new LoggedInStateMap); |
- LoggedInStateMap* new_state_map_ptr = new_state_map.get(); |
- BrowserThread::PostTaskAndReply( |
- BrowserThread::DB, FROM_HERE, |
- base::Bind(&LoggedInPredictorTable::GetAllData, |
- logged_in_predictor_table_, |
- new_state_map_ptr), |
- base::Bind(&PrerenderManager::LoggedInPredictorDataReceived, |
- AsWeakPtr(), |
- base::Passed(&new_state_map))); |
- } |
- } |
- |
// Certain experiments override our default config_ values. |
switch (PrerenderManager::GetMode()) { |
case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP: |
@@ -273,10 +218,6 @@ PrerenderManager::PrerenderManager(Profile* profile) |
} |
notification_registrar_.Add( |
- this, chrome::NOTIFICATION_COOKIE_CHANGED, |
- content::NotificationService::AllBrowserContextsAndSources()); |
- |
- notification_registrar_.Add( |
this, chrome::NOTIFICATION_PROFILE_DESTROYED, |
content::Source<Profile>(profile_)); |
@@ -302,10 +243,6 @@ PrerenderManager::~PrerenderManager() { |
void PrerenderManager::Shutdown() { |
DestroyAllContents(FINAL_STATUS_MANAGER_SHUTDOWN); |
on_close_web_contents_deleters_.clear(); |
- // Must happen before |profile_| is set to NULL as |
- // |local_predictor_| accesses it. |
- if (local_predictor_) |
- local_predictor_->Shutdown(); |
profile_ = NULL; |
DCHECK(active_prerenders_.empty()); |
@@ -355,14 +292,6 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromOmnibox( |
session_storage_namespace); |
} |
-PrerenderHandle* PrerenderManager::AddPrerenderFromLocalPredictor( |
- const GURL& url, |
- SessionStorageNamespace* session_storage_namespace, |
- const gfx::Size& size) { |
- return AddPrerender(ORIGIN_LOCAL_PREDICTOR, url, content::Referrer(), |
- size, session_storage_namespace); |
-} |
- |
PrerenderHandle* PrerenderManager::AddPrerenderFromExternalRequest( |
const GURL& url, |
const content::Referrer& referrer, |
@@ -658,9 +587,6 @@ void PrerenderManager::RecordPerceivedPageLoadTime( |
histograms_->RecordPercentLoadDoneAtSwapin( |
origin, fraction_plt_elapsed_at_swap_in); |
} |
- if (local_predictor_) { |
- local_predictor_->OnPLTEventForURL(url, perceived_page_load_time); |
- } |
} |
// static |
@@ -1072,9 +998,7 @@ PrerenderHandle* PrerenderManager::AddPrerender( |
session_storage_namespace); |
DCHECK(IsControlGroup(experiment) || |
- prerender_contents->prerendering_has_started() || |
- (origin == ORIGIN_LOCAL_PREDICTOR && |
- IsLocalPredictorPrerenderAlwaysControlEnabled())); |
+ prerender_contents->prerendering_has_started()); |
if (GetMode() == PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP) |
histograms_->RecordConcurrency(active_prerenders_.size()); |
@@ -1144,10 +1068,7 @@ void PrerenderManager::PostCleanupTask() { |
base::TimeTicks PrerenderManager::GetExpiryTimeForNewPrerender( |
Origin origin) const { |
- base::TimeDelta ttl = config_.time_to_live; |
- if (origin == ORIGIN_LOCAL_PREDICTOR) |
- ttl = base::TimeDelta::FromSeconds(GetLocalPredictorTTLSeconds()); |
- return GetCurrentTimeTicks() + ttl; |
+ return GetCurrentTimeTicks() + config_.time_to_live; |
} |
base::TimeTicks PrerenderManager::GetExpiryTimeForNavigatedAwayPrerender() |
@@ -1220,10 +1141,6 @@ bool PrerenderManager::DoesRateLimitAllowPrerender(Origin origin) const { |
histograms_->RecordTimeBetweenPrerenderRequests(origin, elapsed_time); |
if (!config_.rate_limit_enabled) |
return true; |
- // The LocalPredictor may issue multiple prerenders simultaneously (if so |
- // configured), so no throttling. |
- if (origin == ORIGIN_LOCAL_PREDICTOR) |
- return true; |
return elapsed_time >= |
base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs); |
} |
@@ -1321,15 +1238,6 @@ void PrerenderManager::Observe(int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) { |
switch (type) { |
- case chrome::NOTIFICATION_COOKIE_CHANGED: { |
- Profile* profile = content::Source<Profile>(source).ptr(); |
- if (!profile || !profile_->IsSameProfile(profile) || |
- profile->IsOffTheRecord()) { |
- return; |
- } |
- CookieChanged(content::Details<ChromeCookieDetails>(details).ptr()); |
- break; |
- } |
case chrome::NOTIFICATION_PROFILE_DESTROYED: |
DestroyAllContents(FINAL_STATUS_PROFILE_DESTROYED); |
on_close_web_contents_deleters_.clear(); |
@@ -1355,109 +1263,6 @@ void PrerenderManager::OnCreatingAudioStream(int render_process_id, |
prerender_contents->Destroy(prerender::FINAL_STATUS_CREATING_AUDIO_STREAM); |
} |
-void PrerenderManager::RecordLikelyLoginOnURL(const GURL& url) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!url.SchemeIsHTTPOrHTTPS()) |
- return; |
- if (logged_in_predictor_table_.get()) { |
- BrowserThread::PostTask( |
- BrowserThread::DB, |
- FROM_HERE, |
- base::Bind(&LoggedInPredictorTable::AddDomainFromURL, |
- logged_in_predictor_table_, |
- url)); |
- } |
- std::string key = LoggedInPredictorTable::GetKey(url); |
- if (!logged_in_state_.get()) |
- return; |
- if (logged_in_state_->count(key)) |
- return; |
- (*logged_in_state_)[key] = base::Time::Now().ToInternalValue(); |
-} |
- |
-void PrerenderManager::CheckIfLikelyLoggedInOnURL( |
- const GURL& url, |
- bool* lookup_result, |
- bool* database_was_present, |
- const base::Closure& result_cb) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!logged_in_predictor_table_.get()) { |
- *database_was_present = false; |
- *lookup_result = false; |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, result_cb); |
- return; |
- } |
- BrowserThread::PostTaskAndReply( |
- BrowserThread::DB, FROM_HERE, |
- base::Bind(&LoggedInPredictorTable::HasUserLoggedIn, |
- logged_in_predictor_table_, |
- url, |
- lookup_result, |
- database_was_present), |
- result_cb); |
-} |
- |
- |
-void PrerenderManager::CookieChanged(ChromeCookieDetails* details) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- |
- if (!logged_in_predictor_table_.get()) |
- return; |
- |
- // We only care when a cookie has been removed. |
- if (!details->removed) |
- return; |
- |
- std::string domain_key = |
- LoggedInPredictorTable::GetKeyFromDomain(details->cookie->Domain()); |
- |
- // If we have no record of this domain as a potentially logged in domain, |
- // nothing to do here. |
- if (logged_in_state_.get() && logged_in_state_->count(domain_key) < 1) |
- return; |
- |
- net::URLRequestContextGetter* rq_context = profile_->GetRequestContext(); |
- if (!rq_context) |
- return; |
- |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&CheckIfCookiesExistForDomainOnIOThread, |
- base::Unretained(rq_context), |
- domain_key, |
- base::Bind( |
- &PrerenderManager::CookieChangedAnyCookiesLeftLookupResult, |
- AsWeakPtr(), |
- domain_key) |
- )); |
-} |
- |
-void PrerenderManager::CookieChangedAnyCookiesLeftLookupResult( |
- const std::string& domain_key, |
- bool cookies_exist) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- |
- if (cookies_exist) |
- return; |
- |
- if (logged_in_predictor_table_.get()) { |
- BrowserThread::PostTask(BrowserThread::DB, |
- FROM_HERE, |
- base::Bind(&LoggedInPredictorTable::DeleteDomain, |
- logged_in_predictor_table_, |
- domain_key)); |
- } |
- |
- if (logged_in_state_.get()) |
- logged_in_state_->erase(domain_key); |
-} |
- |
-void PrerenderManager::LoggedInPredictorDataReceived( |
- scoped_ptr<LoggedInStateMap> new_map) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- logged_in_state_.swap(new_map); |
-} |
- |
void PrerenderManager::RecordNetworkBytes(Origin origin, |
bool used, |
int64 prerender_bytes) { |