blob: e3414f32660050afa6c25ff8c8aba3f06b04d18b [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// 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_