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

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

Issue 11572061: Create DeclarativeConditionSet, DeclarativeActionSet, and DeclarativeRule templates (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to Vaclav's CL and fix Dominic's comments Created 8 years 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
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/declarative_rule.h"
14 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" 15 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.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 19
20 class ExtensionInfoMap;
20 class WebRequestPermission; 21 class WebRequestPermission;
21 22
22 namespace base { 23 namespace base {
23 class DictionaryValue; 24 class DictionaryValue;
24 class Time; 25 class Time;
25 class Value; 26 class Value;
26 } 27 }
27 28
28 namespace extension_web_request_api_helpers { 29 namespace extension_web_request_api_helpers {
29 struct EventResponseDelta; 30 struct EventResponseDelta;
30 } 31 }
31 32
32 namespace extensions { 33 namespace extensions {
33 class Extension; 34 class Extension;
35 struct DeclarativeWebRequestData;
34 } 36 }
35 37
36 namespace net { 38 namespace net {
37 class URLRequest; 39 class URLRequest;
38 } 40 }
39 41
40 namespace re2 { 42 namespace re2 {
41 class RE2; 43 class RE2;
42 } 44 }
43 45
(...skipping 25 matching lines...) Expand all
69 enum HostPermissionsStrategy { 71 enum HostPermissionsStrategy {
70 STRATEGY_NONE, // Do not check host permissions. 72 STRATEGY_NONE, // Do not check host permissions.
71 STRATEGY_DEFAULT, // Check host permissions in HasPermission, 73 STRATEGY_DEFAULT, // Check host permissions in HasPermission,
72 // before creating the delta. 74 // before creating the delta.
73 STRATEGY_ALLOW_SAME_DOMAIN, // Skip host permission checks if the request 75 STRATEGY_ALLOW_SAME_DOMAIN, // Skip host permission checks if the request
74 // URL and new URL have the same domain. 76 // URL and new URL have the same domain.
75 // Do these checks in DeltaHasPermission, 77 // Do these checks in DeltaHasPermission,
76 // after creating the delta. 78 // after creating the delta.
77 }; 79 };
78 80
81 // Information necessary to decide how to apply a WebRequestAction
82 // inside a matching rule.
83 struct ApplyInfo {
84 const ExtensionInfoMap* extension_info_map;
85 const DeclarativeWebRequestData& request_data;
86 bool crosses_incognito;
87 // Modified by each applied action:
88 std::list<LinkedPtrEventResponseDelta>* deltas;
89 };
90
79 WebRequestAction(); 91 WebRequestAction();
80 virtual ~WebRequestAction(); 92 virtual ~WebRequestAction();
81 93
82 // Returns a bit vector representing extensions::RequestStage. The bit vector 94 // Returns a bit vector representing extensions::RequestStage. The bit vector
83 // contains a 1 for each request stage during which the condition can be 95 // contains a 1 for each request stage during which the condition can be
84 // tested. 96 // tested.
85 virtual int GetStages() const = 0; 97 virtual int GetStages() const = 0;
86 98
87 virtual Type GetType() const = 0; 99 virtual Type GetType() const = 0;
88 100
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 // Sets |error| and returns NULL in case of a semantic error that cannot 139 // Sets |error| and returns NULL in case of a semantic error that cannot
128 // be caught by schema validation. Sets |bad_message| and returns NULL 140 // be caught by schema validation. Sets |bad_message| and returns NULL
129 // in case the input is syntactically unexpected. 141 // in case the input is syntactically unexpected.
130 static scoped_ptr<WebRequestAction> Create(const base::Value& json_action, 142 static scoped_ptr<WebRequestAction> Create(const base::Value& json_action,
131 std::string* error, 143 std::string* error,
132 bool* bad_message); 144 bool* bad_message);
133 145
134 // Returns a description of the modification to the request caused by 146 // Returns a description of the modification to the request caused by
135 // this action. 147 // this action.
136 virtual LinkedPtrEventResponseDelta CreateDelta( 148 virtual LinkedPtrEventResponseDelta CreateDelta(
137 const WebRequestRule::RequestData& request_data, 149 const DeclarativeWebRequestData& request_data,
138 const std::string& extension_id, 150 const std::string& extension_id,
139 const base::Time& extension_install_time) const = 0; 151 const base::Time& extension_install_time) const = 0;
152
153 // Applies this action to a request, recording the results into
154 // apply_info.deltas.
155 void Apply(const std::string& extension_id,
156 base::Time extension_install_time,
157 ApplyInfo* apply_info) const;
140 }; 158 };
141 159
142 // Immutable container for multiple actions. 160 typedef DeclarativeActionSet<WebRequestAction> WebRequestActionSet;
143 //
144 // TODO(battre): As WebRequestActionSet can become the single owner of all
145 // actions, we can optimize here by making some of them singletons (e.g. Cancel
146 // actions).
147 class WebRequestActionSet {
148 public:
149 typedef std::vector<linked_ptr<json_schema_compiler::any::Any> > AnyVector;
150 typedef std::vector<linked_ptr<WebRequestAction> > Actions;
151
152 explicit WebRequestActionSet(const Actions& actions);
153 virtual ~WebRequestActionSet();
154
155 // Factory method that instantiates a WebRequestActionSet according to
156 // |actions| which represents the array of actions received from the
157 // extension API.
158 static scoped_ptr<WebRequestActionSet> Create(const AnyVector& actions,
159 std::string* error,
160 bool* bad_message);
161
162 // Returns a description of the modifications to |request_data.request| caused
163 // by the |actions_| that can be executed at |request.stage|. If |extension|
164 // is not NULL, permissions of extensions are checked.
165 std::list<LinkedPtrEventResponseDelta> CreateDeltas(
166 const ExtensionInfoMap* extension_info_map,
167 const std::string& extension_id,
168 const WebRequestRule::RequestData& request_data,
169 bool crosses_incognito,
170 const base::Time& extension_install_time) const;
171
172 // Returns the minimum priority of rules that may be evaluated after
173 // this rule. Defaults to MIN_INT.
174 int GetMinimumPriority() const;
175
176 const Actions& actions() const { return actions_; }
177
178 private:
179 Actions actions_;
180
181 DISALLOW_COPY_AND_ASSIGN(WebRequestActionSet);
182 };
183 161
184 // 162 //
185 // The following are concrete actions. 163 // The following are concrete actions.
186 // 164 //
187 165
188 // Action that instructs to cancel a network request. 166 // Action that instructs to cancel a network request.
189 class WebRequestCancelAction : public WebRequestAction { 167 class WebRequestCancelAction : public WebRequestAction {
190 public: 168 public:
191 WebRequestCancelAction(); 169 WebRequestCancelAction();
192 virtual ~WebRequestCancelAction(); 170 virtual ~WebRequestCancelAction();
193 171
194 // Implementation of WebRequestAction: 172 // Implementation of WebRequestAction:
195 virtual int GetStages() const OVERRIDE; 173 virtual int GetStages() const OVERRIDE;
196 virtual Type GetType() const OVERRIDE; 174 virtual Type GetType() const OVERRIDE;
197 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 175 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
198 virtual LinkedPtrEventResponseDelta CreateDelta( 176 virtual LinkedPtrEventResponseDelta CreateDelta(
199 const WebRequestRule::RequestData& request_data, 177 const DeclarativeWebRequestData& request_data,
200 const std::string& extension_id, 178 const std::string& extension_id,
201 const base::Time& extension_install_time) const OVERRIDE; 179 const base::Time& extension_install_time) const OVERRIDE;
202 180
203 private: 181 private:
204 DISALLOW_COPY_AND_ASSIGN(WebRequestCancelAction); 182 DISALLOW_COPY_AND_ASSIGN(WebRequestCancelAction);
205 }; 183 };
206 184
207 // Action that instructs to redirect a network request. 185 // Action that instructs to redirect a network request.
208 class WebRequestRedirectAction : public WebRequestAction { 186 class WebRequestRedirectAction : public WebRequestAction {
209 public: 187 public:
210 explicit WebRequestRedirectAction(const GURL& redirect_url); 188 explicit WebRequestRedirectAction(const GURL& redirect_url);
211 virtual ~WebRequestRedirectAction(); 189 virtual ~WebRequestRedirectAction();
212 190
213 // Implementation of WebRequestAction: 191 // Implementation of WebRequestAction:
214 virtual int GetStages() const OVERRIDE; 192 virtual int GetStages() const OVERRIDE;
215 virtual Type GetType() const OVERRIDE; 193 virtual Type GetType() const OVERRIDE;
216 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 194 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
217 virtual LinkedPtrEventResponseDelta CreateDelta( 195 virtual LinkedPtrEventResponseDelta CreateDelta(
218 const WebRequestRule::RequestData& request_data, 196 const DeclarativeWebRequestData& request_data,
219 const std::string& extension_id, 197 const std::string& extension_id,
220 const base::Time& extension_install_time) const OVERRIDE; 198 const base::Time& extension_install_time) const OVERRIDE;
221 199
222 private: 200 private:
223 GURL redirect_url_; // Target to which the request shall be redirected. 201 GURL redirect_url_; // Target to which the request shall be redirected.
224 202
225 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectAction); 203 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectAction);
226 }; 204 };
227 205
228 // Action that instructs to redirect a network request to a transparent image. 206 // Action that instructs to redirect a network request to a transparent image.
229 class WebRequestRedirectToTransparentImageAction : public WebRequestAction { 207 class WebRequestRedirectToTransparentImageAction : public WebRequestAction {
230 public: 208 public:
231 WebRequestRedirectToTransparentImageAction(); 209 WebRequestRedirectToTransparentImageAction();
232 virtual ~WebRequestRedirectToTransparentImageAction(); 210 virtual ~WebRequestRedirectToTransparentImageAction();
233 211
234 // Implementation of WebRequestAction: 212 // Implementation of WebRequestAction:
235 virtual int GetStages() const OVERRIDE; 213 virtual int GetStages() const OVERRIDE;
236 virtual Type GetType() const OVERRIDE; 214 virtual Type GetType() const OVERRIDE;
237 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 215 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
238 virtual LinkedPtrEventResponseDelta CreateDelta( 216 virtual LinkedPtrEventResponseDelta CreateDelta(
239 const WebRequestRule::RequestData& request_data, 217 const DeclarativeWebRequestData& request_data,
240 const std::string& extension_id, 218 const std::string& extension_id,
241 const base::Time& extension_install_time) const OVERRIDE; 219 const base::Time& extension_install_time) const OVERRIDE;
242 220
243 private: 221 private:
244 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToTransparentImageAction); 222 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToTransparentImageAction);
245 }; 223 };
246 224
247 225
248 // Action that instructs to redirect a network request to an empty document. 226 // Action that instructs to redirect a network request to an empty document.
249 class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction { 227 class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction {
250 public: 228 public:
251 WebRequestRedirectToEmptyDocumentAction(); 229 WebRequestRedirectToEmptyDocumentAction();
252 virtual ~WebRequestRedirectToEmptyDocumentAction(); 230 virtual ~WebRequestRedirectToEmptyDocumentAction();
253 231
254 // Implementation of WebRequestAction: 232 // Implementation of WebRequestAction:
255 virtual int GetStages() const OVERRIDE; 233 virtual int GetStages() const OVERRIDE;
256 virtual Type GetType() const OVERRIDE; 234 virtual Type GetType() const OVERRIDE;
257 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 235 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
258 virtual LinkedPtrEventResponseDelta CreateDelta( 236 virtual LinkedPtrEventResponseDelta CreateDelta(
259 const WebRequestRule::RequestData& request_data, 237 const DeclarativeWebRequestData& request_data,
260 const std::string& extension_id, 238 const std::string& extension_id,
261 const base::Time& extension_install_time) const OVERRIDE; 239 const base::Time& extension_install_time) const OVERRIDE;
262 240
263 private: 241 private:
264 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToEmptyDocumentAction); 242 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectToEmptyDocumentAction);
265 }; 243 };
266 244
267 // Action that instructs to redirect a network request. 245 // Action that instructs to redirect a network request.
268 class WebRequestRedirectByRegExAction : public WebRequestAction { 246 class WebRequestRedirectByRegExAction : public WebRequestAction {
269 public: 247 public:
270 // The |to_pattern| has to be passed in RE2 syntax with the exception that 248 // The |to_pattern| has to be passed in RE2 syntax with the exception that
271 // capture groups are referenced in Perl style ($1, $2, ...). 249 // capture groups are referenced in Perl style ($1, $2, ...).
272 explicit WebRequestRedirectByRegExAction(scoped_ptr<re2::RE2> from_pattern, 250 explicit WebRequestRedirectByRegExAction(scoped_ptr<re2::RE2> from_pattern,
273 const std::string& to_pattern); 251 const std::string& to_pattern);
274 virtual ~WebRequestRedirectByRegExAction(); 252 virtual ~WebRequestRedirectByRegExAction();
275 253
276 // Conversion of capture group styles between Perl style ($1, $2, ...) and 254 // Conversion of capture group styles between Perl style ($1, $2, ...) and
277 // RE2 (\1, \2, ...). 255 // RE2 (\1, \2, ...).
278 static std::string PerlToRe2Style(const std::string& perl); 256 static std::string PerlToRe2Style(const std::string& perl);
279 257
280 // Implementation of WebRequestAction: 258 // Implementation of WebRequestAction:
281 virtual int GetStages() const OVERRIDE; 259 virtual int GetStages() const OVERRIDE;
282 virtual Type GetType() const OVERRIDE; 260 virtual Type GetType() const OVERRIDE;
283 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 261 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
284 virtual LinkedPtrEventResponseDelta CreateDelta( 262 virtual LinkedPtrEventResponseDelta CreateDelta(
285 const WebRequestRule::RequestData& request_data, 263 const DeclarativeWebRequestData& request_data,
286 const std::string& extension_id, 264 const std::string& extension_id,
287 const base::Time& extension_install_time) const OVERRIDE; 265 const base::Time& extension_install_time) const OVERRIDE;
288 266
289 private: 267 private:
290 scoped_ptr<re2::RE2> from_pattern_; 268 scoped_ptr<re2::RE2> from_pattern_;
291 std::string to_pattern_; 269 std::string to_pattern_;
292 270
293 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectByRegExAction); 271 DISALLOW_COPY_AND_ASSIGN(WebRequestRedirectByRegExAction);
294 }; 272 };
295 273
296 // Action that instructs to set a request header. 274 // Action that instructs to set a request header.
297 class WebRequestSetRequestHeaderAction : public WebRequestAction { 275 class WebRequestSetRequestHeaderAction : public WebRequestAction {
298 public: 276 public:
299 WebRequestSetRequestHeaderAction(const std::string& name, 277 WebRequestSetRequestHeaderAction(const std::string& name,
300 const std::string& value); 278 const std::string& value);
301 virtual ~WebRequestSetRequestHeaderAction(); 279 virtual ~WebRequestSetRequestHeaderAction();
302 280
303 // Implementation of WebRequestAction: 281 // Implementation of WebRequestAction:
304 virtual int GetStages() const OVERRIDE; 282 virtual int GetStages() const OVERRIDE;
305 virtual Type GetType() const OVERRIDE; 283 virtual Type GetType() const OVERRIDE;
306 virtual LinkedPtrEventResponseDelta CreateDelta( 284 virtual LinkedPtrEventResponseDelta CreateDelta(
307 const WebRequestRule::RequestData& request_data, 285 const DeclarativeWebRequestData& request_data,
308 const std::string& extension_id, 286 const std::string& extension_id,
309 const base::Time& extension_install_time) const OVERRIDE; 287 const base::Time& extension_install_time) const OVERRIDE;
310 288
311 private: 289 private:
312 std::string name_; 290 std::string name_;
313 std::string value_; 291 std::string value_;
314 DISALLOW_COPY_AND_ASSIGN(WebRequestSetRequestHeaderAction); 292 DISALLOW_COPY_AND_ASSIGN(WebRequestSetRequestHeaderAction);
315 }; 293 };
316 294
317 // Action that instructs to remove a request header. 295 // Action that instructs to remove a request header.
318 class WebRequestRemoveRequestHeaderAction : public WebRequestAction { 296 class WebRequestRemoveRequestHeaderAction : public WebRequestAction {
319 public: 297 public:
320 explicit WebRequestRemoveRequestHeaderAction(const std::string& name); 298 explicit WebRequestRemoveRequestHeaderAction(const std::string& name);
321 virtual ~WebRequestRemoveRequestHeaderAction(); 299 virtual ~WebRequestRemoveRequestHeaderAction();
322 300
323 // Implementation of WebRequestAction: 301 // Implementation of WebRequestAction:
324 virtual int GetStages() const OVERRIDE; 302 virtual int GetStages() const OVERRIDE;
325 virtual Type GetType() const OVERRIDE; 303 virtual Type GetType() const OVERRIDE;
326 virtual LinkedPtrEventResponseDelta CreateDelta( 304 virtual LinkedPtrEventResponseDelta CreateDelta(
327 const WebRequestRule::RequestData& request_data, 305 const DeclarativeWebRequestData& request_data,
328 const std::string& extension_id, 306 const std::string& extension_id,
329 const base::Time& extension_install_time) const OVERRIDE; 307 const base::Time& extension_install_time) const OVERRIDE;
330 308
331 private: 309 private:
332 std::string name_; 310 std::string name_;
333 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveRequestHeaderAction); 311 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveRequestHeaderAction);
334 }; 312 };
335 313
336 // Action that instructs to add a response header. 314 // Action that instructs to add a response header.
337 class WebRequestAddResponseHeaderAction : public WebRequestAction { 315 class WebRequestAddResponseHeaderAction : public WebRequestAction {
338 public: 316 public:
339 WebRequestAddResponseHeaderAction(const std::string& name, 317 WebRequestAddResponseHeaderAction(const std::string& name,
340 const std::string& value); 318 const std::string& value);
341 virtual ~WebRequestAddResponseHeaderAction(); 319 virtual ~WebRequestAddResponseHeaderAction();
342 320
343 // Implementation of WebRequestAction: 321 // Implementation of WebRequestAction:
344 virtual int GetStages() const OVERRIDE; 322 virtual int GetStages() const OVERRIDE;
345 virtual Type GetType() const OVERRIDE; 323 virtual Type GetType() const OVERRIDE;
346 virtual LinkedPtrEventResponseDelta CreateDelta( 324 virtual LinkedPtrEventResponseDelta CreateDelta(
347 const WebRequestRule::RequestData& request_data, 325 const DeclarativeWebRequestData& request_data,
348 const std::string& extension_id, 326 const std::string& extension_id,
349 const base::Time& extension_install_time) const OVERRIDE; 327 const base::Time& extension_install_time) const OVERRIDE;
350 328
351 private: 329 private:
352 std::string name_; 330 std::string name_;
353 std::string value_; 331 std::string value_;
354 DISALLOW_COPY_AND_ASSIGN(WebRequestAddResponseHeaderAction); 332 DISALLOW_COPY_AND_ASSIGN(WebRequestAddResponseHeaderAction);
355 }; 333 };
356 334
357 // Action that instructs to remove a response header. 335 // Action that instructs to remove a response header.
358 class WebRequestRemoveResponseHeaderAction : public WebRequestAction { 336 class WebRequestRemoveResponseHeaderAction : public WebRequestAction {
359 public: 337 public:
360 explicit WebRequestRemoveResponseHeaderAction(const std::string& name, 338 explicit WebRequestRemoveResponseHeaderAction(const std::string& name,
361 const std::string& value, 339 const std::string& value,
362 bool has_value); 340 bool has_value);
363 virtual ~WebRequestRemoveResponseHeaderAction(); 341 virtual ~WebRequestRemoveResponseHeaderAction();
364 342
365 // Implementation of WebRequestAction: 343 // Implementation of WebRequestAction:
366 virtual int GetStages() const OVERRIDE; 344 virtual int GetStages() const OVERRIDE;
367 virtual Type GetType() const OVERRIDE; 345 virtual Type GetType() const OVERRIDE;
368 virtual LinkedPtrEventResponseDelta CreateDelta( 346 virtual LinkedPtrEventResponseDelta CreateDelta(
369 const WebRequestRule::RequestData& request_data, 347 const DeclarativeWebRequestData& request_data,
370 const std::string& extension_id, 348 const std::string& extension_id,
371 const base::Time& extension_install_time) const OVERRIDE; 349 const base::Time& extension_install_time) const OVERRIDE;
372 350
373 private: 351 private:
374 std::string name_; 352 std::string name_;
375 std::string value_; 353 std::string value_;
376 bool has_value_; 354 bool has_value_;
377 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveResponseHeaderAction); 355 DISALLOW_COPY_AND_ASSIGN(WebRequestRemoveResponseHeaderAction);
378 }; 356 };
379 357
380 // Action that instructs to ignore rules below a certain priority. 358 // Action that instructs to ignore rules below a certain priority.
381 class WebRequestIgnoreRulesAction : public WebRequestAction { 359 class WebRequestIgnoreRulesAction : public WebRequestAction {
382 public: 360 public:
383 explicit WebRequestIgnoreRulesAction(int minimum_priority); 361 explicit WebRequestIgnoreRulesAction(int minimum_priority);
384 virtual ~WebRequestIgnoreRulesAction(); 362 virtual ~WebRequestIgnoreRulesAction();
385 363
386 // Implementation of WebRequestAction: 364 // Implementation of WebRequestAction:
387 virtual int GetStages() const OVERRIDE; 365 virtual int GetStages() const OVERRIDE;
388 virtual Type GetType() const OVERRIDE; 366 virtual Type GetType() const OVERRIDE;
389 virtual int GetMinimumPriority() const OVERRIDE; 367 virtual int GetMinimumPriority() const OVERRIDE;
390 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE; 368 virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
391 virtual LinkedPtrEventResponseDelta CreateDelta( 369 virtual LinkedPtrEventResponseDelta CreateDelta(
392 const WebRequestRule::RequestData& request_data, 370 const DeclarativeWebRequestData& request_data,
393 const std::string& extension_id, 371 const std::string& extension_id,
394 const base::Time& extension_install_time) const OVERRIDE; 372 const base::Time& extension_install_time) const OVERRIDE;
395 373
396 private: 374 private:
397 int minimum_priority_; 375 int minimum_priority_;
398 DISALLOW_COPY_AND_ASSIGN(WebRequestIgnoreRulesAction); 376 DISALLOW_COPY_AND_ASSIGN(WebRequestIgnoreRulesAction);
399 }; 377 };
400 378
401 // Action that instructs to modify (add, edit, remove) a request cookie. 379 // Action that instructs to modify (add, edit, remove) a request cookie.
402 class WebRequestRequestCookieAction : public WebRequestAction { 380 class WebRequestRequestCookieAction : public WebRequestAction {
403 public: 381 public:
404 typedef extension_web_request_api_helpers::RequestCookieModification 382 typedef extension_web_request_api_helpers::RequestCookieModification
405 RequestCookieModification; 383 RequestCookieModification;
406 384
407 explicit WebRequestRequestCookieAction( 385 explicit WebRequestRequestCookieAction(
408 linked_ptr<RequestCookieModification> request_cookie_modification); 386 linked_ptr<RequestCookieModification> request_cookie_modification);
409 virtual ~WebRequestRequestCookieAction(); 387 virtual ~WebRequestRequestCookieAction();
410 388
411 // Implementation of WebRequestAction: 389 // Implementation of WebRequestAction:
412 virtual int GetStages() const OVERRIDE; 390 virtual int GetStages() const OVERRIDE;
413 virtual Type GetType() const OVERRIDE; 391 virtual Type GetType() const OVERRIDE;
414 virtual LinkedPtrEventResponseDelta CreateDelta( 392 virtual LinkedPtrEventResponseDelta CreateDelta(
415 const WebRequestRule::RequestData& request_data, 393 const DeclarativeWebRequestData& request_data,
416 const std::string& extension_id, 394 const std::string& extension_id,
417 const base::Time& extension_install_time) const OVERRIDE; 395 const base::Time& extension_install_time) const OVERRIDE;
418 396
419 private: 397 private:
420 linked_ptr<RequestCookieModification> request_cookie_modification_; 398 linked_ptr<RequestCookieModification> request_cookie_modification_;
421 DISALLOW_COPY_AND_ASSIGN(WebRequestRequestCookieAction); 399 DISALLOW_COPY_AND_ASSIGN(WebRequestRequestCookieAction);
422 }; 400 };
423 401
424 // Action that instructs to modify (add, edit, remove) a response cookie. 402 // Action that instructs to modify (add, edit, remove) a response cookie.
425 class WebRequestResponseCookieAction : public WebRequestAction { 403 class WebRequestResponseCookieAction : public WebRequestAction {
426 public: 404 public:
427 typedef extension_web_request_api_helpers::ResponseCookieModification 405 typedef extension_web_request_api_helpers::ResponseCookieModification
428 ResponseCookieModification; 406 ResponseCookieModification;
429 407
430 explicit WebRequestResponseCookieAction( 408 explicit WebRequestResponseCookieAction(
431 linked_ptr<ResponseCookieModification> response_cookie_modification); 409 linked_ptr<ResponseCookieModification> response_cookie_modification);
432 virtual ~WebRequestResponseCookieAction(); 410 virtual ~WebRequestResponseCookieAction();
433 411
434 // Implementation of WebRequestAction: 412 // Implementation of WebRequestAction:
435 virtual int GetStages() const OVERRIDE; 413 virtual int GetStages() const OVERRIDE;
436 virtual Type GetType() const OVERRIDE; 414 virtual Type GetType() const OVERRIDE;
437 virtual LinkedPtrEventResponseDelta CreateDelta( 415 virtual LinkedPtrEventResponseDelta CreateDelta(
438 const WebRequestRule::RequestData& request_data, 416 const DeclarativeWebRequestData& request_data,
439 const std::string& extension_id, 417 const std::string& extension_id,
440 const base::Time& extension_install_time) const OVERRIDE; 418 const base::Time& extension_install_time) const OVERRIDE;
441 419
442 private: 420 private:
443 linked_ptr<ResponseCookieModification> response_cookie_modification_; 421 linked_ptr<ResponseCookieModification> response_cookie_modification_;
444 DISALLOW_COPY_AND_ASSIGN(WebRequestResponseCookieAction); 422 DISALLOW_COPY_AND_ASSIGN(WebRequestResponseCookieAction);
445 }; 423 };
446 424
447 } // namespace extensions 425 } // namespace extensions
448 426
449 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTIO N_H_ 427 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_WEBREQUEST_WEBREQUEST_ACTIO N_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698