Chromium Code Reviews| 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) { |