Chromium Code Reviews| Index: chrome/browser/predictors/resource_prefetch_predictor.cc |
| diff --git a/chrome/browser/predictors/resource_prefetch_predictor.cc b/chrome/browser/predictors/resource_prefetch_predictor.cc |
| index 6f1eeab35dc739d8175bec98fe0eda1c586d846e..04c21d801435c74b057f7452b4c06e3ae1cd742e 100644 |
| --- a/chrome/browser/predictors/resource_prefetch_predictor.cc |
| +++ b/chrome/browser/predictors/resource_prefetch_predictor.cc |
| @@ -15,10 +15,8 @@ |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/time/time.h" |
| -#include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/history/history_database.h" |
| #include "chrome/browser/history/history_db_task.h" |
| -#include "chrome/browser/history/history_notifications.h" |
| #include "chrome/browser/history/history_service.h" |
| #include "chrome/browser/history/history_service_factory.h" |
| #include "chrome/browser/predictors/predictor_database.h" |
| @@ -29,9 +27,6 @@ |
| #include "chrome/common/url_constants.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/navigation_controller.h" |
| -#include "content/public/browser/notification_service.h" |
| -#include "content/public/browser/notification_source.h" |
| -#include "content/public/browser/notification_types.h" |
| #include "content/public/browser/resource_request_info.h" |
| #include "content/public/browser/web_contents.h" |
| #include "net/base/mime_util.h" |
| @@ -437,43 +432,12 @@ void ResourcePrefetchPredictor::FinishedPrefetchForNavigation( |
| } |
| } |
| -void ResourcePrefetchPredictor::Observe( |
| - int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) { |
| - DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| - |
| - switch (type) { |
| - case chrome::NOTIFICATION_HISTORY_URLS_DELETED: { |
| - DCHECK_EQ(initialization_state_, INITIALIZED); |
| - const content::Details<const history::URLsDeletedDetails> |
| - urls_deleted_details = |
| - content::Details<const history::URLsDeletedDetails>(details); |
| - if (urls_deleted_details->all_history) { |
| - DeleteAllUrls(); |
| - UMA_HISTOGRAM_ENUMERATION("ResourcePrefetchPredictor.ReportingEvent", |
| - REPORTING_EVENT_ALL_HISTORY_CLEARED, |
| - REPORTING_EVENT_COUNT); |
| - } else { |
| - DeleteUrls(urls_deleted_details->rows); |
| - UMA_HISTOGRAM_ENUMERATION("ResourcePrefetchPredictor.ReportingEvent", |
| - REPORTING_EVENT_PARTIAL_HISTORY_CLEARED, |
| - REPORTING_EVENT_COUNT); |
| - } |
| - break; |
| - } |
| - |
| - default: |
| - NOTREACHED() << "Unexpected notification observed."; |
| - break; |
| - } |
| -} |
| - |
| void ResourcePrefetchPredictor::Shutdown() { |
| if (prefetch_manager_.get()) { |
| prefetch_manager_->ShutdownOnUIThread(); |
| prefetch_manager_ = NULL; |
| } |
| + history_service_observer_.RemoveAll(); |
| } |
| void ResourcePrefetchPredictor::OnMainFrameRequest( |
| @@ -709,7 +673,7 @@ void ResourcePrefetchPredictor::StopPrefetching( |
| void ResourcePrefetchPredictor::StartInitialization() { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| - DCHECK_EQ(initialization_state_, NOT_INITIALIZED); |
| + DCHECK_EQ(NOT_INITIALIZED, initialization_state_); |
| initialization_state_ = INITIALIZING; |
| // Create local caches using the database as loaded. |
| @@ -731,7 +695,7 @@ void ResourcePrefetchPredictor::CreateCaches( |
| scoped_ptr<PrefetchDataMap> host_data_map) { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| - DCHECK_EQ(initialization_state_, INITIALIZING); |
| + DCHECK_EQ(INITIALIZING, initialization_state_); |
| DCHECK(!url_table_cache_); |
| DCHECK(!host_table_cache_); |
| DCHECK(inflight_navigations_.empty()); |
| @@ -749,19 +713,13 @@ void ResourcePrefetchPredictor::CreateCaches( |
| void ResourcePrefetchPredictor::OnHistoryAndCacheLoaded() { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| - DCHECK_EQ(initialization_state_, INITIALIZING); |
| - |
| - notification_registrar_.Add(this, |
| - chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
| - content::Source<Profile>(profile_)); |
| + DCHECK_EQ(INITIALIZING, initialization_state_); |
| // Initialize the prefetch manager only if prefetching is enabled. |
| if (config_.IsPrefetchingEnabled(profile_)) { |
| prefetch_manager_ = new ResourcePrefetcherManager( |
| this, config_, profile_->GetRequestContext()); |
| } |
| - |
| - history_service_observer_.RemoveAll(); |
| initialization_state_ = INITIALIZED; |
| } |
| @@ -807,15 +765,14 @@ void ResourcePrefetchPredictor::DeleteUrls(const history::URLRows& urls) { |
| // in the cache. |
| std::vector<std::string> urls_to_delete, hosts_to_delete; |
| - for (history::URLRows::const_iterator it = urls.begin(); it != urls.end(); |
| - ++it) { |
| - const std::string url_spec = it->url().spec(); |
| + for (const auto& it : urls) { |
| + const std::string& url_spec = it.url().spec(); |
| if (url_table_cache_->find(url_spec) != url_table_cache_->end()) { |
| urls_to_delete.push_back(url_spec); |
| url_table_cache_->erase(url_spec); |
| } |
| - const std::string host = it->url().host(); |
| + const std::string& host = it.url().host(); |
| if (host_table_cache_->find(host) != host_table_cache_->end()) { |
| hosts_to_delete.push_back(host); |
| host_table_cache_->erase(host); |
| @@ -1339,6 +1296,27 @@ void ResourcePrefetchPredictor::ReportPredictedAccuracyStatsHelper( |
| #undef RPP_PREDICTED_HISTOGRAM_COUNTS |
| } |
| +void ResourcePrefetchPredictor::OnURLsDeleted( |
| + HistoryService* history_service, |
| + bool all_history, |
| + bool expired, |
| + const history::URLRows& deleted_rows, |
| + const std::set<GURL>& favicon_urls) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + DCHECK_EQ(INITIALIZED, initialization_state_); |
|
sky
2014/12/13 00:29:18
Similar comment here.
nshaik
2014/12/13 01:49:21
True, I can modify the code to check for initializ
|
| + if (all_history) { |
| + DeleteAllUrls(); |
| + UMA_HISTOGRAM_ENUMERATION("ResourcePrefetchPredictor.ReportingEvent", |
| + REPORTING_EVENT_ALL_HISTORY_CLEARED, |
| + REPORTING_EVENT_COUNT); |
| + } else { |
| + DeleteUrls(deleted_rows); |
| + UMA_HISTOGRAM_ENUMERATION("ResourcePrefetchPredictor.ReportingEvent", |
| + REPORTING_EVENT_PARTIAL_HISTORY_CLEARED, |
| + REPORTING_EVENT_COUNT); |
| + } |
| +} |
| + |
| void ResourcePrefetchPredictor::OnHistoryServiceLoaded( |
| HistoryService* history_service) { |
| OnHistoryAndCacheLoaded(); |