blob: 585e1bb09f8b47176804d5eb0d59fbc71b2b6fac [file] [log] [blame]
// 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_