content_scripts_handler.h revision f2477e01787aa58f445919b809d89e252beef54f
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 14namespace extensions { 15 16class URLPatternSet; 17 18struct 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. 38class ContentScriptsHandler : public ManifestHandler { 39 public: 40 ContentScriptsHandler(); 41 virtual ~ContentScriptsHandler(); 42 43 virtual bool Parse(Extension* extension, 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