Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: chrome/common/extensions/user_script.h

Issue 9447084: Refactor Pickle Read methods to use higher performance PickleIterator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: compile (racing with incoming CLs) Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/extensions/extension_unpacker.cc ('k') | chrome/common/extensions/user_script.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 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 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/file_path.h" 12 #include "base/file_path.h"
13 #include "base/string_piece.h" 13 #include "base/string_piece.h"
14 #include "googleurl/src/gurl.h" 14 #include "googleurl/src/gurl.h"
15 #include "chrome/common/extensions/url_pattern.h" 15 #include "chrome/common/extensions/url_pattern.h"
16 #include "chrome/common/extensions/url_pattern_set.h" 16 #include "chrome/common/extensions/url_pattern_set.h"
17 17
18 class Pickle; 18 class Pickle;
19 class PickleIterator;
19 20
20 // Represents a user script, either a standalone one, or one that is part of an 21 // Represents a user script, either a standalone one, or one that is part of an
21 // extension. 22 // extension.
22 class UserScript { 23 class UserScript {
23 public: 24 public:
24 // The file extension for standalone user scripts. 25 // The file extension for standalone user scripts.
25 static const char kFileExtension[]; 26 static const char kFileExtension[];
26 27
27 // The bitmask for valid user script injectable schemes used by URLPattern. 28 // The bitmask for valid user script injectable schemes used by URLPattern.
28 enum { 29 enum {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 void set_external_content(const base::StringPiece& content) { 76 void set_external_content(const base::StringPiece& content) {
76 external_content_ = content; 77 external_content_ = content;
77 } 78 }
78 void set_content(const base::StringPiece& content) { 79 void set_content(const base::StringPiece& content) {
79 content_.assign(content.begin(), content.end()); 80 content_.assign(content.begin(), content.end());
80 } 81 }
81 82
82 // Serialization support. The content and FilePath members will not be 83 // Serialization support. The content and FilePath members will not be
83 // serialized! 84 // serialized!
84 void Pickle(::Pickle* pickle) const; 85 void Pickle(::Pickle* pickle) const;
85 void Unpickle(const ::Pickle& pickle, void** iter); 86 void Unpickle(const ::Pickle& pickle, PickleIterator* iter);
86 87
87 private: 88 private:
88 // Where the script file lives on the disk. We keep the path split so that 89 // Where the script file lives on the disk. We keep the path split so that
89 // it can be localized at will. 90 // it can be localized at will.
90 FilePath extension_root_; 91 FilePath extension_root_;
91 FilePath relative_path_; 92 FilePath relative_path_;
92 93
93 // The url to this scipt file. 94 // The url to this scipt file.
94 GURL url_; 95 GURL url_;
95 96
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 // otherwise. 181 // otherwise.
181 bool MatchesURL(const GURL& url) const; 182 bool MatchesURL(const GURL& url) const;
182 183
183 // Serialize the UserScript into a pickle. The content of the scripts and 184 // Serialize the UserScript into a pickle. The content of the scripts and
184 // paths to UserScript::Files will not be serialized! 185 // paths to UserScript::Files will not be serialized!
185 void Pickle(::Pickle* pickle) const; 186 void Pickle(::Pickle* pickle) const;
186 187
187 // Deserialize the script from a pickle. Note that this always succeeds 188 // Deserialize the script from a pickle. Note that this always succeeds
188 // because presumably we were the one that pickled it, and we did it 189 // because presumably we were the one that pickled it, and we did it
189 // correctly. 190 // correctly.
190 void Unpickle(const ::Pickle& pickle, void** iter); 191 void Unpickle(const ::Pickle& pickle, PickleIterator* iter);
191 192
192 private: 193 private:
193 // Pickle helper functions used to pickle the individual types of components. 194 // Pickle helper functions used to pickle the individual types of components.
194 void PickleGlobs(::Pickle* pickle, 195 void PickleGlobs(::Pickle* pickle,
195 const std::vector<std::string>& globs) const; 196 const std::vector<std::string>& globs) const;
196 void PickleURLPatternSet(::Pickle* pickle, 197 void PickleURLPatternSet(::Pickle* pickle,
197 const URLPatternSet& pattern_list) const; 198 const URLPatternSet& pattern_list) const;
198 void PickleScripts(::Pickle* pickle, const FileList& scripts) const; 199 void PickleScripts(::Pickle* pickle, const FileList& scripts) const;
199 200
200 // Unpickle helper functions used to unpickle individual types of components. 201 // Unpickle helper functions used to unpickle individual types of components.
201 void UnpickleGlobs(const ::Pickle& pickle, void** iter, 202 void UnpickleGlobs(const ::Pickle& pickle, PickleIterator* iter,
202 std::vector<std::string>* globs); 203 std::vector<std::string>* globs);
203 void UnpickleURLPatternSet(const ::Pickle& pickle, void** iter, 204 void UnpickleURLPatternSet(const ::Pickle& pickle, PickleIterator* iter,
204 URLPatternSet* pattern_list); 205 URLPatternSet* pattern_list);
205 void UnpickleScripts(const ::Pickle& pickle, void** iter, 206 void UnpickleScripts(const ::Pickle& pickle, PickleIterator* iter,
206 FileList* scripts); 207 FileList* scripts);
207 208
208 // The location to run the script inside the document. 209 // The location to run the script inside the document.
209 RunLocation run_location_; 210 RunLocation run_location_;
210 211
211 // The namespace of the script. This is used by Greasemonkey in the same way 212 // The namespace of the script. This is used by Greasemonkey in the same way
212 // as XML namespaces. Only used when parsing Greasemonkey-style scripts. 213 // as XML namespaces. Only used when parsing Greasemonkey-style scripts.
213 std::string name_space_; 214 std::string name_space_;
214 215
215 // The script's name. Only used when parsing Greasemonkey-style scripts. 216 // The script's name. Only used when parsing Greasemonkey-style scripts.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 // Defaults to false. 251 // Defaults to false.
251 bool match_all_frames_; 252 bool match_all_frames_;
252 253
253 // True if the script should be injected into an incognito tab. 254 // True if the script should be injected into an incognito tab.
254 bool incognito_enabled_; 255 bool incognito_enabled_;
255 }; 256 };
256 257
257 typedef std::vector<UserScript> UserScriptList; 258 typedef std::vector<UserScript> UserScriptList;
258 259
259 #endif // CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_ 260 #endif // CHROME_COMMON_EXTENSIONS_USER_SCRIPT_H_
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_unpacker.cc ('k') | chrome/common/extensions/user_script.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698