| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ |
| 6 #define CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ | 6 #define CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
| 12 #include "base/string_piece.h" | 12 #include "base/string_piece.h" |
| 13 #include "extensions/common/url_pattern.h" | 13 #include "extensions/common/url_pattern.h" |
| 14 #include "extensions/common/url_pattern_set.h" | 14 #include "extensions/common/url_pattern_set.h" |
| 15 #include "googleurl/src/gurl.h" | 15 #include "googleurl/src/gurl.h" |
| 16 | 16 |
| 17 class Pickle; | 17 class Pickle; |
| 18 class PickleIterator; | 18 class PickleIterator; |
| 19 | 19 |
| 20 namespace extensions { | 20 namespace extensions { |
| 21 | 21 |
| 22 // Represents a user script, either a standalone one, or one that is part of an | 22 // Represents a user script, either a standalone one, or one that is part of an |
| 23 // extension. | 23 // extension. |
| 24 class UserScript { | 24 class UserScript { |
| 25 public: | 25 public: |
| 26 // The file extension for standalone user scripts. | 26 // The file extension for standalone user scripts. |
| 27 static const char kFileExtension[]; | 27 static const char kFileExtension[]; |
| 28 | 28 |
| 29 // The bitmask for valid user script injectable schemes used by URLPattern. | |
| 30 enum { | |
| 31 kValidUserScriptSchemes = URLPattern::SCHEME_HTTP | | |
| 32 URLPattern::SCHEME_HTTPS | | |
| 33 URLPattern::SCHEME_FILE | | |
| 34 URLPattern::SCHEME_FTP | |
| 35 }; | |
| 36 | |
| 37 // Check if a URL should be treated as a user script and converted to an | 29 // Check if a URL should be treated as a user script and converted to an |
| 38 // extension. | 30 // extension. |
| 39 static bool IsURLUserScript(const GURL& url, const std::string& mime_type); | 31 static bool IsURLUserScript(const GURL& url, const std::string& mime_type); |
| 40 | 32 |
| 33 // Get the valid user script schemes for the current process. If |
| 34 // canExecuteScriptEverywhere is true, this will return ALL_SCHEMES. |
| 35 static int ValidUserScriptSchemes(bool canExecuteScriptEverywhere = false); |
| 36 |
| 41 // Locations that user scripts can be run inside the document. | 37 // Locations that user scripts can be run inside the document. |
| 42 enum RunLocation { | 38 enum RunLocation { |
| 43 UNDEFINED, | 39 UNDEFINED, |
| 44 DOCUMENT_START, // After the documentElemnet is created, but before | 40 DOCUMENT_START, // After the documentElemnet is created, but before |
| 45 // anything else happens. | 41 // anything else happens. |
| 46 DOCUMENT_END, // After the entire document is parsed. Same as | 42 DOCUMENT_END, // After the entire document is parsed. Same as |
| 47 // DOMContentLoaded. | 43 // DOMContentLoaded. |
| 48 DOCUMENT_IDLE, // Sometime after DOMContentLoaded, as soon as the document | 44 DOCUMENT_IDLE, // Sometime after DOMContentLoaded, as soon as the document |
| 49 // is "idle". Currently this uses the simple heuristic of: | 45 // is "idle". Currently this uses the simple heuristic of: |
| 50 // min(DOM_CONTENT_LOADED + TIMEOUT, ONLOAD), but no | 46 // min(DOM_CONTENT_LOADED + TIMEOUT, ONLOAD), but no |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 | 251 |
| 256 // True if the script should be injected into an incognito tab. | 252 // True if the script should be injected into an incognito tab. |
| 257 bool incognito_enabled_; | 253 bool incognito_enabled_; |
| 258 }; | 254 }; |
| 259 | 255 |
| 260 typedef std::vector<UserScript> UserScriptList; | 256 typedef std::vector<UserScript> UserScriptList; |
| 261 | 257 |
| 262 } // namespace extensions | 258 } // namespace extensions |
| 263 | 259 |
| 264 #endif // CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ | 260 #endif // CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ |
| OLD | NEW |