// Copyright 2018 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_EXTENSIONS_BROWSER_API_PROVIDER_H_
#define EXTENSIONS_BROWSER_EXTENSIONS_BROWSER_API_PROVIDER_H_

class ExtensionFunctionRegistry;
namespace extensions {

// A class to provide browser-side, API-specific knowledge to the extensions
// system. This allows for composition of multiple providers, so that we can
// easily add or subtract features in different configurations.
class ExtensionsBrowserAPIProvider {
 public:
  ExtensionsBrowserAPIProvider() = default;
  ExtensionsBrowserAPIProvider(const ExtensionsBrowserAPIProvider&) = delete;
  ExtensionsBrowserAPIProvider& operator=(const ExtensionsBrowserAPIProvider&) =
      delete;
  virtual ~ExtensionsBrowserAPIProvider() = default;

  // Registers any API functions in the given |registry|.
  virtual void RegisterExtensionFunctions(
      ExtensionFunctionRegistry* registry) = 0;
};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_EXTENSIONS_BROWSER_API_PROVIDER_H_
