Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 1077433002: Remove PrerenderLocalPredictor, part 1. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/prerender/prerender_origin.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..1a77ef9919b95a18c9245c287b1786f93de69acc 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -12,26 +12,19 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/logging.h"
-#include "base/memory/weak_ptr.h"
#include "base/metrics/histogram.h"
-#include "base/prefs/pref_service.h"
-#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "base/timer/elapsed_timer.h"
#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"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_field_trial.h"
#include "chrome/browser/prerender/prerender_final_status.h"
#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"
@@ -42,7 +35,6 @@
#include "chrome/browser/ui/tab_contents/core_tab_helper.h"
#include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/prerender_messages.h"
#include "chrome/common/prerender_types.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host.h"
@@ -59,14 +51,11 @@
#include "content/public/browser/web_contents_delegate.h"
#include "content/public/common/url_constants.h"
#include "extensions/common/constants.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_getter.h"
using content::BrowserThread;
using content::RenderViewHost;
using content::SessionStorageNamespace;
using content::WebContents;
-using predictors::LoggedInPredictorTable;
namespace prerender {
@@ -120,37 +109,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 +196,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 +210,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 +235,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 +284,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 +579,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 +990,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 +1060,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 +1133,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 +1230,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 +1255,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) {
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/browser/prerender/prerender_origin.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698