// 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_EVENT_PAGE_TRACKER_H_
#define EXTENSIONS_BROWSER_EVENT_PAGE_TRACKER_H_

#include <string>

#include "base/callback.h"

namespace extensions {

class Extension;
class ExtensionHost;

// Tracks an extension's event page suspend state.
class EventPageTracker {
 public:
  // Returns true if an extension's event page is active,
  // or false if it is suspended.
  virtual bool IsEventPageSuspended(const std::string& extension_id) = 0;

  // Wakes an extension's event page from a suspended state and calls
  // |callback| after it is reactivated.
  //
  // |callback| will be passed true if the extension was reactivated
  // successfully, or false if an error occurred.
  //
  // Returns true if a wake operation was scheduled successfully,
  // or false if the event page was already awake.
  // Callback will be run asynchronously if true, and never run if false.
  virtual bool WakeEventPage(const std::string& extension_id,
                             const base::Callback<void(bool)>& callback) = 0;
};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_EVENT_PAGE_TRACKER_H_
