#define CHROME_BROWSER_UI_NAVIGATION_CORRECTION_TAB_OBSERVER_H_
#include "base/prefs/pref_change_registrar.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
+#include "components/google/core/browser/google_url_tracker.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
// Per-tab class to implement navigation suggestion service functionality.
class NavigationCorrectionTabObserver
: public content::WebContentsObserver,
- public content::NotificationObserver,
public content::WebContentsUserData<NavigationCorrectionTabObserver> {
public:
- virtual ~NavigationCorrectionTabObserver();
+ ~NavigationCorrectionTabObserver() override;
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
friend class content::WebContentsUserData<NavigationCorrectionTabObserver>;
// content::WebContentsObserver overrides:
- virtual void RenderViewCreated(
- content::RenderViewHost* render_view_host) OVERRIDE;
-
- // content::NotificationObserver overrides:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
+ void RenderViewCreated(content::RenderViewHost* render_view_host) override;
// Internal helpers ----------------------------------------------------------
+ // Callback that is called when the Google URL is updated.
+ void OnGoogleURLUpdated();
+
// Returns the URL for the correction service. If the returned URL
// is empty, the default error pages will be used.
GURL GetNavigationCorrectionURL() const;
void UpdateNavigationCorrectionInfo(content::RenderViewHost* rvh);
Profile* profile_;
- content::NotificationRegistrar registrar_;
PrefChangeRegistrar pref_change_registrar_;
+ scoped_ptr<GoogleURLTracker::Subscription> google_url_updated_subscription_;
DISALLOW_COPY_AND_ASSIGN(NavigationCorrectionTabObserver);
};