| Index: chrome/browser/predictors/autocomplete_action_predictor.cc
|
| diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
| index fed802ee7a256b6c24bed3d132d5637fb754f6e8..6cc76e839d2b8458a3a637d09cd5053fd1ea048f 100644
|
| --- a/chrome/browser/predictors/autocomplete_action_predictor.cc
|
| +++ b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
| @@ -69,7 +69,8 @@ AutocompleteActionPredictor::AutocompleteActionPredictor(Profile* profile)
|
| : profile_(profile),
|
| main_profile_predictor_(NULL),
|
| incognito_predictor_(NULL),
|
| - initialized_(false) {
|
| + initialized_(false),
|
| + history_service_observer_(this) {
|
| if (profile_->IsOffTheRecord()) {
|
| main_profile_predictor_ = AutocompleteActionPredictorFactory::GetForProfile(
|
| profile_->GetOriginalProfile());
|
| @@ -257,15 +258,6 @@ void AutocompleteActionPredictor::Observe(
|
| break;
|
| }
|
|
|
| - case chrome::NOTIFICATION_HISTORY_LOADED: {
|
| - TryDeleteOldEntries(content::Details<HistoryService>(details).ptr());
|
| -
|
| - notification_registrar_.Remove(this,
|
| - chrome::NOTIFICATION_HISTORY_LOADED,
|
| - content::Source<Profile>(profile_));
|
| - break;
|
| - }
|
| -
|
| default:
|
| NOTREACHED() << "Unexpected notification observed.";
|
| break;
|
| @@ -481,8 +473,8 @@ void AutocompleteActionPredictor::CreateCaches(
|
| if (!TryDeleteOldEntries(history_service)) {
|
| // Wait for the notification that the history service is ready and the URL
|
| // DB is loaded.
|
| - notification_registrar_.Add(this, chrome::NOTIFICATION_HISTORY_LOADED,
|
| - content::Source<Profile>(profile_));
|
| + if (history_service)
|
| + history_service_observer_.Add(history_service);
|
| }
|
| }
|
|
|
| @@ -609,4 +601,14 @@ AutocompleteActionPredictor::TransitionalMatch::TransitionalMatch() {
|
| AutocompleteActionPredictor::TransitionalMatch::~TransitionalMatch() {
|
| }
|
|
|
| +void AutocompleteActionPredictor::Shutdown() {
|
| + history_service_observer_.RemoveAll();
|
| +}
|
| +
|
| +void AutocompleteActionPredictor::OnHistoryServiceLoaded(
|
| + HistoryService* history_service) {
|
| + TryDeleteOldEntries(history_service);
|
| + history_service_observer_.Remove(history_service);
|
| +}
|
| +
|
| } // namespace predictors
|
|
|