1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef EXTENSIONS_COMMON_EXTENSIONS_CLIENT_H_ 6#define EXTENSIONS_COMMON_EXTENSIONS_CLIENT_H_ 7 8#include <string> 9 10namespace extensions { 11 12class FeatureProvider; 13class PermissionsProvider; 14 15// Sets up global state for the extensions system. Should be Set() once in each 16// process. This should be implemented by the client of the extensions system. 17class ExtensionsClient { 18 public: 19 // Returns a PermissionsProvider to initialize the permissions system. 20 virtual const PermissionsProvider& GetPermissionsProvider() const = 0; 21 22 // Gets a feature provider for a specific feature type. 23 virtual FeatureProvider* GetFeatureProviderByName(const std::string& name) 24 const = 0; 25 26 // Called at startup. Registers the handlers for parsing manifests. 27 virtual void RegisterManifestHandlers() const = 0; 28 29 // Return the extensions client. 30 static ExtensionsClient* Get(); 31 32 // Initialize the extensions system with this extensions client. 33 static void Set(ExtensionsClient* client); 34}; 35 36} // namespace extensions 37 38#endif // EXTENSIONS_COMMON_EXTENSIONS_CLIENT_H_ 39