15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_ 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/basictypes.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/compiler_specific.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "extensions/common/extensions_client.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "extensions/common/permissions/extensions_api_permissions.h" 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions { 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// The app_shell implementation of ExtensionsClient. 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ShellExtensionsClient : public ExtensionsClient { 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public: 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ShellExtensionsClient(); 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual ~ShellExtensionsClient(); 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // ExtensionsClient overrides: 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void Initialize() OVERRIDE; 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const PermissionMessageProvider& GetPermissionMessageProvider() 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const OVERRIDE; 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual const std::string GetProductName() OVERRIDE; 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual scoped_ptr<FeatureProvider> CreateFeatureProvider( 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const std::string& name) const OVERRIDE; 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual scoped_ptr<JSONFeatureProviderSource> CreateFeatureProviderSource( 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const std::string& name) const OVERRIDE; 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void FilterHostPermissions( 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const URLPatternSet& hosts, 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) URLPatternSet* new_hosts, 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) std::set<PermissionMessage>* messages) const OVERRIDE; 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void SetScriptingWhitelist( 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const ScriptingWhitelist& whitelist) OVERRIDE; 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const ScriptingWhitelist& GetScriptingWhitelist() const OVERRIDE; 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual URLPatternSet GetPermittedChromeSchemeHosts( 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const Extension* extension, 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const APIPermissionSet& api_permissions) const OVERRIDE; 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual bool IsScriptableURL(const GURL& url, 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) std::string* error) const OVERRIDE; 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual bool IsAPISchemaGenerated(const std::string& name) const OVERRIDE; 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual base::StringPiece GetAPISchema( 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const std::string& name) const OVERRIDE; 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void RegisterAPISchemaResources(ExtensionAPI* api) const OVERRIDE; 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual bool ShouldSuppressFatalErrors() const OVERRIDE; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual std::string GetWebstoreBaseURL() const OVERRIDE; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual std::string GetWebstoreUpdateURL() const OVERRIDE; 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool IsBlacklistUpdateURL(const GURL& url) const OVERRIDE; 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private: 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const ExtensionsAPIPermissions extensions_api_permissions_; 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ScriptingWhitelist scripting_whitelist_; 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ShellExtensionsClient); 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}; 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace extensions 605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif // EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_CLIENT_H_ 62