blob: 45c101b5fabfb26d41bd97c9059932afb8c551c9 [file] [log] [blame]
// Copyright 2014 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 COMPONENTS_GOOGLE_GOOGLE_URL_TRACKER_CLIENT_H_
#define COMPONENTS_GOOGLE_GOOGLE_URL_TRACKER_CLIENT_H_
#include "base/macros.h"
#include "url/gurl.h"
class GoogleURLTracker;
class PrefService;
namespace net {
class URLRequestContextGetter;
}
// Interface by which GoogleURLTracker communicates with its embedder.
class GoogleURLTrackerClient {
public:
GoogleURLTrackerClient();
virtual ~GoogleURLTrackerClient();
// Sets the GoogleURLTracker that is associated with this client.
void set_google_url_tracker(GoogleURLTracker* google_url_tracker) {
google_url_tracker_ = google_url_tracker;
}
// 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 client is currently listening for navigation
// starts.
virtual bool IsListeningForNavigationStart() = 0;
// Returns whether background networking is enabled.
virtual bool IsBackgroundNetworkingEnabled() = 0;
// Returns the PrefService that the GoogleURLTracker should use.
virtual PrefService* GetPrefs() = 0;
// Returns the URL request context information that the GoogleURLTracker
// should use.
virtual net::URLRequestContextGetter* GetRequestContext() = 0;
protected:
GoogleURLTracker* google_url_tracker() { return google_url_tracker_; }
private:
GoogleURLTracker* google_url_tracker_;
DISALLOW_COPY_AND_ASSIGN(GoogleURLTrackerClient);
};
#endif // COMPONENTS_GOOGLE_GOOGLE_URL_TRACKER_CLIENT_H_