1 // Copyright 2018 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 CHROMECAST_COMMON_CAST_EXTENSIONS_CLIENT_H_ 6 #define CHROMECAST_COMMON_CAST_EXTENSIONS_CLIENT_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/macros.h" 10 #include "extensions/common/extensions_client.h" 11 #include "url/gurl.h" 12 13 namespace extensions { 14 15 // The cast_shell implementation of ExtensionsClient. 16 class CastExtensionsClient : public ExtensionsClient { 17 public: 18 CastExtensionsClient(); 19 ~CastExtensionsClient() override; 20 21 // ExtensionsClient overrides: 22 void Initialize() override; 23 void InitializeWebStoreUrls(base::CommandLine* command_line) override; 24 const PermissionMessageProvider& GetPermissionMessageProvider() 25 const override; 26 const std::string GetProductName() override; 27 void FilterHostPermissions(const URLPatternSet& hosts, 28 URLPatternSet* new_hosts, 29 PermissionIDSet* permissions) const override; 30 void SetScriptingAllowlist(const ScriptingAllowlist& allowlist) override; 31 const ScriptingAllowlist& GetScriptingAllowlist() const override; 32 URLPatternSet GetPermittedChromeSchemeHosts( 33 const Extension* extension, 34 const APIPermissionSet& api_permissions) const override; 35 bool IsScriptableURL(const GURL& url, std::string* error) const override; 36 const GURL& GetWebstoreBaseURL() const override; 37 const GURL& GetWebstoreUpdateURL() const override; 38 bool IsBlacklistUpdateURL(const GURL& url) const override; 39 40 private: 41 ScriptingAllowlist scripting_allowlist_; 42 43 const GURL webstore_base_url_; 44 const GURL webstore_update_url_; 45 46 DISALLOW_COPY_AND_ASSIGN(CastExtensionsClient); 47 }; 48 49 } // namespace extensions 50 51 #endif // CHROMECAST_COMMON_CAST_EXTENSIONS_CLIENT_H_ 52