// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_ #define CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_ class GoogleURLTracker; class InfoBarService; class Profile; namespace content { class NavigationController; } // A helper class for GoogleURLTracker that abstracts the details of listening // for various navigation events. class GoogleURLTrackerNavigationHelper { public: virtual ~GoogleURLTrackerNavigationHelper() {} // Sets the GoogleURLTracker that should receive callbacks from this observer. virtual void SetGoogleURLTracker(GoogleURLTracker* tracker) = 0; // Enables or disables listening for navigation starts. OnNavigationPending // will be called for each navigation start if listening is enabled. virtual void SetListeningForNavigationStart(bool listen) = 0; // Returns whether or not the observer is currently listening for navigation // starts. virtual bool IsListeningForNavigationStart() = 0; // Enables or disables listening for navigation commits for the given // NavigationController. OnNavigationCommitted will be called for each // navigation commit if listening is enabled. virtual void SetListeningForNavigationCommit( const content::NavigationController* nav_controller, bool listen) = 0; // Returns whether or not the observer is currently listening for navigation // commits for the given NavigationController. virtual bool IsListeningForNavigationCommit( const content::NavigationController* nav_controller) = 0; // Enables or disables listening for tab destruction for the given // NavigationController. OnTabClosed will be called on tab destruction if // listening is enabled. virtual void SetListeningForTabDestruction( const content::NavigationController* nav_controller, bool listen) = 0; // Returns whether or not the observer is currently listening for tab // destruction for the given NavigationController. virtual bool IsListeningForTabDestruction( const content::NavigationController* nav_controller) = 0; }; #endif // CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_