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 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 return scoped_ptr<WebRequestActionSet>(NULL); | 411 return scoped_ptr<WebRequestActionSet>(NULL); |
412 result.push_back(make_linked_ptr(action.release())); | 412 result.push_back(make_linked_ptr(action.release())); |
413 } | 413 } |
414 | 414 |
415 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); | 415 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); |
416 } | 416 } |
417 | 417 |
418 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( | 418 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( |
419 const ExtensionInfoMap* extension_info_map, | 419 const ExtensionInfoMap* extension_info_map, |
420 const std::string& extension_id, | 420 const std::string& extension_id, |
421 net::URLRequest* request, | 421 const WebRequestRule::RequestData& request_data, |
422 bool crosses_incognito, | 422 bool crosses_incognito, |
423 RequestStages request_stage, | |
424 const WebRequestRule::OptionalRequestData& optional_request_data, | |
425 const base::Time& extension_install_time) const { | 423 const base::Time& extension_install_time) const { |
426 std::list<LinkedPtrEventResponseDelta> result; | 424 std::list<LinkedPtrEventResponseDelta> result; |
427 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | 425 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { |
428 if (!(*i)->HasPermission(extension_info_map, extension_id, request, | 426 if (!(*i)->HasPermission(extension_info_map, extension_id, |
429 crosses_incognito)) | 427 request_data.request, crosses_incognito)) |
430 continue; | 428 continue; |
431 if ((*i)->GetStages() & request_stage) { | 429 if ((*i)->GetStages() & request_data.stage) { |
432 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta(request, | 430 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta( |
433 request_stage, optional_request_data, extension_id, | 431 request_data, extension_id, extension_install_time); |
434 extension_install_time); | |
435 if (delta.get()) | 432 if (delta.get()) |
436 result.push_back(delta); | 433 result.push_back(delta); |
437 } | 434 } |
438 } | 435 } |
439 return result; | 436 return result; |
440 } | 437 } |
441 | 438 |
442 int WebRequestActionSet::GetMinimumPriority() const { | 439 int WebRequestActionSet::GetMinimumPriority() const { |
443 int minimum_priority = std::numeric_limits<int>::min(); | 440 int minimum_priority = std::numeric_limits<int>::min(); |
444 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | 441 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { |
(...skipping 13 matching lines...) Expand all Loading... |
458 int WebRequestCancelAction::GetStages() const { | 455 int WebRequestCancelAction::GetStages() const { |
459 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | | 456 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | |
460 ON_AUTH_REQUIRED; | 457 ON_AUTH_REQUIRED; |
461 } | 458 } |
462 | 459 |
463 WebRequestAction::Type WebRequestCancelAction::GetType() const { | 460 WebRequestAction::Type WebRequestCancelAction::GetType() const { |
464 return WebRequestAction::ACTION_CANCEL_REQUEST; | 461 return WebRequestAction::ACTION_CANCEL_REQUEST; |
465 } | 462 } |
466 | 463 |
467 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( | 464 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( |
468 net::URLRequest* request, | 465 const WebRequestRule::RequestData& request_data, |
469 RequestStages request_stage, | |
470 const WebRequestRule::OptionalRequestData& optional_request_data, | |
471 const std::string& extension_id, | 466 const std::string& extension_id, |
472 const base::Time& extension_install_time) const { | 467 const base::Time& extension_install_time) const { |
473 CHECK(request_stage & GetStages()); | 468 CHECK(request_data.stage & GetStages()); |
474 LinkedPtrEventResponseDelta result( | 469 LinkedPtrEventResponseDelta result( |
475 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 470 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
476 result->cancel = true; | 471 result->cancel = true; |
477 return result; | 472 return result; |
478 } | 473 } |
479 | 474 |
480 // | 475 // |
481 // WebRequestRedirectAction | 476 // WebRequestRedirectAction |
482 // | 477 // |
483 | 478 |
484 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url) | 479 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url) |
485 : redirect_url_(redirect_url) {} | 480 : redirect_url_(redirect_url) {} |
486 | 481 |
487 WebRequestRedirectAction::~WebRequestRedirectAction() {} | 482 WebRequestRedirectAction::~WebRequestRedirectAction() {} |
488 | 483 |
489 int WebRequestRedirectAction::GetStages() const { | 484 int WebRequestRedirectAction::GetStages() const { |
490 return ON_BEFORE_REQUEST; | 485 return ON_BEFORE_REQUEST; |
491 } | 486 } |
492 | 487 |
493 WebRequestAction::Type WebRequestRedirectAction::GetType() const { | 488 WebRequestAction::Type WebRequestRedirectAction::GetType() const { |
494 return WebRequestAction::ACTION_REDIRECT_REQUEST; | 489 return WebRequestAction::ACTION_REDIRECT_REQUEST; |
495 } | 490 } |
496 | 491 |
497 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( | 492 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( |
498 net::URLRequest* request, | 493 const WebRequestRule::RequestData& request_data, |
499 RequestStages request_stage, | |
500 const WebRequestRule::OptionalRequestData& optional_request_data, | |
501 const std::string& extension_id, | 494 const std::string& extension_id, |
502 const base::Time& extension_install_time) const { | 495 const base::Time& extension_install_time) const { |
503 CHECK(request_stage & GetStages()); | 496 CHECK(request_data.stage & GetStages()); |
504 if (request->url() == redirect_url_) | 497 if (request_data.request->url() == redirect_url_) |
505 return LinkedPtrEventResponseDelta(NULL); | 498 return LinkedPtrEventResponseDelta(NULL); |
506 LinkedPtrEventResponseDelta result( | 499 LinkedPtrEventResponseDelta result( |
507 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 500 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
508 result->new_url = redirect_url_; | 501 result->new_url = redirect_url_; |
509 return result; | 502 return result; |
510 } | 503 } |
511 | 504 |
512 // | 505 // |
513 // WebRequestRedirectToTransparentImageAction | 506 // WebRequestRedirectToTransparentImageAction |
514 // | 507 // |
(...skipping 13 matching lines...) Expand all Loading... |
528 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; | 521 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; |
529 } | 522 } |
530 | 523 |
531 bool WebRequestRedirectToTransparentImageAction::ShouldEnforceHostPermissions() | 524 bool WebRequestRedirectToTransparentImageAction::ShouldEnforceHostPermissions() |
532 const { | 525 const { |
533 return false; | 526 return false; |
534 } | 527 } |
535 | 528 |
536 LinkedPtrEventResponseDelta | 529 LinkedPtrEventResponseDelta |
537 WebRequestRedirectToTransparentImageAction::CreateDelta( | 530 WebRequestRedirectToTransparentImageAction::CreateDelta( |
538 net::URLRequest* request, | 531 const WebRequestRule::RequestData& request_data, |
539 RequestStages request_stage, | |
540 const WebRequestRule::OptionalRequestData& optional_request_data, | |
541 const std::string& extension_id, | 532 const std::string& extension_id, |
542 const base::Time& extension_install_time) const { | 533 const base::Time& extension_install_time) const { |
543 CHECK(request_stage & GetStages()); | 534 CHECK(request_data.stage & GetStages()); |
544 LinkedPtrEventResponseDelta result( | 535 LinkedPtrEventResponseDelta result( |
545 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 536 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
546 result->new_url = GURL(kTransparentImageUrl); | 537 result->new_url = GURL(kTransparentImageUrl); |
547 return result; | 538 return result; |
548 } | 539 } |
549 | 540 |
550 // | 541 // |
551 // WebRequestRedirectToEmptyDocumentAction | 542 // WebRequestRedirectToEmptyDocumentAction |
552 // | 543 // |
553 | 544 |
(...skipping 12 matching lines...) Expand all Loading... |
566 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; | 557 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; |
567 } | 558 } |
568 | 559 |
569 bool | 560 bool |
570 WebRequestRedirectToEmptyDocumentAction::ShouldEnforceHostPermissions() const { | 561 WebRequestRedirectToEmptyDocumentAction::ShouldEnforceHostPermissions() const { |
571 return false; | 562 return false; |
572 } | 563 } |
573 | 564 |
574 LinkedPtrEventResponseDelta | 565 LinkedPtrEventResponseDelta |
575 WebRequestRedirectToEmptyDocumentAction::CreateDelta( | 566 WebRequestRedirectToEmptyDocumentAction::CreateDelta( |
576 net::URLRequest* request, | 567 const WebRequestRule::RequestData& request_data, |
577 RequestStages request_stage, | |
578 const WebRequestRule::OptionalRequestData& optional_request_data, | |
579 const std::string& extension_id, | 568 const std::string& extension_id, |
580 const base::Time& extension_install_time) const { | 569 const base::Time& extension_install_time) const { |
581 CHECK(request_stage & GetStages()); | 570 CHECK(request_data.stage & GetStages()); |
582 LinkedPtrEventResponseDelta result( | 571 LinkedPtrEventResponseDelta result( |
583 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 572 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
584 result->new_url = GURL(kEmptyDocumentUrl); | 573 result->new_url = GURL(kEmptyDocumentUrl); |
585 return result; | 574 return result; |
586 } | 575 } |
587 | 576 |
588 // | 577 // |
589 // WebRequestRedirectByRegExAction | 578 // WebRequestRedirectByRegExAction |
590 // | 579 // |
591 | 580 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 | 641 |
653 int WebRequestRedirectByRegExAction::GetStages() const { | 642 int WebRequestRedirectByRegExAction::GetStages() const { |
654 return ON_BEFORE_REQUEST; | 643 return ON_BEFORE_REQUEST; |
655 } | 644 } |
656 | 645 |
657 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { | 646 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { |
658 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; | 647 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; |
659 } | 648 } |
660 | 649 |
661 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( | 650 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( |
662 net::URLRequest* request, | 651 const WebRequestRule::RequestData& request_data, |
663 RequestStages request_stage, | |
664 const WebRequestRule::OptionalRequestData& optional_request_data, | |
665 const std::string& extension_id, | 652 const std::string& extension_id, |
666 const base::Time& extension_install_time) const { | 653 const base::Time& extension_install_time) const { |
667 CHECK(request_stage & GetStages()); | 654 CHECK(request_data.stage & GetStages()); |
668 CHECK(from_pattern_.get()); | 655 CHECK(from_pattern_.get()); |
669 | 656 |
670 UErrorCode status = U_ZERO_ERROR; | 657 UErrorCode status = U_ZERO_ERROR; |
671 const std::string& old_url = request->url().spec(); | 658 const std::string& old_url = request_data.request->url().spec(); |
672 icu::UnicodeString old_url_unicode(old_url.data(), old_url.size()); | 659 icu::UnicodeString old_url_unicode(old_url.data(), old_url.size()); |
673 | 660 |
674 scoped_ptr<icu::RegexMatcher> matcher( | 661 scoped_ptr<icu::RegexMatcher> matcher( |
675 from_pattern_->matcher(old_url_unicode, status)); | 662 from_pattern_->matcher(old_url_unicode, status)); |
676 if (U_FAILURE(status) || !matcher.get()) | 663 if (U_FAILURE(status) || !matcher.get()) |
677 return LinkedPtrEventResponseDelta(NULL); | 664 return LinkedPtrEventResponseDelta(NULL); |
678 | 665 |
679 icu::UnicodeString new_url = matcher->replaceAll(to_pattern_, status); | 666 icu::UnicodeString new_url = matcher->replaceAll(to_pattern_, status); |
680 if (U_FAILURE(status)) | 667 if (U_FAILURE(status)) |
681 return LinkedPtrEventResponseDelta(NULL); | 668 return LinkedPtrEventResponseDelta(NULL); |
682 | 669 |
683 std::string new_url_utf8; | 670 std::string new_url_utf8; |
684 UTF16ToUTF8(new_url.getBuffer(), new_url.length(), &new_url_utf8); | 671 UTF16ToUTF8(new_url.getBuffer(), new_url.length(), &new_url_utf8); |
685 | 672 |
686 if (new_url_utf8 == request->url().spec()) | 673 if (new_url_utf8 == request_data.request->url().spec()) |
687 return LinkedPtrEventResponseDelta(NULL); | 674 return LinkedPtrEventResponseDelta(NULL); |
688 | 675 |
689 LinkedPtrEventResponseDelta result( | 676 LinkedPtrEventResponseDelta result( |
690 new extension_web_request_api_helpers::EventResponseDelta( | 677 new extension_web_request_api_helpers::EventResponseDelta( |
691 extension_id, extension_install_time)); | 678 extension_id, extension_install_time)); |
692 result->new_url = GURL(new_url_utf8); | 679 result->new_url = GURL(new_url_utf8); |
693 return result; | 680 return result; |
694 } | 681 } |
695 | 682 |
696 // | 683 // |
(...skipping 13 matching lines...) Expand all Loading... |
710 return ON_BEFORE_SEND_HEADERS; | 697 return ON_BEFORE_SEND_HEADERS; |
711 } | 698 } |
712 | 699 |
713 WebRequestAction::Type | 700 WebRequestAction::Type |
714 WebRequestSetRequestHeaderAction::GetType() const { | 701 WebRequestSetRequestHeaderAction::GetType() const { |
715 return WebRequestAction::ACTION_SET_REQUEST_HEADER; | 702 return WebRequestAction::ACTION_SET_REQUEST_HEADER; |
716 } | 703 } |
717 | 704 |
718 LinkedPtrEventResponseDelta | 705 LinkedPtrEventResponseDelta |
719 WebRequestSetRequestHeaderAction::CreateDelta( | 706 WebRequestSetRequestHeaderAction::CreateDelta( |
720 net::URLRequest* request, | 707 const WebRequestRule::RequestData& request_data, |
721 RequestStages request_stage, | |
722 const WebRequestRule::OptionalRequestData& optional_request_data, | |
723 const std::string& extension_id, | 708 const std::string& extension_id, |
724 const base::Time& extension_install_time) const { | 709 const base::Time& extension_install_time) const { |
725 CHECK(request_stage & GetStages()); | 710 CHECK(request_data.stage & GetStages()); |
726 LinkedPtrEventResponseDelta result( | 711 LinkedPtrEventResponseDelta result( |
727 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 712 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
728 result->modified_request_headers.SetHeader(name_, value_); | 713 result->modified_request_headers.SetHeader(name_, value_); |
729 return result; | 714 return result; |
730 } | 715 } |
731 | 716 |
732 // | 717 // |
733 // WebRequestRemoveRequestHeaderAction | 718 // WebRequestRemoveRequestHeaderAction |
734 // | 719 // |
735 | 720 |
736 WebRequestRemoveRequestHeaderAction::WebRequestRemoveRequestHeaderAction( | 721 WebRequestRemoveRequestHeaderAction::WebRequestRemoveRequestHeaderAction( |
737 const std::string& name) | 722 const std::string& name) |
738 : name_(name) { | 723 : name_(name) { |
739 } | 724 } |
740 | 725 |
741 WebRequestRemoveRequestHeaderAction::~WebRequestRemoveRequestHeaderAction() {} | 726 WebRequestRemoveRequestHeaderAction::~WebRequestRemoveRequestHeaderAction() {} |
742 | 727 |
743 int WebRequestRemoveRequestHeaderAction::GetStages() const { | 728 int WebRequestRemoveRequestHeaderAction::GetStages() const { |
744 return ON_BEFORE_SEND_HEADERS; | 729 return ON_BEFORE_SEND_HEADERS; |
745 } | 730 } |
746 | 731 |
747 WebRequestAction::Type | 732 WebRequestAction::Type |
748 WebRequestRemoveRequestHeaderAction::GetType() const { | 733 WebRequestRemoveRequestHeaderAction::GetType() const { |
749 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; | 734 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; |
750 } | 735 } |
751 | 736 |
752 LinkedPtrEventResponseDelta | 737 LinkedPtrEventResponseDelta |
753 WebRequestRemoveRequestHeaderAction::CreateDelta( | 738 WebRequestRemoveRequestHeaderAction::CreateDelta( |
754 net::URLRequest* request, | 739 const WebRequestRule::RequestData& request_data, |
755 RequestStages request_stage, | |
756 const WebRequestRule::OptionalRequestData& optional_request_data, | |
757 const std::string& extension_id, | 740 const std::string& extension_id, |
758 const base::Time& extension_install_time) const { | 741 const base::Time& extension_install_time) const { |
759 CHECK(request_stage & GetStages()); | 742 CHECK(request_data.stage & GetStages()); |
760 LinkedPtrEventResponseDelta result( | 743 LinkedPtrEventResponseDelta result( |
761 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 744 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
762 result->deleted_request_headers.push_back(name_); | 745 result->deleted_request_headers.push_back(name_); |
763 return result; | 746 return result; |
764 } | 747 } |
765 | 748 |
766 // | 749 // |
767 // WebRequestAddResponseHeaderAction | 750 // WebRequestAddResponseHeaderAction |
768 // | 751 // |
769 | 752 |
(...skipping 10 matching lines...) Expand all Loading... |
780 return ON_HEADERS_RECEIVED; | 763 return ON_HEADERS_RECEIVED; |
781 } | 764 } |
782 | 765 |
783 WebRequestAction::Type | 766 WebRequestAction::Type |
784 WebRequestAddResponseHeaderAction::GetType() const { | 767 WebRequestAddResponseHeaderAction::GetType() const { |
785 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; | 768 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; |
786 } | 769 } |
787 | 770 |
788 LinkedPtrEventResponseDelta | 771 LinkedPtrEventResponseDelta |
789 WebRequestAddResponseHeaderAction::CreateDelta( | 772 WebRequestAddResponseHeaderAction::CreateDelta( |
790 net::URLRequest* request, | 773 const WebRequestRule::RequestData& request_data, |
791 RequestStages request_stage, | |
792 const WebRequestRule::OptionalRequestData& optional_request_data, | |
793 const std::string& extension_id, | 774 const std::string& extension_id, |
794 const base::Time& extension_install_time) const { | 775 const base::Time& extension_install_time) const { |
795 CHECK(request_stage & GetStages()); | 776 CHECK(request_data.stage & GetStages()); |
796 net::HttpResponseHeaders* headers = | 777 net::HttpResponseHeaders* headers = |
797 optional_request_data.original_response_headers; | 778 request_data.original_response_headers; |
798 if (!headers) | 779 if (!headers) |
799 return LinkedPtrEventResponseDelta(NULL); | 780 return LinkedPtrEventResponseDelta(NULL); |
800 | 781 |
801 // Don't generate the header if it exists already. | 782 // Don't generate the header if it exists already. |
802 if (headers->HasHeaderValue(name_, value_)) | 783 if (headers->HasHeaderValue(name_, value_)) |
803 return LinkedPtrEventResponseDelta(NULL); | 784 return LinkedPtrEventResponseDelta(NULL); |
804 | 785 |
805 LinkedPtrEventResponseDelta result( | 786 LinkedPtrEventResponseDelta result( |
806 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 787 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
807 result->added_response_headers.push_back(make_pair(name_, value_)); | 788 result->added_response_headers.push_back(make_pair(name_, value_)); |
(...skipping 19 matching lines...) Expand all Loading... |
827 return ON_HEADERS_RECEIVED; | 808 return ON_HEADERS_RECEIVED; |
828 } | 809 } |
829 | 810 |
830 WebRequestAction::Type | 811 WebRequestAction::Type |
831 WebRequestRemoveResponseHeaderAction::GetType() const { | 812 WebRequestRemoveResponseHeaderAction::GetType() const { |
832 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; | 813 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; |
833 } | 814 } |
834 | 815 |
835 LinkedPtrEventResponseDelta | 816 LinkedPtrEventResponseDelta |
836 WebRequestRemoveResponseHeaderAction::CreateDelta( | 817 WebRequestRemoveResponseHeaderAction::CreateDelta( |
837 net::URLRequest* request, | 818 const WebRequestRule::RequestData& request_data, |
838 RequestStages request_stage, | |
839 const WebRequestRule::OptionalRequestData& optional_request_data, | |
840 const std::string& extension_id, | 819 const std::string& extension_id, |
841 const base::Time& extension_install_time) const { | 820 const base::Time& extension_install_time) const { |
842 CHECK(request_stage & GetStages()); | 821 CHECK(request_data.stage & GetStages()); |
843 net::HttpResponseHeaders* headers = | 822 net::HttpResponseHeaders* headers = |
844 optional_request_data.original_response_headers; | 823 request_data.original_response_headers; |
845 if (!headers) | 824 if (!headers) |
846 return LinkedPtrEventResponseDelta(NULL); | 825 return LinkedPtrEventResponseDelta(NULL); |
847 | 826 |
848 LinkedPtrEventResponseDelta result( | 827 LinkedPtrEventResponseDelta result( |
849 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 828 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
850 void* iter = NULL; | 829 void* iter = NULL; |
851 std::string current_value; | 830 std::string current_value; |
852 while (headers->EnumerateHeader(&iter, name_, ¤t_value)) { | 831 while (headers->EnumerateHeader(&iter, name_, ¤t_value)) { |
853 if (has_value_ && | 832 if (has_value_ && |
854 (current_value.size() != value_.size() || | 833 (current_value.size() != value_.size() || |
(...skipping 29 matching lines...) Expand all Loading... |
884 | 863 |
885 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { | 864 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { |
886 return minimum_priority_; | 865 return minimum_priority_; |
887 } | 866 } |
888 | 867 |
889 bool WebRequestIgnoreRulesAction::ShouldEnforceHostPermissions() const { | 868 bool WebRequestIgnoreRulesAction::ShouldEnforceHostPermissions() const { |
890 return false; | 869 return false; |
891 } | 870 } |
892 | 871 |
893 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( | 872 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( |
894 net::URLRequest* request, | 873 const WebRequestRule::RequestData& request_data, |
895 RequestStages request_stage, | |
896 const WebRequestRule::OptionalRequestData& optional_request_data, | |
897 const std::string& extension_id, | 874 const std::string& extension_id, |
898 const base::Time& extension_install_time) const { | 875 const base::Time& extension_install_time) const { |
899 CHECK(request_stage & GetStages()); | 876 CHECK(request_data.stage & GetStages()); |
900 return LinkedPtrEventResponseDelta(NULL); | 877 return LinkedPtrEventResponseDelta(NULL); |
901 } | 878 } |
902 | 879 |
903 // | 880 // |
904 // WebRequestRequestCookieAction | 881 // WebRequestRequestCookieAction |
905 // | 882 // |
906 | 883 |
907 WebRequestRequestCookieAction::WebRequestRequestCookieAction( | 884 WebRequestRequestCookieAction::WebRequestRequestCookieAction( |
908 linked_ptr<RequestCookieModification> request_cookie_modification) | 885 linked_ptr<RequestCookieModification> request_cookie_modification) |
909 : request_cookie_modification_(request_cookie_modification) { | 886 : request_cookie_modification_(request_cookie_modification) { |
910 CHECK(request_cookie_modification_.get()); | 887 CHECK(request_cookie_modification_.get()); |
911 } | 888 } |
912 | 889 |
913 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} | 890 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} |
914 | 891 |
915 int WebRequestRequestCookieAction::GetStages() const { | 892 int WebRequestRequestCookieAction::GetStages() const { |
916 return ON_BEFORE_SEND_HEADERS; | 893 return ON_BEFORE_SEND_HEADERS; |
917 } | 894 } |
918 | 895 |
919 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { | 896 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { |
920 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; | 897 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; |
921 } | 898 } |
922 | 899 |
923 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( | 900 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( |
924 net::URLRequest* request, | 901 const WebRequestRule::RequestData& request_data, |
925 RequestStages request_stage, | |
926 const WebRequestRule::OptionalRequestData& optional_request_data, | |
927 const std::string& extension_id, | 902 const std::string& extension_id, |
928 const base::Time& extension_install_time) const { | 903 const base::Time& extension_install_time) const { |
929 CHECK(request_stage & GetStages()); | 904 CHECK(request_data.stage & GetStages()); |
930 LinkedPtrEventResponseDelta result( | 905 LinkedPtrEventResponseDelta result( |
931 new extension_web_request_api_helpers::EventResponseDelta( | 906 new extension_web_request_api_helpers::EventResponseDelta( |
932 extension_id, extension_install_time)); | 907 extension_id, extension_install_time)); |
933 result->request_cookie_modifications.push_back( | 908 result->request_cookie_modifications.push_back( |
934 request_cookie_modification_); | 909 request_cookie_modification_); |
935 return result; | 910 return result; |
936 } | 911 } |
937 | 912 |
938 // | 913 // |
939 // WebRequestResponseCookieAction | 914 // WebRequestResponseCookieAction |
940 // | 915 // |
941 | 916 |
942 WebRequestResponseCookieAction::WebRequestResponseCookieAction( | 917 WebRequestResponseCookieAction::WebRequestResponseCookieAction( |
943 linked_ptr<ResponseCookieModification> response_cookie_modification) | 918 linked_ptr<ResponseCookieModification> response_cookie_modification) |
944 : response_cookie_modification_(response_cookie_modification) { | 919 : response_cookie_modification_(response_cookie_modification) { |
945 CHECK(response_cookie_modification_.get()); | 920 CHECK(response_cookie_modification_.get()); |
946 } | 921 } |
947 | 922 |
948 WebRequestResponseCookieAction::~WebRequestResponseCookieAction() {} | 923 WebRequestResponseCookieAction::~WebRequestResponseCookieAction() {} |
949 | 924 |
950 int WebRequestResponseCookieAction::GetStages() const { | 925 int WebRequestResponseCookieAction::GetStages() const { |
951 return ON_HEADERS_RECEIVED; | 926 return ON_HEADERS_RECEIVED; |
952 } | 927 } |
953 | 928 |
954 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { | 929 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { |
955 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; | 930 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; |
956 } | 931 } |
957 | 932 |
958 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( | 933 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( |
959 net::URLRequest* request, | 934 const WebRequestRule::RequestData& request_data, |
960 RequestStages request_stage, | |
961 const WebRequestRule::OptionalRequestData& optional_request_data, | |
962 const std::string& extension_id, | 935 const std::string& extension_id, |
963 const base::Time& extension_install_time) const { | 936 const base::Time& extension_install_time) const { |
964 CHECK(request_stage & GetStages()); | 937 CHECK(request_data.stage & GetStages()); |
965 LinkedPtrEventResponseDelta result( | 938 LinkedPtrEventResponseDelta result( |
966 new extension_web_request_api_helpers::EventResponseDelta( | 939 new extension_web_request_api_helpers::EventResponseDelta( |
967 extension_id, extension_install_time)); | 940 extension_id, extension_install_time)); |
968 result->response_cookie_modifications.push_back( | 941 result->response_cookie_modifications.push_back( |
969 response_cookie_modification_); | 942 response_cookie_modification_); |
970 return result; | 943 return result; |
971 } | 944 } |
972 | 945 |
973 } // namespace extensions | 946 } // namespace extensions |
OLD | NEW |