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 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action
.h" | 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action
.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/stringprintf.h" | 11 #include "base/stringprintf.h" |
12 #include "base/string_util.h" | 12 #include "base/string_util.h" |
13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
14 #include "base/values.h" | 14 #include "base/values.h" |
15 #include "chrome/browser/extensions/api/declarative_webrequest/request_stages.h" | 15 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" |
16 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta
nts.h" | 16 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta
nts.h" |
17 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" | 17 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" |
18 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" | 18 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" |
19 #include "chrome/browser/extensions/extension_info_map.h" | 19 #include "chrome/browser/extensions/extension_info_map.h" |
20 #include "chrome/common/extensions/extension.h" | 20 #include "chrome/common/extensions/extension.h" |
21 #include "net/url_request/url_request.h" | 21 #include "net/url_request/url_request.h" |
22 | 22 |
23 namespace extensions { | 23 namespace extensions { |
24 | 24 |
25 namespace helpers = extension_web_request_api_helpers; | 25 namespace helpers = extension_web_request_api_helpers; |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 return scoped_ptr<WebRequestActionSet>(NULL); | 273 return scoped_ptr<WebRequestActionSet>(NULL); |
274 result.push_back(make_linked_ptr(action.release())); | 274 result.push_back(make_linked_ptr(action.release())); |
275 } | 275 } |
276 | 276 |
277 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); | 277 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); |
278 } | 278 } |
279 | 279 |
280 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( | 280 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( |
281 const ExtensionInfoMap* extension_info_map, | 281 const ExtensionInfoMap* extension_info_map, |
282 const std::string& extension_id, | 282 const std::string& extension_id, |
283 net::URLRequest* request, | 283 const WebRequestRule::RequestData& request_data, |
284 bool crosses_incognito, | 284 bool crosses_incognito, |
285 RequestStages request_stage, | |
286 const WebRequestRule::OptionalRequestData& optional_request_data, | |
287 const base::Time& extension_install_time) const { | 285 const base::Time& extension_install_time) const { |
288 std::list<LinkedPtrEventResponseDelta> result; | 286 std::list<LinkedPtrEventResponseDelta> result; |
289 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | 287 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { |
290 if (!(*i)->HasPermission(extension_info_map, extension_id, request, | 288 if (!(*i)->HasPermission(extension_info_map, extension_id, |
291 crosses_incognito)) | 289 request_data.request, crosses_incognito)) |
292 continue; | 290 continue; |
293 if ((*i)->GetStages() & request_stage) { | 291 if ((*i)->GetStages() & request_data.stage) { |
294 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta(request, | 292 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta( |
295 request_stage, optional_request_data, extension_id, | 293 request_data, extension_id, extension_install_time); |
296 extension_install_time); | |
297 if (delta.get()) | 294 if (delta.get()) |
298 result.push_back(delta); | 295 result.push_back(delta); |
299 } | 296 } |
300 } | 297 } |
301 return result; | 298 return result; |
302 } | 299 } |
303 | 300 |
304 int WebRequestActionSet::GetMinimumPriority() const { | 301 int WebRequestActionSet::GetMinimumPriority() const { |
305 int minimum_priority = std::numeric_limits<int>::min(); | 302 int minimum_priority = std::numeric_limits<int>::min(); |
306 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | 303 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { |
(...skipping 13 matching lines...) Expand all Loading... |
320 int WebRequestCancelAction::GetStages() const { | 317 int WebRequestCancelAction::GetStages() const { |
321 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | | 318 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | |
322 ON_AUTH_REQUIRED; | 319 ON_AUTH_REQUIRED; |
323 } | 320 } |
324 | 321 |
325 WebRequestAction::Type WebRequestCancelAction::GetType() const { | 322 WebRequestAction::Type WebRequestCancelAction::GetType() const { |
326 return WebRequestAction::ACTION_CANCEL_REQUEST; | 323 return WebRequestAction::ACTION_CANCEL_REQUEST; |
327 } | 324 } |
328 | 325 |
329 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( | 326 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( |
330 net::URLRequest* request, | 327 const WebRequestRule::RequestData& request_data, |
331 RequestStages request_stage, | |
332 const WebRequestRule::OptionalRequestData& optional_request_data, | |
333 const std::string& extension_id, | 328 const std::string& extension_id, |
334 const base::Time& extension_install_time) const { | 329 const base::Time& extension_install_time) const { |
335 CHECK(request_stage & GetStages()); | 330 CHECK(request_data.stage & GetStages()); |
336 LinkedPtrEventResponseDelta result( | 331 LinkedPtrEventResponseDelta result( |
337 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 332 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
338 result->cancel = true; | 333 result->cancel = true; |
339 return result; | 334 return result; |
340 } | 335 } |
341 | 336 |
342 // | 337 // |
343 // WebRequestRedirectAction | 338 // WebRequestRedirectAction |
344 // | 339 // |
345 | 340 |
346 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url) | 341 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url) |
347 : redirect_url_(redirect_url) {} | 342 : redirect_url_(redirect_url) {} |
348 | 343 |
349 WebRequestRedirectAction::~WebRequestRedirectAction() {} | 344 WebRequestRedirectAction::~WebRequestRedirectAction() {} |
350 | 345 |
351 int WebRequestRedirectAction::GetStages() const { | 346 int WebRequestRedirectAction::GetStages() const { |
352 return ON_BEFORE_REQUEST; | 347 return ON_BEFORE_REQUEST; |
353 } | 348 } |
354 | 349 |
355 WebRequestAction::Type WebRequestRedirectAction::GetType() const { | 350 WebRequestAction::Type WebRequestRedirectAction::GetType() const { |
356 return WebRequestAction::ACTION_REDIRECT_REQUEST; | 351 return WebRequestAction::ACTION_REDIRECT_REQUEST; |
357 } | 352 } |
358 | 353 |
359 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( | 354 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( |
360 net::URLRequest* request, | 355 const WebRequestRule::RequestData& request_data, |
361 RequestStages request_stage, | |
362 const WebRequestRule::OptionalRequestData& optional_request_data, | |
363 const std::string& extension_id, | 356 const std::string& extension_id, |
364 const base::Time& extension_install_time) const { | 357 const base::Time& extension_install_time) const { |
365 CHECK(request_stage & GetStages()); | 358 CHECK(request_data.stage & GetStages()); |
366 if (request->url() == redirect_url_) | 359 if (request_data.request->url() == redirect_url_) |
367 return LinkedPtrEventResponseDelta(NULL); | 360 return LinkedPtrEventResponseDelta(NULL); |
368 LinkedPtrEventResponseDelta result( | 361 LinkedPtrEventResponseDelta result( |
369 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 362 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
370 result->new_url = redirect_url_; | 363 result->new_url = redirect_url_; |
371 return result; | 364 return result; |
372 } | 365 } |
373 | 366 |
374 // | 367 // |
375 // WebRequestRedirectToTransparentImageAction | 368 // WebRequestRedirectToTransparentImageAction |
376 // | 369 // |
(...skipping 13 matching lines...) Expand all Loading... |
390 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; | 383 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; |
391 } | 384 } |
392 | 385 |
393 bool WebRequestRedirectToTransparentImageAction::ShouldEnforceHostPermissions() | 386 bool WebRequestRedirectToTransparentImageAction::ShouldEnforceHostPermissions() |
394 const { | 387 const { |
395 return false; | 388 return false; |
396 } | 389 } |
397 | 390 |
398 LinkedPtrEventResponseDelta | 391 LinkedPtrEventResponseDelta |
399 WebRequestRedirectToTransparentImageAction::CreateDelta( | 392 WebRequestRedirectToTransparentImageAction::CreateDelta( |
400 net::URLRequest* request, | 393 const WebRequestRule::RequestData& request_data, |
401 RequestStages request_stage, | |
402 const WebRequestRule::OptionalRequestData& optional_request_data, | |
403 const std::string& extension_id, | 394 const std::string& extension_id, |
404 const base::Time& extension_install_time) const { | 395 const base::Time& extension_install_time) const { |
405 CHECK(request_stage & GetStages()); | 396 CHECK(request_data.stage & GetStages()); |
406 LinkedPtrEventResponseDelta result( | 397 LinkedPtrEventResponseDelta result( |
407 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 398 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
408 result->new_url = GURL(kTransparentImageUrl); | 399 result->new_url = GURL(kTransparentImageUrl); |
409 return result; | 400 return result; |
410 } | 401 } |
411 | 402 |
412 // | 403 // |
413 // WebRequestRedirectToEmptyDocumentAction | 404 // WebRequestRedirectToEmptyDocumentAction |
414 // | 405 // |
415 | 406 |
(...skipping 12 matching lines...) Expand all Loading... |
428 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; | 419 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; |
429 } | 420 } |
430 | 421 |
431 bool | 422 bool |
432 WebRequestRedirectToEmptyDocumentAction::ShouldEnforceHostPermissions() const { | 423 WebRequestRedirectToEmptyDocumentAction::ShouldEnforceHostPermissions() const { |
433 return false; | 424 return false; |
434 } | 425 } |
435 | 426 |
436 LinkedPtrEventResponseDelta | 427 LinkedPtrEventResponseDelta |
437 WebRequestRedirectToEmptyDocumentAction::CreateDelta( | 428 WebRequestRedirectToEmptyDocumentAction::CreateDelta( |
438 net::URLRequest* request, | 429 const WebRequestRule::RequestData& request_data, |
439 RequestStages request_stage, | |
440 const WebRequestRule::OptionalRequestData& optional_request_data, | |
441 const std::string& extension_id, | 430 const std::string& extension_id, |
442 const base::Time& extension_install_time) const { | 431 const base::Time& extension_install_time) const { |
443 CHECK(request_stage & GetStages()); | 432 CHECK(request_data.stage & GetStages()); |
444 LinkedPtrEventResponseDelta result( | 433 LinkedPtrEventResponseDelta result( |
445 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 434 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
446 result->new_url = GURL(kEmptyDocumentUrl); | 435 result->new_url = GURL(kEmptyDocumentUrl); |
447 return result; | 436 return result; |
448 } | 437 } |
449 | 438 |
450 // | 439 // |
451 // WebRequestRedirectByRegExAction | 440 // WebRequestRedirectByRegExAction |
452 // | 441 // |
453 | 442 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 | 503 |
515 int WebRequestRedirectByRegExAction::GetStages() const { | 504 int WebRequestRedirectByRegExAction::GetStages() const { |
516 return ON_BEFORE_REQUEST; | 505 return ON_BEFORE_REQUEST; |
517 } | 506 } |
518 | 507 |
519 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { | 508 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { |
520 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; | 509 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; |
521 } | 510 } |
522 | 511 |
523 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( | 512 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( |
524 net::URLRequest* request, | 513 const WebRequestRule::RequestData& request_data, |
525 RequestStages request_stage, | |
526 const WebRequestRule::OptionalRequestData& optional_request_data, | |
527 const std::string& extension_id, | 514 const std::string& extension_id, |
528 const base::Time& extension_install_time) const { | 515 const base::Time& extension_install_time) const { |
529 CHECK(request_stage & GetStages()); | 516 CHECK(request_data.stage & GetStages()); |
530 CHECK(from_pattern_.get()); | 517 CHECK(from_pattern_.get()); |
531 | 518 |
532 UErrorCode status = U_ZERO_ERROR; | 519 UErrorCode status = U_ZERO_ERROR; |
533 const std::string& old_url = request->url().spec(); | 520 const std::string& old_url = request_data.request->url().spec(); |
534 icu::UnicodeString old_url_unicode(old_url.data(), old_url.size()); | 521 icu::UnicodeString old_url_unicode(old_url.data(), old_url.size()); |
535 | 522 |
536 scoped_ptr<icu::RegexMatcher> matcher( | 523 scoped_ptr<icu::RegexMatcher> matcher( |
537 from_pattern_->matcher(old_url_unicode, status)); | 524 from_pattern_->matcher(old_url_unicode, status)); |
538 if (U_FAILURE(status) || !matcher.get()) | 525 if (U_FAILURE(status) || !matcher.get()) |
539 return LinkedPtrEventResponseDelta(NULL); | 526 return LinkedPtrEventResponseDelta(NULL); |
540 | 527 |
541 icu::UnicodeString new_url = matcher->replaceAll(to_pattern_, status); | 528 icu::UnicodeString new_url = matcher->replaceAll(to_pattern_, status); |
542 if (U_FAILURE(status)) | 529 if (U_FAILURE(status)) |
543 return LinkedPtrEventResponseDelta(NULL); | 530 return LinkedPtrEventResponseDelta(NULL); |
544 | 531 |
545 std::string new_url_utf8; | 532 std::string new_url_utf8; |
546 UTF16ToUTF8(new_url.getBuffer(), new_url.length(), &new_url_utf8); | 533 UTF16ToUTF8(new_url.getBuffer(), new_url.length(), &new_url_utf8); |
547 | 534 |
548 if (new_url_utf8 == request->url().spec()) | 535 if (new_url_utf8 == request_data.request->url().spec()) |
549 return LinkedPtrEventResponseDelta(NULL); | 536 return LinkedPtrEventResponseDelta(NULL); |
550 | 537 |
551 LinkedPtrEventResponseDelta result( | 538 LinkedPtrEventResponseDelta result( |
552 new extension_web_request_api_helpers::EventResponseDelta( | 539 new extension_web_request_api_helpers::EventResponseDelta( |
553 extension_id, extension_install_time)); | 540 extension_id, extension_install_time)); |
554 result->new_url = GURL(new_url_utf8); | 541 result->new_url = GURL(new_url_utf8); |
555 return result; | 542 return result; |
556 } | 543 } |
557 | 544 |
558 // | 545 // |
(...skipping 13 matching lines...) Expand all Loading... |
572 return ON_BEFORE_SEND_HEADERS; | 559 return ON_BEFORE_SEND_HEADERS; |
573 } | 560 } |
574 | 561 |
575 WebRequestAction::Type | 562 WebRequestAction::Type |
576 WebRequestSetRequestHeaderAction::GetType() const { | 563 WebRequestSetRequestHeaderAction::GetType() const { |
577 return WebRequestAction::ACTION_SET_REQUEST_HEADER; | 564 return WebRequestAction::ACTION_SET_REQUEST_HEADER; |
578 } | 565 } |
579 | 566 |
580 LinkedPtrEventResponseDelta | 567 LinkedPtrEventResponseDelta |
581 WebRequestSetRequestHeaderAction::CreateDelta( | 568 WebRequestSetRequestHeaderAction::CreateDelta( |
582 net::URLRequest* request, | 569 const WebRequestRule::RequestData& request_data, |
583 RequestStages request_stage, | |
584 const WebRequestRule::OptionalRequestData& optional_request_data, | |
585 const std::string& extension_id, | 570 const std::string& extension_id, |
586 const base::Time& extension_install_time) const { | 571 const base::Time& extension_install_time) const { |
587 CHECK(request_stage & GetStages()); | 572 CHECK(request_data.stage & GetStages()); |
588 LinkedPtrEventResponseDelta result( | 573 LinkedPtrEventResponseDelta result( |
589 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 574 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
590 result->modified_request_headers.SetHeader(name_, value_); | 575 result->modified_request_headers.SetHeader(name_, value_); |
591 return result; | 576 return result; |
592 } | 577 } |
593 | 578 |
594 // | 579 // |
595 // WebRequestRemoveRequestHeaderAction | 580 // WebRequestRemoveRequestHeaderAction |
596 // | 581 // |
597 | 582 |
598 WebRequestRemoveRequestHeaderAction::WebRequestRemoveRequestHeaderAction( | 583 WebRequestRemoveRequestHeaderAction::WebRequestRemoveRequestHeaderAction( |
599 const std::string& name) | 584 const std::string& name) |
600 : name_(name) { | 585 : name_(name) { |
601 } | 586 } |
602 | 587 |
603 WebRequestRemoveRequestHeaderAction::~WebRequestRemoveRequestHeaderAction() {} | 588 WebRequestRemoveRequestHeaderAction::~WebRequestRemoveRequestHeaderAction() {} |
604 | 589 |
605 int WebRequestRemoveRequestHeaderAction::GetStages() const { | 590 int WebRequestRemoveRequestHeaderAction::GetStages() const { |
606 return ON_BEFORE_SEND_HEADERS; | 591 return ON_BEFORE_SEND_HEADERS; |
607 } | 592 } |
608 | 593 |
609 WebRequestAction::Type | 594 WebRequestAction::Type |
610 WebRequestRemoveRequestHeaderAction::GetType() const { | 595 WebRequestRemoveRequestHeaderAction::GetType() const { |
611 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; | 596 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; |
612 } | 597 } |
613 | 598 |
614 LinkedPtrEventResponseDelta | 599 LinkedPtrEventResponseDelta |
615 WebRequestRemoveRequestHeaderAction::CreateDelta( | 600 WebRequestRemoveRequestHeaderAction::CreateDelta( |
616 net::URLRequest* request, | 601 const WebRequestRule::RequestData& request_data, |
617 RequestStages request_stage, | |
618 const WebRequestRule::OptionalRequestData& optional_request_data, | |
619 const std::string& extension_id, | 602 const std::string& extension_id, |
620 const base::Time& extension_install_time) const { | 603 const base::Time& extension_install_time) const { |
621 CHECK(request_stage & GetStages()); | 604 CHECK(request_data.stage & GetStages()); |
622 LinkedPtrEventResponseDelta result( | 605 LinkedPtrEventResponseDelta result( |
623 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 606 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
624 result->deleted_request_headers.push_back(name_); | 607 result->deleted_request_headers.push_back(name_); |
625 return result; | 608 return result; |
626 } | 609 } |
627 | 610 |
628 // | 611 // |
629 // WebRequestAddResponseHeaderAction | 612 // WebRequestAddResponseHeaderAction |
630 // | 613 // |
631 | 614 |
(...skipping 10 matching lines...) Expand all Loading... |
642 return ON_HEADERS_RECEIVED; | 625 return ON_HEADERS_RECEIVED; |
643 } | 626 } |
644 | 627 |
645 WebRequestAction::Type | 628 WebRequestAction::Type |
646 WebRequestAddResponseHeaderAction::GetType() const { | 629 WebRequestAddResponseHeaderAction::GetType() const { |
647 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; | 630 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; |
648 } | 631 } |
649 | 632 |
650 LinkedPtrEventResponseDelta | 633 LinkedPtrEventResponseDelta |
651 WebRequestAddResponseHeaderAction::CreateDelta( | 634 WebRequestAddResponseHeaderAction::CreateDelta( |
652 net::URLRequest* request, | 635 const WebRequestRule::RequestData& request_data, |
653 RequestStages request_stage, | |
654 const WebRequestRule::OptionalRequestData& optional_request_data, | |
655 const std::string& extension_id, | 636 const std::string& extension_id, |
656 const base::Time& extension_install_time) const { | 637 const base::Time& extension_install_time) const { |
657 CHECK(request_stage & GetStages()); | 638 CHECK(request_data.stage & GetStages()); |
658 net::HttpResponseHeaders* headers = | 639 net::HttpResponseHeaders* headers = |
659 optional_request_data.original_response_headers; | 640 request_data.original_response_headers; |
660 if (!headers) | 641 if (!headers) |
661 return LinkedPtrEventResponseDelta(NULL); | 642 return LinkedPtrEventResponseDelta(NULL); |
662 | 643 |
663 // Don't generate the header if it exists already. | 644 // Don't generate the header if it exists already. |
664 if (headers->HasHeaderValue(name_, value_)) | 645 if (headers->HasHeaderValue(name_, value_)) |
665 return LinkedPtrEventResponseDelta(NULL); | 646 return LinkedPtrEventResponseDelta(NULL); |
666 | 647 |
667 LinkedPtrEventResponseDelta result( | 648 LinkedPtrEventResponseDelta result( |
668 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 649 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
669 result->added_response_headers.push_back(make_pair(name_, value_)); | 650 result->added_response_headers.push_back(make_pair(name_, value_)); |
(...skipping 19 matching lines...) Expand all Loading... |
689 return ON_HEADERS_RECEIVED; | 670 return ON_HEADERS_RECEIVED; |
690 } | 671 } |
691 | 672 |
692 WebRequestAction::Type | 673 WebRequestAction::Type |
693 WebRequestRemoveResponseHeaderAction::GetType() const { | 674 WebRequestRemoveResponseHeaderAction::GetType() const { |
694 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; | 675 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; |
695 } | 676 } |
696 | 677 |
697 LinkedPtrEventResponseDelta | 678 LinkedPtrEventResponseDelta |
698 WebRequestRemoveResponseHeaderAction::CreateDelta( | 679 WebRequestRemoveResponseHeaderAction::CreateDelta( |
699 net::URLRequest* request, | 680 const WebRequestRule::RequestData& request_data, |
700 RequestStages request_stage, | |
701 const WebRequestRule::OptionalRequestData& optional_request_data, | |
702 const std::string& extension_id, | 681 const std::string& extension_id, |
703 const base::Time& extension_install_time) const { | 682 const base::Time& extension_install_time) const { |
704 CHECK(request_stage & GetStages()); | 683 CHECK(request_data.stage & GetStages()); |
705 net::HttpResponseHeaders* headers = | 684 net::HttpResponseHeaders* headers = |
706 optional_request_data.original_response_headers; | 685 request_data.original_response_headers; |
707 if (!headers) | 686 if (!headers) |
708 return LinkedPtrEventResponseDelta(NULL); | 687 return LinkedPtrEventResponseDelta(NULL); |
709 | 688 |
710 LinkedPtrEventResponseDelta result( | 689 LinkedPtrEventResponseDelta result( |
711 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 690 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
712 void* iter = NULL; | 691 void* iter = NULL; |
713 std::string current_value; | 692 std::string current_value; |
714 while (headers->EnumerateHeader(&iter, name_, ¤t_value)) { | 693 while (headers->EnumerateHeader(&iter, name_, ¤t_value)) { |
715 if (has_value_ && | 694 if (has_value_ && |
716 (current_value.size() != value_.size() || | 695 (current_value.size() != value_.size() || |
(...skipping 29 matching lines...) Expand all Loading... |
746 | 725 |
747 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { | 726 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { |
748 return minimum_priority_; | 727 return minimum_priority_; |
749 } | 728 } |
750 | 729 |
751 bool WebRequestIgnoreRulesAction::ShouldEnforceHostPermissions() const { | 730 bool WebRequestIgnoreRulesAction::ShouldEnforceHostPermissions() const { |
752 return false; | 731 return false; |
753 } | 732 } |
754 | 733 |
755 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( | 734 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( |
756 net::URLRequest* request, | 735 const WebRequestRule::RequestData& request_data, |
757 RequestStages request_stage, | |
758 const WebRequestRule::OptionalRequestData& optional_request_data, | |
759 const std::string& extension_id, | 736 const std::string& extension_id, |
760 const base::Time& extension_install_time) const { | 737 const base::Time& extension_install_time) const { |
761 CHECK(request_stage & GetStages()); | 738 CHECK(request_data.stage & GetStages()); |
762 return LinkedPtrEventResponseDelta(NULL); | 739 return LinkedPtrEventResponseDelta(NULL); |
763 } | 740 } |
764 | 741 |
765 } // namespace extensions | 742 } // namespace extensions |
OLD | NEW |