shell_extensions_client.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1// Copyright 2014 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_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_
6#define EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "extensions/common/extensions_client.h"
11#include "extensions/common/permissions/extensions_api_permissions.h"
12
13namespace extensions {
14
15// The app_shell implementation of ExtensionsClient.
16class ShellExtensionsClient : public ExtensionsClient {
17 public:
18  ShellExtensionsClient();
19  virtual ~ShellExtensionsClient();
20
21  // ExtensionsClient overrides:
22  virtual void Initialize() OVERRIDE;
23  virtual const PermissionMessageProvider& GetPermissionMessageProvider()
24      const OVERRIDE;
25  virtual scoped_ptr<FeatureProvider> CreateFeatureProvider(
26      const std::string& name) const OVERRIDE;
27  virtual scoped_ptr<JSONFeatureProviderSource> CreateFeatureProviderSource(
28      const std::string& name) const OVERRIDE;
29  virtual void FilterHostPermissions(
30      const URLPatternSet& hosts,
31      URLPatternSet* new_hosts,
32      std::set<PermissionMessage>* messages) const OVERRIDE;
33  virtual void SetScriptingWhitelist(
34      const ScriptingWhitelist& whitelist) OVERRIDE;
35  virtual const ScriptingWhitelist& GetScriptingWhitelist() const OVERRIDE;
36  virtual URLPatternSet GetPermittedChromeSchemeHosts(
37      const Extension* extension,
38      const APIPermissionSet& api_permissions) const OVERRIDE;
39  virtual bool IsScriptableURL(const GURL& url,
40                               std::string* error) const OVERRIDE;
41  virtual bool IsAPISchemaGenerated(const std::string& name) const OVERRIDE;
42  virtual base::StringPiece GetAPISchema(
43      const std::string& name) const OVERRIDE;
44  virtual void RegisterAPISchemaResources(ExtensionAPI* api) const OVERRIDE;
45  virtual bool ShouldSuppressFatalErrors() const OVERRIDE;
46
47 private:
48  const ExtensionsAPIPermissions extensions_api_permissions_;
49
50  ScriptingWhitelist scripting_whitelist_;
51
52  DISALLOW_COPY_AND_ASSIGN(ShellExtensionsClient);
53};
54
55}  // namespace extensions
56
57#endif  // EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_
58