1// Copyright 2014 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. 4 5#ifndef COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_ 6#define COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_ 7 8#include "base/macros.h" 9#include "ui/base/window_open_disposition.h" 10 11class GoogleURLTracker; 12class GURL; 13 14// Interface via which GoogleURLTracker communicates with its driver. 15// TODO(blundell): Rename this class to GoogleURLTrackerDriver. 16// crbug.com/373221 17class GoogleURLTrackerNavigationHelper { 18 public: 19 explicit GoogleURLTrackerNavigationHelper( 20 GoogleURLTracker* google_url_tracker); 21 virtual ~GoogleURLTrackerNavigationHelper(); 22 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; 27 28 // Returns whether or not this object is currently listening for navigation 29 // commits. 30 virtual bool IsListeningForNavigationCommit() = 0; 31 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; 35 36 // Returns whether or not this object is currently listening for tab 37 // destruction. 38 virtual bool IsListeningForTabDestruction() = 0; 39 40 // Opens |url| with the given window disposition. 41 virtual void OpenURL(GURL url, 42 WindowOpenDisposition disposition, 43 bool user_clicked_on_link) = 0; 44 45 protected: 46 GoogleURLTracker* google_url_tracker() { return google_url_tracker_; } 47 48 private: 49 GoogleURLTracker* google_url_tracker_; 50 51 DISALLOW_COPY_AND_ASSIGN(GoogleURLTrackerNavigationHelper); 52}; 53 54#endif // COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_URL_TRACKER_NAVIGATION_HELPER_H_ 55