blob: fc60fb233e2deb131d3027e98a2ee7503af4b4e1 [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_
#include "base/macros.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() {}
virtual ~ExtensionsBrowserAPIProvider() {}
// Registers any API functions in the given |registry|.
virtual void RegisterExtensionFunctions(
ExtensionFunctionRegistry* registry) = 0;
private:
DISALLOW_COPY_AND_ASSIGN(ExtensionsBrowserAPIProvider);
};
} // namespace extensions
#endif // EXTENSIONS_BROWSER_EXTENSIONS_BROWSER_API_PROVIDER_H_