1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_
6 #define CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_
8 #include "base/macros.h"
9 #include "ui/base/window_open_disposition.h"
11 class GoogleURLTracker
;
14 // Interface via which GoogleURLTracker communicates with its driver.
15 // TODO(blundell): Rename this class to GoogleURLTrackerDriver.
17 class GoogleURLTrackerNavigationHelper
{
19 explicit GoogleURLTrackerNavigationHelper(
20 GoogleURLTracker
* google_url_tracker
);
21 virtual ~GoogleURLTrackerNavigationHelper();
23 // Enables or disables listening for navigation commits.
24 // OnNavigationCommitted will be called for each navigation commit if
25 // listening is enabled.
26 virtual void SetListeningForNavigationCommit(bool listen
) = 0;
28 // Returns whether or not this object is currently listening for navigation
30 virtual bool IsListeningForNavigationCommit() = 0;
32 // Enables or disables listening for tab destruction. OnTabClosed will be
33 // called on tab destruction if listening is enabled.
34 virtual void SetListeningForTabDestruction(bool listen
) = 0;
36 // Returns whether or not this object is currently listening for tab
38 virtual bool IsListeningForTabDestruction() = 0;
40 // Opens |url| with the given window disposition.
41 virtual void OpenURL(GURL url
,
42 WindowOpenDisposition disposition
,
43 bool user_clicked_on_link
) = 0;
46 GoogleURLTracker
* google_url_tracker() { return google_url_tracker_
; }
49 GoogleURLTracker
* google_url_tracker_
;
51 DISALLOW_COPY_AND_ASSIGN(GoogleURLTrackerNavigationHelper
);
54 #endif // CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_