1 // Copyright (c) 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 CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_CONTENT_SCRIPTS_HANDLER_H_ 6 #define CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_CONTENT_SCRIPTS_HANDLER_H_ 7 8 #include <string> 9 10 #include "extensions/common/extension.h" 11 #include "extensions/common/manifest_handler.h" 12 #include "extensions/common/user_script.h" 13 14 namespace extensions { 15 16 class URLPatternSet; 17 18 struct ContentScriptsInfo : public Extension::ManifestData { 19 ContentScriptsInfo(); 20 virtual ~ContentScriptsInfo(); 21 22 // Paths to the content scripts the extension contains (possibly empty). 23 UserScriptList content_scripts; 24 25 // Returns the content scripts for the extension (if the extension has 26 // no content scripts, this returns an empty list). 27 static const UserScriptList& GetContentScripts(const Extension* extension); 28 29 // Returns the list of hosts that this extension can run content scripts on. 30 static URLPatternSet GetScriptableHosts(const Extension* extension); 31 32 // Returns true if the extension has a content script declared at |url|. 33 static bool ExtensionHasScriptAtURL(const Extension* extension, 34 const GURL& url); 35 }; 36 37 // Parses the "content_scripts" manifest key. 38 class ContentScriptsHandler : public ManifestHandler { 39 public: 40 ContentScriptsHandler(); 41 virtual ~ContentScriptsHandler(); 42 43 virtual bool Parse(Extension* extension, base::string16* error) OVERRIDE; 44 virtual bool Validate(const Extension* extension, 45 std::string* error, 46 std::vector<InstallWarning>* warnings) const OVERRIDE; 47 48 private: 49 virtual const std::vector<std::string> Keys() const OVERRIDE; 50 51 DISALLOW_COPY_AND_ASSIGN(ContentScriptsHandler); 52 }; 53 54 } // namespace extensions 55 56 #endif // CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_CONTENT_SCRIPTS_HANDLER_H_ 57