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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 14065014: Add the LoggedIn Predictor, to detect which websites a user is likely (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 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
Index: chrome/browser/browsing_data/browsing_data_remover.cc
===================================================================
--- chrome/browser/browsing_data/browsing_data_remover.cc (revision 194607)
+++ chrome/browser/browsing_data/browsing_data_remover.cc (working copy)
@@ -30,6 +30,9 @@
#include "chrome/browser/net/predictor.h"
#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/password_manager/password_store_factory.h"
+#include "chrome/browser/predictors/logged_in_predictor_table.h"
+#include "chrome/browser/predictors/predictor_database.h"
+#include "chrome/browser/predictors/predictor_database_factory.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -140,6 +143,7 @@
waiting_for_clear_history_(false),
waiting_for_clear_hostname_resolution_cache_(false),
waiting_for_clear_local_storage_(false),
+ waiting_for_clear_logged_in_predictor_(false),
waiting_for_clear_nacl_cache_(false),
waiting_for_clear_network_predictor_(false),
waiting_for_clear_networking_history_(false),
@@ -339,6 +343,9 @@
base::Bind(&BrowsingDataRemover::ClearCookiesOnIOThread,
base::Unretained(this), base::Unretained(rq_context)));
}
+ // Also delete the LoggedIn Predictor, which tries to keep track of which
+ // sites a user is logged into.
+ ClearLoggedInPredictor();
#if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING)
// Clear the safebrowsing cookies only if time period is for "all time". It
@@ -574,6 +581,7 @@
!waiting_for_clear_cookies_count_&&
!waiting_for_clear_history_ &&
!waiting_for_clear_local_storage_ &&
+ !waiting_for_clear_logged_in_predictor_ &&
!waiting_for_clear_session_storage_ &&
!waiting_for_clear_networking_history_ &&
!waiting_for_clear_server_bound_certs_ &&
@@ -643,6 +651,40 @@
base::Unretained(this)));
}
+void BrowsingDataRemover::OnClearedLoggedInPredictor() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ DCHECK(waiting_for_clear_logged_in_predictor_);
+ waiting_for_clear_logged_in_predictor_ = false;
+ NotifyAndDeleteIfDone();
+}
+
+void BrowsingDataRemover::ClearLoggedInPredictor() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ DCHECK(!waiting_for_clear_logged_in_predictor_);
+
+ predictors::PredictorDatabase* predictor_db =
+ predictors::PredictorDatabaseFactory::GetForProfile(profile_);
+ if (!predictor_db)
+ return;
+
+ predictors::LoggedInPredictorTable* logged_in_table =
+ predictor_db->logged_in_table();
+ if (!logged_in_table)
+ return;
+
+ waiting_for_clear_logged_in_predictor_ = true;
+
+ BrowserThread::PostTaskAndReply(
+ BrowserThread::DB,
+ FROM_HERE,
+ base::Bind(&predictors::LoggedInPredictorTable::DeleteAllCreatedBetween,
+ logged_in_table,
+ delete_begin_,
+ delete_end_),
+ base::Bind(&BrowsingDataRemover::OnClearedLoggedInPredictor,
+ base::Unretained(this)));
+}
+
void BrowsingDataRemover::OnClearedNetworkPredictor() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
waiting_for_clear_network_predictor_ = false;
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_remover.h ('k') | chrome/browser/predictors/logged_in_predictor_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698