blob: cdd26037fe235e15d42b5c1871bc55cc058a815d [file] [log] [blame]
// Copyright 2015 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 EXTENSIONS_BROWSER_EXTENSION_HOST_OBSERVER_H_
#define EXTENSIONS_BROWSER_EXTENSION_HOST_OBSERVER_H_
#include <string>
namespace extensions {
class ExtensionHost;
class ExtensionHostObserver {
public:
virtual ~ExtensionHostObserver() {}
// TODO(kalman): Why do these all return const ExtensionHosts? It seems
// perfectly reasonable for an Observer implementation to mutate any
// ExtensionHost it's given.
// Called when an ExtensionHost is destroyed.
virtual void OnExtensionHostDestroyed(const ExtensionHost* host) {}
// Called when a message has been disptached to the event page corresponding
// to |host|.
virtual void OnBackgroundEventDispatched(const ExtensionHost* host,
const std::string& event_name,
int event_id) {}
// Called when a previously dispatched message has been acked by the
// event page for |host|.
virtual void OnBackgroundEventAcked(const ExtensionHost* host, int event_id) {
}
// Called when the extension associated with |host| starts a new network
// request.
virtual void OnNetworkRequestStarted(const ExtensionHost* host,
uint64 request_id) {}
// Called when the network request with |request_id| is done.
virtual void OnNetworkRequestDone(const ExtensionHost* host,
uint64 request_id) {}
};
} // namespace extensions
#endif /* EXTENSIONS_BROWSER_EXTENSION_HOST_OBSERVER_H_ */