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

Side by Side Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h

Issue 10831150: Refactor request parameters into RequestData struct. Also make RequestStage singular. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: ?? Created 8 years, 4 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
OLDNEW
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_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTION_H _ 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTION_H _
6 #define CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTION_H _ 6 #define CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTION_H _
7 7
8 #include <list> 8 #include <list>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/memory/linked_ptr.h" 13 #include "base/memory/linked_ptr.h"
14 #include "chrome/browser/extensions/api/declarative_webrequest/request_stages.h" 14 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h"
15 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rule.h " 15 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rule.h "
16 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" 16 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
17 #include "chrome/common/extensions/api/events.h" 17 #include "chrome/common/extensions/api/events.h"
18 #include "googleurl/src/gurl.h" 18 #include "googleurl/src/gurl.h"
19 #include "unicode/regex.h" 19 #include "unicode/regex.h"
20 20
21 class WebRequestPermission; 21 class WebRequestPermission;
22 22
23 namespace base { 23 namespace base {
24 class DictionaryValue; 24 class DictionaryValue;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 ACTION_ADD_RESPONSE_HEADER, 58 ACTION_ADD_RESPONSE_HEADER,
59 ACTION_REMOVE_RESPONSE_HEADER, 59 ACTION_REMOVE_RESPONSE_HEADER,
60 ACTION_IGNORE_RULES, 60 ACTION_IGNORE_RULES,
61 ACTION_MODIFY_REQUEST_COOKIE, 61 ACTION_MODIFY_REQUEST_COOKIE,
62 ACTION_MODIFY_RESPONSE_COOKIE, 62 ACTION_MODIFY_RESPONSE_COOKIE,
63 }; 63 };
64 64
65 WebRequestAction(); 65 WebRequestAction();
66 virtual ~WebRequestAction(); 66 virtual ~WebRequestAction();
67 67
68 // Returns a bit vector representing extensions::RequestStages. The bit vector 68 // Returns a bit vector representing extensions::RequestStage. The bit vector
69 // contains a 1 for each request stage during which the condition can be 69 // contains a 1 for each request stage during which the condition can be
70 // tested. 70 // tested.
71 virtual int GetStages() const = 0; 71 virtual int GetStages() const = 0;
72 72
73 virtual Type GetType() const = 0; 73 virtual Type GetType() const = 0;
74 74
75 // Returns the minimum priority of rules that may be evaluated after 75 // Returns the minimum priority of rules that may be evaluated after
76 // this rule. Defaults to MIN_INT. 76 // this rule. Defaults to MIN_INT.
77 virtual int GetMinimumPriority() const; 77 virtual int GetMinimumPriority() const;
78 78
(...skipping 16 matching lines...) Expand all
95 // Factory method that instantiates a concrete WebRequestAction 95 // Factory method that instantiates a concrete WebRequestAction
96 // implementation according to |json_action|, the representation of the 96 // implementation according to |json_action|, the representation of the
97 // WebRequestAction as received from the extension API. 97 // WebRequestAction as received from the extension API.
98 // Sets |error| and returns NULL in case of a semantic error that cannot 98 // Sets |error| and returns NULL in case of a semantic error that cannot
99 // be caught by schema validation. Sets |bad_message| and returns NULL 99 // be caught by schema validation. Sets |bad_message| and returns NULL
100 // in case the input is syntactically unexpected. 100 // in case the input is syntactically unexpected.
101 static scoped_ptr<WebRequestAction> Create(const base::Value& json_action, 101 static scoped_ptr<WebRequestAction> Create(const base::Value& json_action,
102 std::string* error, 102 std::string* error,
103 bool* bad_message); 103 bool* bad_message);
104 104
105 // Returns a description of the modification to |request| caused by this 105 // Returns a description of the modification to the request caused by
106 // action. 106 // this action.
107 virtual LinkedPtrEventResponseDelta CreateDelta( 107 virtual LinkedPtrEventResponseDelta CreateDelta(
108 net::URLRequest* request, 108 const WebRequestRule::RequestData& request_data,
109 RequestStages request_stage,
110 const WebRequestRule::OptionalRequestData& optional_request_data,
111 const std::string& extension_id, 109 const std::string& extension_id,
112 const base::Time& extension_install_time) const = 0; 110 const base::Time& extension_install_time) const = 0;
113 }; 111 };
114 112
115 // Immutable container for multiple actions. 113 // Immutable container for multiple actions.
116 // 114 //
117 // TODO(battre): As WebRequestActionSet can become the single owner of all 115 // TODO(battre): As WebRequestActionSet can become the single owner of all
118 // actions, we can optimize here by making some of them singletons (e.g. Cancel 116 // actions, we can optimize here by making some of them singletons (e.g. Cancel
119 // actions). 117 // actions).
120 class WebRequestActionSet { 118 class WebRequestActionSet {
121 public: 119 public:
122 typedef std::vector<linked_ptr<json_schema_compiler::any::Any> > AnyVector; 120 typedef std::vector<linked_ptr<json_schema_compiler::any::Any> > AnyVector;
123 typedef std::vector<linked_ptr<WebRequestAction> > Actions; 121 typedef std::vector<linked_ptr<WebRequestAction> > Actions;
124 122
125 explicit WebRequestActionSet(const Actions& actions); 123 explicit WebRequestActionSet(const Actions& actions);
126 virtual ~WebRequestActionSet(); 124 virtual ~WebRequestActionSet();
127 125
128 // Factory method that instantiates a WebRequestActionSet according to 126 // Factory method that instantiates a WebRequestActionSet according to
129 // |actions| which represents the array of actions received from the 127 // |actions| which represents the array of actions received from the
130 // extension API. 128 // extension API.
131 static scoped_ptr<WebRequestActionSet> Create(const AnyVector& actions, 129 static scoped_ptr<WebRequestActionSet> Create(const AnyVector& actions,
132 std::string* error, 130 std::string* error,
133 bool* bad_message); 131 bool* bad_message);
134 132
135 // Returns a description of the modifications to |request| caused by the 133 // Returns a description of the modifications to |request_data.request| caused
136 // |actions_| that can be executed at |request_stage|. If |extension| 134 // by the |actions_| that can be executed at |request.stage|. If |extension|
137 // is not NULL, permissions of extensions are checked. 135 // is not NULL, permissions of extensions are checked.
138 std::list<LinkedPtrEventResponseDelta> CreateDeltas( 136 std::list<LinkedPtrEventResponseDelta> CreateDeltas(
139 const ExtensionInfoMap* extension_info_map, 137 const ExtensionInfoMap* extension_info_map,
140 const std::string& extension_id, 138 const std::string& extension_id,
141 net::URLRequest* request, 139 const WebRequestRule::RequestData& request_data,
142 bool crosses_incognito, 140 bool crosses_incognito,
143 RequestStages request_stage,
144 const WebRequestRule::OptionalRequestData& optional_request_data,
145 const base::Time& extension_install_time) const; 141 const base::Time& extension_install_time) const;
146 142
147 // Returns the minimum priority of rules that may be evaluated after 143 // Returns the minimum priority of rules that may be evaluated after
148 // this rule. Defaults to MIN_INT. 144 // this rule. Defaults to MIN_INT.
149 int GetMinimumPriority() const; 145 int GetMinimumPriority() const;
150 146
151 const Actions& actions() const { return actions_; } 147 const Actions& actions() const { return actions_; }
152 148
153 private: 149 private:
154 Actions actions_; 150 Actions actions_;
155 151
156 DISALLOW_COPY_AND_ASSIGN(WebRequestActionSet); 152 DISALLOW_COPY_AND_ASSIGN(WebRequestActionSet);
157 }; 153 };
158 154
159 // 155 //
160 // The following are concrete actions. 156 // The following are concrete actions.
161 // 157 //
162 158
163 // Action that instructs to cancel a network request. 159 // Action that instructs to cancel a network request.
164 class WebRequestCancelAction : public WebRequestAction { 160 class WebRequestCancelAction : public WebRequestAction {
165 public: 161 public:
166 WebRequestCancelAction(); 162 WebRequestCancelAction();
167 virtual ~WebRequestCancelAction(); 163 virtual ~WebRequestCancelAction();
168 164
169 // Implementation of WebRequestAction: 165 // Implementation of WebRequestAction:
170 virtual int GetStages() const OVERRIDE; 166 virtual int GetStages() const OVERRIDE;
171 virtual Type GetType() const OVERRIDE; 167 virtual Type GetType() const OVERRIDE;
172 virtual LinkedPtrEventResponseDelta CreateDelta( 168 virtual LinkedPtrEventResponseDelta CreateDelta(
173 net::URLRequest* request, 169 const WebRequestRule::RequestData& request_data,
174 RequestStages request_stage,
175 const WebRequestRule::OptionalRequestData& optional_request_data,
176 const std::string& extension_id, 170 const std::string& extension_id,
177 const base::Time& extension_install_time) const OVERRIDE; 171 const base::Time& extension_install_time) const OVERRIDE;
178 172
179 private: 173 private:
180 DISALLOW_COPY_AND_ASSIGN(WebRequestCancelAction); 174 DISALLOW_COPY_AND_ASSIGN(WebRequestCancelAction);
181 }; 175 };
182 176
183 // Action that instructs to redirect a network request. 177 // Action that instructs to redirect a network request.
184 class WebRequestRedirectAction : public WebRequestAction { 178 class WebRequestRedirectAction : public WebRequestAction {
185 public: 179 public:
186 explicit WebRequestRedirectAction(const GURL& redirect_url); 180 explicit WebRequestRedirectAction(const GURL& redirect_url);
187 virtual ~WebRequestRedirectAction(); 181 virtual ~WebRequestRedirectAction();
188 182
189 // Implementation of WebRequestAction: 183 // Implementation of WebRequestAction:
190 virtual int GetStages() const OVERRIDE; 184 virtual int GetStages() const OVERRIDE;
191 virtual Type GetType() const OVERRIDE; 185 virtual Type GetType() const OVERRIDE;
192 virtual LinkedPtrEventResponseDelta CreateDelta( 186 virtual LinkedPtrEventResponseDelta CreateDelta(
193 net::URLRequest* request, 187 const WebRequestRule::RequestData& request_data,
194 RequestStages request_stage,
195 const WebRequestRule::OptionalRequestData& optional_request_data,
196 const std::string& extension_id, 188 const std::string& extension_id,
197 const base::Time& extension_install_time) const OVERRIDE; 189 const base::Time& extension_install_time) const OVERRIDE;
198 190
199 private: 191 private:
200 GURL redirect_url_; // Target to which the request shall be redirected. 192 GURL redirect_url_; // Target to which the request shall be redirected.
201 193
202 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectAction); 194 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectAction);
203 }; 195 };
204 196
205 // Action that instructs to redirect a network request to a transparent image. 197 // Action that instructs to redirect a network request to a transparent image.
206 class WebRequestRedirectToTransparentImageAction : public WebRequestAction { 198 class WebRequestRedirectToTransparentImageAction : public WebRequestAction {
207 public: 199 public:
208 WebRequestRedirectToTransparentImageAction(); 200 WebRequestRedirectToTransparentImageAction();
209 virtual ~WebRequestRedirectToTransparentImageAction(); 201 virtual ~WebRequestRedirectToTransparentImageAction();
210 202
211 // Implementation of WebRequestAction: 203 // Implementation of WebRequestAction:
212 virtual int GetStages() const OVERRIDE; 204 virtual int GetStages() const OVERRIDE;
213 virtual Type GetType() const OVERRIDE; 205 virtual Type GetType() const OVERRIDE;
214 virtual bool ShouldEnforceHostPermissions() const OVERRIDE; 206 virtual bool ShouldEnforceHostPermissions() const OVERRIDE;
215 virtual LinkedPtrEventResponseDelta CreateDelta( 207 virtual LinkedPtrEventResponseDelta CreateDelta(
216 net::URLRequest* request, 208 const WebRequestRule::RequestData& request_data,
217 RequestStages request_stage,
218 const WebRequestRule::OptionalRequestData& optional_request_data,
219 const std::string& extension_id, 209 const std::string& extension_id,
220 const base::Time& extension_install_time) const OVERRIDE; 210 const base::Time& extension_install_time) const OVERRIDE;
221 211
222 private: 212 private:
223 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToTransparentImageAction); 213 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToTransparentImageAction);
224 }; 214 };
225 215
226 216
227 // Action that instructs to redirect a network request to an empty document. 217 // Action that instructs to redirect a network request to an empty document.
228 class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction { 218 class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction {
229 public: 219 public:
230 WebRequestRedirectToEmptyDocumentAction(); 220 WebRequestRedirectToEmptyDocumentAction();
231 virtual ~WebRequestRedirectToEmptyDocumentAction(); 221 virtual ~WebRequestRedirectToEmptyDocumentAction();
232 222
233 // Implementation of WebRequestAction: 223 // Implementation of WebRequestAction:
234 virtual int GetStages() const OVERRIDE; 224 virtual int GetStages() const OVERRIDE;
235 virtual Type GetType() const OVERRIDE; 225 virtual Type GetType() const OVERRIDE;
236 virtual bool ShouldEnforceHostPermissions() const OVERRIDE; 226 virtual bool ShouldEnforceHostPermissions() const OVERRIDE;
237 virtual LinkedPtrEventResponseDelta CreateDelta( 227 virtual LinkedPtrEventResponseDelta CreateDelta(
238 net::URLRequest* request, 228 const WebRequestRule::RequestData& request_data,
239 RequestStages request_stage,
240 const WebRequestRule::OptionalRequestData& optional_request_data,
241 const std::string& extension_id, 229 const std::string& extension_id,
242 const base::Time& extension_install_time) const OVERRIDE; 230 const base::Time& extension_install_time) const OVERRIDE;
243 231
244 private: 232 private:
245 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToEmptyDocumentAction); 233 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToEmptyDocumentAction);
246 }; 234 };
247 235
248 // Action that instructs to redirect a network request. 236 // Action that instructs to redirect a network request.
249 class WebRequestRedirectByRegExAction : public WebRequestAction { 237 class WebRequestRedirectByRegExAction : public WebRequestAction {
250 public: 238 public:
251 // The |to_pattern| has to be passed in ICU syntax. 239 // The |to_pattern| has to be passed in ICU syntax.
252 // TODO(battre): Change this to Perl style when migrated to RE2. 240 // TODO(battre): Change this to Perl style when migrated to RE2.
253 explicit WebRequestRedirectByRegExAction( 241 explicit WebRequestRedirectByRegExAction(
254 scoped_ptr<icu::RegexPattern> from_pattern, 242 scoped_ptr<icu::RegexPattern> from_pattern,
255 const std::string& to_pattern); 243 const std::string& to_pattern);
256 virtual ~WebRequestRedirectByRegExAction(); 244 virtual ~WebRequestRedirectByRegExAction();
257 245
258 // Conversion of capture group styles between Perl style ($1, $2, ...) and 246 // Conversion of capture group styles between Perl style ($1, $2, ...) and
259 // RE2 (\1, \2, ...). 247 // RE2 (\1, \2, ...).
260 static std::string PerlToRe2Style(const std::string& perl); 248 static std::string PerlToRe2Style(const std::string& perl);
261 249
262 // Implementation of WebRequestAction: 250 // Implementation of WebRequestAction:
263 virtual int GetStages() const OVERRIDE; 251 virtual int GetStages() const OVERRIDE;
264 virtual Type GetType() const OVERRIDE; 252 virtual Type GetType() const OVERRIDE;
265 virtual LinkedPtrEventResponseDelta CreateDelta( 253 virtual LinkedPtrEventResponseDelta CreateDelta(
266 net::URLRequest* request, 254 const WebRequestRule::RequestData& request_data,
267 RequestStages request_stage,
268 const WebRequestRule::OptionalRequestData& optional_request_data,
269 const std::string& extension_id, 255 const std::string& extension_id,
270 const base::Time& extension_install_time) const OVERRIDE; 256 const base::Time& extension_install_time) const OVERRIDE;
271 257
272 private: 258 private:
273 scoped_ptr<icu::RegexPattern> from_pattern_; 259 scoped_ptr<icu::RegexPattern> from_pattern_;
274 icu::UnicodeString to_pattern_; 260 icu::UnicodeString to_pattern_;
275 261
276 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectByRegExAction); 262 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectByRegExAction);
277 }; 263 };
278 264
279 // Action that instructs to set a request header. 265 // Action that instructs to set a request header.
280 class WebRequestSetRequestHeaderAction : public WebRequestAction { 266 class WebRequestSetRequestHeaderAction : public WebRequestAction {
281 public: 267 public:
282 WebRequestSetRequestHeaderAction(const std::string& name, 268 WebRequestSetRequestHeaderAction(const std::string& name,
283 const std::string& value); 269 const std::string& value);
284 virtual ~WebRequestSetRequestHeaderAction(); 270 virtual ~WebRequestSetRequestHeaderAction();
285 271
286 // Implementation of WebRequestAction: 272 // Implementation of WebRequestAction:
287 virtual int GetStages() const OVERRIDE; 273 virtual int GetStages() const OVERRIDE;
288 virtual Type GetType() const OVERRIDE; 274 virtual Type GetType() const OVERRIDE;
289 virtual LinkedPtrEventResponseDelta CreateDelta( 275 virtual LinkedPtrEventResponseDelta CreateDelta(
290 net::URLRequest* request, 276 const WebRequestRule::RequestData& request_data,
291 RequestStages request_stage,
292 const WebRequestRule::OptionalRequestData& optional_request_data,
293 const std::string& extension_id, 277 const std::string& extension_id,
294 const base::Time& extension_install_time) const OVERRIDE; 278 const base::Time& extension_install_time) const OVERRIDE;
295 279
296 private: 280 private:
297 std::string name_; 281 std::string name_;
298 std::string value_; 282 std::string value_;
299 DISALLOW_COPY_AND_ASSIGN(WebRequestSetRequestHeaderAction); 283 DISALLOW_COPY_AND_ASSIGN(WebRequestSetRequestHeaderAction);
300 }; 284 };
301 285
302 // Action that instructs to remove a request header. 286 // Action that instructs to remove a request header.
303 class WebRequestRemoveRequestHeaderAction : public WebRequestAction { 287 class WebRequestRemoveRequestHeaderAction : public WebRequestAction {
304 public: 288 public:
305 explicit WebRequestRemoveRequestHeaderAction(const std::string& name); 289 explicit WebRequestRemoveRequestHeaderAction(const std::string& name);
306 virtual ~WebRequestRemoveRequestHeaderAction(); 290 virtual ~WebRequestRemoveRequestHeaderAction();
307 291
308 // Implementation of WebRequestAction: 292 // Implementation of WebRequestAction:
309 virtual int GetStages() const OVERRIDE; 293 virtual int GetStages() const OVERRIDE;
310 virtual Type GetType() const OVERRIDE; 294 virtual Type GetType() const OVERRIDE;
311 virtual LinkedPtrEventResponseDelta CreateDelta( 295 virtual LinkedPtrEventResponseDelta CreateDelta(
312 net::URLRequest* request, 296 const WebRequestRule::RequestData& request_data,
313 RequestStages request_stage,
314 const WebRequestRule::OptionalRequestData& optional_request_data,
315 const std::string& extension_id, 297 const std::string& extension_id,
316 const base::Time& extension_install_time) const OVERRIDE; 298 const base::Time& extension_install_time) const OVERRIDE;
317 299
318 private: 300 private:
319 std::string name_; 301 std::string name_;
320 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveRequestHeaderAction); 302 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveRequestHeaderAction);
321 }; 303 };
322 304
323 // Action that instructs to add a response header. 305 // Action that instructs to add a response header.
324 class WebRequestAddResponseHeaderAction : public WebRequestAction { 306 class WebRequestAddResponseHeaderAction : public WebRequestAction {
325 public: 307 public:
326 WebRequestAddResponseHeaderAction(const std::string& name, 308 WebRequestAddResponseHeaderAction(const std::string& name,
327 const std::string& value); 309 const std::string& value);
328 virtual ~WebRequestAddResponseHeaderAction(); 310 virtual ~WebRequestAddResponseHeaderAction();
329 311
330 // Implementation of WebRequestAction: 312 // Implementation of WebRequestAction:
331 virtual int GetStages() const OVERRIDE; 313 virtual int GetStages() const OVERRIDE;
332 virtual Type GetType() const OVERRIDE; 314 virtual Type GetType() const OVERRIDE;
333 virtual LinkedPtrEventResponseDelta CreateDelta( 315 virtual LinkedPtrEventResponseDelta CreateDelta(
334 net::URLRequest* request, 316 const WebRequestRule::RequestData& request_data,
335 RequestStages request_stage,
336 const WebRequestRule::OptionalRequestData& optional_request_data,
337 const std::string& extension_id, 317 const std::string& extension_id,
338 const base::Time& extension_install_time) const OVERRIDE; 318 const base::Time& extension_install_time) const OVERRIDE;
339 319
340 private: 320 private:
341 std::string name_; 321 std::string name_;
342 std::string value_; 322 std::string value_;
343 DISALLOW_COPY_AND_ASSIGN(WebRequestAddResponseHeaderAction); 323 DISALLOW_COPY_AND_ASSIGN(WebRequestAddResponseHeaderAction);
344 }; 324 };
345 325
346 // Action that instructs to remove a response header. 326 // Action that instructs to remove a response header.
347 class WebRequestRemoveResponseHeaderAction : public WebRequestAction { 327 class WebRequestRemoveResponseHeaderAction : public WebRequestAction {
348 public: 328 public:
349 explicit WebRequestRemoveResponseHeaderAction(const std::string& name, 329 explicit WebRequestRemoveResponseHeaderAction(const std::string& name,
350 const std::string& value, 330 const std::string& value,
351 bool has_value); 331 bool has_value);
352 virtual ~WebRequestRemoveResponseHeaderAction(); 332 virtual ~WebRequestRemoveResponseHeaderAction();
353 333
354 // Implementation of WebRequestAction: 334 // Implementation of WebRequestAction:
355 virtual int GetStages() const OVERRIDE; 335 virtual int GetStages() const OVERRIDE;
356 virtual Type GetType() const OVERRIDE; 336 virtual Type GetType() const OVERRIDE;
357 virtual LinkedPtrEventResponseDelta CreateDelta( 337 virtual LinkedPtrEventResponseDelta CreateDelta(
358 net::URLRequest* request, 338 const WebRequestRule::RequestData& request_data,
359 RequestStages request_stage,
360 const WebRequestRule::OptionalRequestData& optional_request_data,
361 const std::string& extension_id, 339 const std::string& extension_id,
362 const base::Time& extension_install_time) const OVERRIDE; 340 const base::Time& extension_install_time) const OVERRIDE;
363 341
364 private: 342 private:
365 std::string name_; 343 std::string name_;
366 std::string value_; 344 std::string value_;
367 bool has_value_; 345 bool has_value_;
368 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveResponseHeaderAction); 346 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveResponseHeaderAction);
369 }; 347 };
370 348
371 // Action that instructs to ignore rules below a certain priority. 349 // Action that instructs to ignore rules below a certain priority.
372 class WebRequestIgnoreRulesAction : public WebRequestAction { 350 class WebRequestIgnoreRulesAction : public WebRequestAction {
373 public: 351 public:
374 explicit WebRequestIgnoreRulesAction(int minimum_priority); 352 explicit WebRequestIgnoreRulesAction(int minimum_priority);
375 virtual ~WebRequestIgnoreRulesAction(); 353 virtual ~WebRequestIgnoreRulesAction();
376 354
377 // Implementation of WebRequestAction: 355 // Implementation of WebRequestAction:
378 virtual int GetStages() const OVERRIDE; 356 virtual int GetStages() const OVERRIDE;
379 virtual Type GetType() const OVERRIDE; 357 virtual Type GetType() const OVERRIDE;
380 virtual int GetMinimumPriority() const OVERRIDE; 358 virtual int GetMinimumPriority() const OVERRIDE;
381 virtual bool ShouldEnforceHostPermissions() const OVERRIDE; 359 virtual bool ShouldEnforceHostPermissions() const OVERRIDE;
382 virtual LinkedPtrEventResponseDelta CreateDelta( 360 virtual LinkedPtrEventResponseDelta CreateDelta(
383 net::URLRequest* request, 361 const WebRequestRule::RequestData& request_data,
384 RequestStages request_stage,
385 const WebRequestRule::OptionalRequestData& optional_request_data,
386 const std::string& extension_id, 362 const std::string& extension_id,
387 const base::Time& extension_install_time) const OVERRIDE; 363 const base::Time& extension_install_time) const OVERRIDE;
388 364
389 private: 365 private:
390 int minimum_priority_; 366 int minimum_priority_;
391 DISALLOW_COPY_AND_ASSIGN(WebRequestIgnoreRulesAction); 367 DISALLOW_COPY_AND_ASSIGN(WebRequestIgnoreRulesAction);
392 }; 368 };
393 369
394 // Action that instructs to modify (add, edit, remove) a request cookie. 370 // Action that instructs to modify (add, edit, remove) a request cookie.
395 class WebRequestRequestCookieAction : public WebRequestAction { 371 class WebRequestRequestCookieAction : public WebRequestAction {
396 public: 372 public:
397 typedef extension_web_request_api_helpers::RequestCookieModification 373 typedef extension_web_request_api_helpers::RequestCookieModification
398 RequestCookieModification; 374 RequestCookieModification;
399 375
400 explicit WebRequestRequestCookieAction( 376 explicit WebRequestRequestCookieAction(
401 linked_ptr<RequestCookieModification> request_cookie_modification); 377 linked_ptr<RequestCookieModification> request_cookie_modification);
402 virtual ~WebRequestRequestCookieAction(); 378 virtual ~WebRequestRequestCookieAction();
403 379
404 // Implementation of WebRequestAction: 380 // Implementation of WebRequestAction:
405 virtual int GetStages() const OVERRIDE; 381 virtual int GetStages() const OVERRIDE;
406 virtual Type GetType() const OVERRIDE; 382 virtual Type GetType() const OVERRIDE;
407 virtual LinkedPtrEventResponseDelta CreateDelta( 383 virtual LinkedPtrEventResponseDelta CreateDelta(
408 net::URLRequest* request, 384 const WebRequestRule::RequestData& request_data,
409 RequestStages request_stage,
410 const WebRequestRule::OptionalRequestData& optional_request_data,
411 const std::string& extension_id, 385 const std::string& extension_id,
412 const base::Time& extension_install_time) const OVERRIDE; 386 const base::Time& extension_install_time) const OVERRIDE;
413 387
414 private: 388 private:
415 linked_ptr<RequestCookieModification> request_cookie_modification_; 389 linked_ptr<RequestCookieModification> request_cookie_modification_;
416 DISALLOW_COPY_AND_ASSIGN(WebRequestRequestCookieAction); 390 DISALLOW_COPY_AND_ASSIGN(WebRequestRequestCookieAction);
417 }; 391 };
418 392
419 // Action that instructs to modify (add, edit, remove) a response cookie. 393 // Action that instructs to modify (add, edit, remove) a response cookie.
420 class WebRequestResponseCookieAction : public WebRequestAction { 394 class WebRequestResponseCookieAction : public WebRequestAction {
421 public: 395 public:
422 typedef extension_web_request_api_helpers::ResponseCookieModification 396 typedef extension_web_request_api_helpers::ResponseCookieModification
423 ResponseCookieModification; 397 ResponseCookieModification;
424 398
425 explicit WebRequestResponseCookieAction( 399 explicit WebRequestResponseCookieAction(
426 linked_ptr<ResponseCookieModification> response_cookie_modification); 400 linked_ptr<ResponseCookieModification> response_cookie_modification);
427 virtual ~WebRequestResponseCookieAction(); 401 virtual ~WebRequestResponseCookieAction();
428 402
429 // Implementation of WebRequestAction: 403 // Implementation of WebRequestAction:
430 virtual int GetStages() const OVERRIDE; 404 virtual int GetStages() const OVERRIDE;
431 virtual Type GetType() const OVERRIDE; 405 virtual Type GetType() const OVERRIDE;
432 virtual LinkedPtrEventResponseDelta CreateDelta( 406 virtual LinkedPtrEventResponseDelta CreateDelta(
433 net::URLRequest* request, 407 const WebRequestRule::RequestData& request_data,
434 RequestStages request_stage,
435 const WebRequestRule::OptionalRequestData& optional_request_data,
436 const std::string& extension_id, 408 const std::string& extension_id,
437 const base::Time& extension_install_time) const OVERRIDE; 409 const base::Time& extension_install_time) const OVERRIDE;
438 410
439 private: 411 private:
440 linked_ptr<ResponseCookieModification> response_cookie_modification_; 412 linked_ptr<ResponseCookieModification> response_cookie_modification_;
441 DISALLOW_COPY_AND_ASSIGN(WebRequestResponseCookieAction); 413 DISALLOW_COPY_AND_ASSIGN(WebRequestResponseCookieAction);
442 }; 414 };
443 415
444 } // namespace extensions 416 } // namespace extensions
445 417
446 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTIO N_H_ 418 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTIO N_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698