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" |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 bool* bad_message) { | 339 bool* bad_message) { |
340 const base::DictionaryValue* dict = NULL; | 340 const base::DictionaryValue* dict = NULL; |
341 CHECK(value->GetAsDictionary(&dict)); | 341 CHECK(value->GetAsDictionary(&dict)); |
342 std::string message; | 342 std::string message; |
343 INPUT_FORMAT_VALIDATE(dict->GetString(keys::kMessageKey, &message)); | 343 INPUT_FORMAT_VALIDATE(dict->GetString(keys::kMessageKey, &message)); |
344 return scoped_refptr<const WebRequestAction>( | 344 return scoped_refptr<const WebRequestAction>( |
345 new WebRequestSendMessageToExtensionAction(message)); | 345 new WebRequestSendMessageToExtensionAction(message)); |
346 } | 346 } |
347 | 347 |
348 struct WebRequestActionFactory { | 348 struct WebRequestActionFactory { |
349 typedef std::map<WebRequestAction::Type, const std::string> ActionNames; | |
350 | |
351 DedupingFactory<WebRequestAction> factory; | 349 DedupingFactory<WebRequestAction> factory; |
352 | 350 |
353 // Translates action types into the corresponding JavaScript names. | |
354 ActionNames action_names; | |
355 | |
356 WebRequestActionFactory() : factory(5) { | 351 WebRequestActionFactory() : factory(5) { |
357 factory.RegisterFactoryMethod( | 352 factory.RegisterFactoryMethod( |
358 keys::kAddRequestCookieType, | 353 keys::kAddRequestCookieType, |
359 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, | 354 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, |
360 &CreateRequestCookieAction); | 355 &CreateRequestCookieAction); |
361 factory.RegisterFactoryMethod( | 356 factory.RegisterFactoryMethod( |
362 keys::kAddResponseCookieType, | 357 keys::kAddResponseCookieType, |
363 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, | 358 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, |
364 &CreateResponseCookieAction); | 359 &CreateResponseCookieAction); |
365 factory.RegisterFactoryMethod( | 360 factory.RegisterFactoryMethod( |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, | 411 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, |
417 &CreateRemoveResponseHeaderAction); | 412 &CreateRemoveResponseHeaderAction); |
418 factory.RegisterFactoryMethod( | 413 factory.RegisterFactoryMethod( |
419 keys::kIgnoreRulesType, | 414 keys::kIgnoreRulesType, |
420 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, | 415 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, |
421 &CreateIgnoreRulesAction); | 416 &CreateIgnoreRulesAction); |
422 factory.RegisterFactoryMethod( | 417 factory.RegisterFactoryMethod( |
423 keys::kSendMessageToExtensionType, | 418 keys::kSendMessageToExtensionType, |
424 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, | 419 DedupingFactory<WebRequestAction>::IS_PARAMETERIZED, |
425 &CreateSendMessageToExtensionAction); | 420 &CreateSendMessageToExtensionAction); |
426 | |
427 #define INSERT_ACTION_NAME(type, name) \ | |
428 action_names.insert(ActionNames::value_type(type, name)); | |
429 std::vector<std::string> names_buffer; | |
430 names_buffer.push_back(keys::kAddRequestCookieType); | |
431 names_buffer.push_back(keys::kEditRequestCookieType); | |
432 names_buffer.push_back(keys::kRemoveRequestCookieType); | |
433 INSERT_ACTION_NAME(WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE, | |
434 JoinString(names_buffer, ", ")); | |
435 names_buffer.clear(); | |
436 names_buffer.push_back(keys::kAddResponseCookieType); | |
437 names_buffer.push_back(keys::kEditResponseCookieType); | |
438 names_buffer.push_back(keys::kRemoveResponseCookieType); | |
439 INSERT_ACTION_NAME(WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE, | |
440 JoinString(names_buffer, ", ")); | |
441 INSERT_ACTION_NAME(WebRequestAction::ACTION_ADD_RESPONSE_HEADER, | |
442 keys::kAddResponseHeaderType); | |
443 INSERT_ACTION_NAME(WebRequestAction::ACTION_CANCEL_REQUEST, | |
444 keys::kCancelRequestType); | |
445 INSERT_ACTION_NAME(WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT, | |
446 keys::kRedirectByRegExType); | |
447 INSERT_ACTION_NAME(WebRequestAction::ACTION_REDIRECT_REQUEST, | |
448 keys::kRedirectRequestType); | |
449 INSERT_ACTION_NAME(WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE, | |
450 keys::kRedirectToTransparentImageType); | |
451 INSERT_ACTION_NAME(WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT, | |
452 keys::kRedirectToEmptyDocumentType); | |
453 INSERT_ACTION_NAME(WebRequestAction::ACTION_SET_REQUEST_HEADER, | |
454 keys::kSetRequestHeaderType); | |
455 INSERT_ACTION_NAME(WebRequestAction::ACTION_REMOVE_REQUEST_HEADER, | |
456 keys::kRemoveRequestHeaderType); | |
457 INSERT_ACTION_NAME(WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER, | |
458 keys::kRemoveResponseHeaderType); | |
459 INSERT_ACTION_NAME(WebRequestAction::ACTION_IGNORE_RULES, | |
460 keys::kIgnoreRulesType); | |
461 INSERT_ACTION_NAME(WebRequestAction::ACTION_SEND_MESSAGE_TO_EXTENSION, | |
462 keys::kSendMessageToExtensionType); | |
463 #undef INSERT_ACTION_NAME | |
464 } | 421 } |
465 }; | 422 }; |
466 | 423 |
467 base::LazyInstance<WebRequestActionFactory>::Leaky | 424 base::LazyInstance<WebRequestActionFactory>::Leaky |
468 g_web_request_action_factory = LAZY_INSTANCE_INITIALIZER; | 425 g_web_request_action_factory = LAZY_INSTANCE_INITIALIZER; |
469 | 426 |
470 } // namespace | 427 } // namespace |
471 | 428 |
472 // | 429 // |
473 // WebRequestAction | 430 // WebRequestAction |
474 // | 431 // |
475 | 432 |
476 WebRequestAction::~WebRequestAction() {} | 433 WebRequestAction::~WebRequestAction() {} |
477 | 434 |
478 bool WebRequestAction::Equals(const WebRequestAction* other) const { | 435 bool WebRequestAction::Equals(const WebRequestAction* other) const { |
479 return type() == other->type(); | 436 return type() == other->type(); |
480 } | 437 } |
481 | 438 |
482 const std::string& WebRequestAction::GetName() const { | |
483 const WebRequestActionFactory::ActionNames& names = | |
484 g_web_request_action_factory.Get().action_names; | |
485 std::map<WebRequestAction::Type, const std::string>::const_iterator it = | |
486 names.find(type()); | |
487 CHECK(it != names.end()); | |
488 return it->second; | |
489 } | |
490 | |
491 bool WebRequestAction::HasPermission(const ExtensionInfoMap* extension_info_map, | 439 bool WebRequestAction::HasPermission(const ExtensionInfoMap* extension_info_map, |
492 const std::string& extension_id, | 440 const std::string& extension_id, |
493 const net::URLRequest* request, | 441 const net::URLRequest* request, |
494 bool crosses_incognito) const { | 442 bool crosses_incognito) const { |
495 if (WebRequestPermissions::HideRequest(extension_info_map, request)) | 443 if (WebRequestPermissions::HideRequest(extension_info_map, request)) |
496 return false; | 444 return false; |
497 | 445 |
498 // In unit tests we don't have an extension_info_map object here and skip host | 446 // In unit tests we don't have an extension_info_map object here and skip host |
499 // permission checks. | 447 // permission checks. |
500 if (!extension_info_map) | 448 if (!extension_info_map) |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 | 521 |
574 WebRequestCancelAction::WebRequestCancelAction() | 522 WebRequestCancelAction::WebRequestCancelAction() |
575 : WebRequestAction(ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | | 523 : WebRequestAction(ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | |
576 ON_HEADERS_RECEIVED | ON_AUTH_REQUIRED, | 524 ON_HEADERS_RECEIVED | ON_AUTH_REQUIRED, |
577 ACTION_CANCEL_REQUEST, | 525 ACTION_CANCEL_REQUEST, |
578 std::numeric_limits<int>::min(), | 526 std::numeric_limits<int>::min(), |
579 STRATEGY_NONE) {} | 527 STRATEGY_NONE) {} |
580 | 528 |
581 WebRequestCancelAction::~WebRequestCancelAction() {} | 529 WebRequestCancelAction::~WebRequestCancelAction() {} |
582 | 530 |
| 531 std::string WebRequestCancelAction::GetName() const { |
| 532 return keys::kCancelRequestType; |
| 533 } |
| 534 |
583 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( | 535 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( |
584 const WebRequestData& request_data, | 536 const WebRequestData& request_data, |
585 const std::string& extension_id, | 537 const std::string& extension_id, |
586 const base::Time& extension_install_time) const { | 538 const base::Time& extension_install_time) const { |
587 CHECK(request_data.stage & stages()); | 539 CHECK(request_data.stage & stages()); |
588 LinkedPtrEventResponseDelta result( | 540 LinkedPtrEventResponseDelta result( |
589 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 541 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
590 result->cancel = true; | 542 result->cancel = true; |
591 return result; | 543 return result; |
592 } | 544 } |
(...skipping 10 matching lines...) Expand all Loading... |
603 redirect_url_(redirect_url) {} | 555 redirect_url_(redirect_url) {} |
604 | 556 |
605 WebRequestRedirectAction::~WebRequestRedirectAction() {} | 557 WebRequestRedirectAction::~WebRequestRedirectAction() {} |
606 | 558 |
607 bool WebRequestRedirectAction::Equals(const WebRequestAction* other) const { | 559 bool WebRequestRedirectAction::Equals(const WebRequestAction* other) const { |
608 return WebRequestAction::Equals(other) && | 560 return WebRequestAction::Equals(other) && |
609 redirect_url_ == | 561 redirect_url_ == |
610 static_cast<const WebRequestRedirectAction*>(other)->redirect_url_; | 562 static_cast<const WebRequestRedirectAction*>(other)->redirect_url_; |
611 } | 563 } |
612 | 564 |
| 565 std::string WebRequestRedirectAction::GetName() const { |
| 566 return keys::kRedirectRequestType; |
| 567 } |
| 568 |
613 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( | 569 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( |
614 const WebRequestData& request_data, | 570 const WebRequestData& request_data, |
615 const std::string& extension_id, | 571 const std::string& extension_id, |
616 const base::Time& extension_install_time) const { | 572 const base::Time& extension_install_time) const { |
617 CHECK(request_data.stage & stages()); | 573 CHECK(request_data.stage & stages()); |
618 if (request_data.request->url() == redirect_url_) | 574 if (request_data.request->url() == redirect_url_) |
619 return LinkedPtrEventResponseDelta(NULL); | 575 return LinkedPtrEventResponseDelta(NULL); |
620 LinkedPtrEventResponseDelta result( | 576 LinkedPtrEventResponseDelta result( |
621 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 577 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
622 result->new_url = redirect_url_; | 578 result->new_url = redirect_url_; |
623 return result; | 579 return result; |
624 } | 580 } |
625 | 581 |
626 // | 582 // |
627 // WebRequestRedirectToTransparentImageAction | 583 // WebRequestRedirectToTransparentImageAction |
628 // | 584 // |
629 | 585 |
630 WebRequestRedirectToTransparentImageAction:: | 586 WebRequestRedirectToTransparentImageAction:: |
631 WebRequestRedirectToTransparentImageAction() | 587 WebRequestRedirectToTransparentImageAction() |
632 : WebRequestAction(ON_BEFORE_REQUEST, | 588 : WebRequestAction(ON_BEFORE_REQUEST, |
633 ACTION_REDIRECT_TO_TRANSPARENT_IMAGE, | 589 ACTION_REDIRECT_TO_TRANSPARENT_IMAGE, |
634 std::numeric_limits<int>::min(), | 590 std::numeric_limits<int>::min(), |
635 STRATEGY_NONE) {} | 591 STRATEGY_NONE) {} |
636 | 592 |
637 WebRequestRedirectToTransparentImageAction:: | 593 WebRequestRedirectToTransparentImageAction:: |
638 ~WebRequestRedirectToTransparentImageAction() {} | 594 ~WebRequestRedirectToTransparentImageAction() {} |
639 | 595 |
| 596 std::string WebRequestRedirectToTransparentImageAction::GetName() const { |
| 597 return keys::kRedirectToTransparentImageType; |
| 598 } |
| 599 |
640 LinkedPtrEventResponseDelta | 600 LinkedPtrEventResponseDelta |
641 WebRequestRedirectToTransparentImageAction::CreateDelta( | 601 WebRequestRedirectToTransparentImageAction::CreateDelta( |
642 const WebRequestData& request_data, | 602 const WebRequestData& request_data, |
643 const std::string& extension_id, | 603 const std::string& extension_id, |
644 const base::Time& extension_install_time) const { | 604 const base::Time& extension_install_time) const { |
645 CHECK(request_data.stage & stages()); | 605 CHECK(request_data.stage & stages()); |
646 LinkedPtrEventResponseDelta result( | 606 LinkedPtrEventResponseDelta result( |
647 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 607 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
648 result->new_url = GURL(kTransparentImageUrl); | 608 result->new_url = GURL(kTransparentImageUrl); |
649 return result; | 609 return result; |
650 } | 610 } |
651 | 611 |
652 // | 612 // |
653 // WebRequestRedirectToEmptyDocumentAction | 613 // WebRequestRedirectToEmptyDocumentAction |
654 // | 614 // |
655 | 615 |
656 WebRequestRedirectToEmptyDocumentAction:: | 616 WebRequestRedirectToEmptyDocumentAction:: |
657 WebRequestRedirectToEmptyDocumentAction() | 617 WebRequestRedirectToEmptyDocumentAction() |
658 : WebRequestAction(ON_BEFORE_REQUEST, | 618 : WebRequestAction(ON_BEFORE_REQUEST, |
659 ACTION_REDIRECT_TO_EMPTY_DOCUMENT, | 619 ACTION_REDIRECT_TO_EMPTY_DOCUMENT, |
660 std::numeric_limits<int>::min(), | 620 std::numeric_limits<int>::min(), |
661 STRATEGY_NONE) {} | 621 STRATEGY_NONE) {} |
662 | 622 |
663 WebRequestRedirectToEmptyDocumentAction:: | 623 WebRequestRedirectToEmptyDocumentAction:: |
664 ~WebRequestRedirectToEmptyDocumentAction() {} | 624 ~WebRequestRedirectToEmptyDocumentAction() {} |
665 | 625 |
| 626 std::string WebRequestRedirectToEmptyDocumentAction::GetName() const { |
| 627 return keys::kRedirectToEmptyDocumentType; |
| 628 } |
| 629 |
666 LinkedPtrEventResponseDelta | 630 LinkedPtrEventResponseDelta |
667 WebRequestRedirectToEmptyDocumentAction::CreateDelta( | 631 WebRequestRedirectToEmptyDocumentAction::CreateDelta( |
668 const WebRequestData& request_data, | 632 const WebRequestData& request_data, |
669 const std::string& extension_id, | 633 const std::string& extension_id, |
670 const base::Time& extension_install_time) const { | 634 const base::Time& extension_install_time) const { |
671 CHECK(request_data.stage & stages()); | 635 CHECK(request_data.stage & stages()); |
672 LinkedPtrEventResponseDelta result( | 636 LinkedPtrEventResponseDelta result( |
673 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 637 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
674 result->new_url = GURL(kEmptyDocumentUrl); | 638 result->new_url = GURL(kEmptyDocumentUrl); |
675 return result; | 639 return result; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 bool WebRequestRedirectByRegExAction::Equals( | 711 bool WebRequestRedirectByRegExAction::Equals( |
748 const WebRequestAction* other) const { | 712 const WebRequestAction* other) const { |
749 if (!WebRequestAction::Equals(other)) | 713 if (!WebRequestAction::Equals(other)) |
750 return false; | 714 return false; |
751 const WebRequestRedirectByRegExAction* casted_other = | 715 const WebRequestRedirectByRegExAction* casted_other = |
752 static_cast<const WebRequestRedirectByRegExAction*>(other); | 716 static_cast<const WebRequestRedirectByRegExAction*>(other); |
753 return from_pattern_->pattern() == casted_other->from_pattern_->pattern() && | 717 return from_pattern_->pattern() == casted_other->from_pattern_->pattern() && |
754 to_pattern_ == casted_other->to_pattern_; | 718 to_pattern_ == casted_other->to_pattern_; |
755 } | 719 } |
756 | 720 |
| 721 std::string WebRequestRedirectByRegExAction::GetName() const { |
| 722 return keys::kRedirectByRegExType; |
| 723 } |
| 724 |
757 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( | 725 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( |
758 const WebRequestData& request_data, | 726 const WebRequestData& request_data, |
759 const std::string& extension_id, | 727 const std::string& extension_id, |
760 const base::Time& extension_install_time) const { | 728 const base::Time& extension_install_time) const { |
761 CHECK(request_data.stage & stages()); | 729 CHECK(request_data.stage & stages()); |
762 CHECK(from_pattern_.get()); | 730 CHECK(from_pattern_.get()); |
763 | 731 |
764 const std::string& old_url = request_data.request->url().spec(); | 732 const std::string& old_url = request_data.request->url().spec(); |
765 std::string new_url = old_url; | 733 std::string new_url = old_url; |
766 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || | 734 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || |
(...skipping 26 matching lines...) Expand all Loading... |
793 | 761 |
794 bool WebRequestSetRequestHeaderAction::Equals( | 762 bool WebRequestSetRequestHeaderAction::Equals( |
795 const WebRequestAction* other) const { | 763 const WebRequestAction* other) const { |
796 if (!WebRequestAction::Equals(other)) | 764 if (!WebRequestAction::Equals(other)) |
797 return false; | 765 return false; |
798 const WebRequestSetRequestHeaderAction* casted_other = | 766 const WebRequestSetRequestHeaderAction* casted_other = |
799 static_cast<const WebRequestSetRequestHeaderAction*>(other); | 767 static_cast<const WebRequestSetRequestHeaderAction*>(other); |
800 return name_ == casted_other->name_ && value_ == casted_other->value_; | 768 return name_ == casted_other->name_ && value_ == casted_other->value_; |
801 } | 769 } |
802 | 770 |
| 771 std::string WebRequestSetRequestHeaderAction::GetName() const { |
| 772 return keys::kSetRequestHeaderType; |
| 773 } |
| 774 |
| 775 |
803 LinkedPtrEventResponseDelta | 776 LinkedPtrEventResponseDelta |
804 WebRequestSetRequestHeaderAction::CreateDelta( | 777 WebRequestSetRequestHeaderAction::CreateDelta( |
805 const WebRequestData& request_data, | 778 const WebRequestData& request_data, |
806 const std::string& extension_id, | 779 const std::string& extension_id, |
807 const base::Time& extension_install_time) const { | 780 const base::Time& extension_install_time) const { |
808 CHECK(request_data.stage & stages()); | 781 CHECK(request_data.stage & stages()); |
809 LinkedPtrEventResponseDelta result( | 782 LinkedPtrEventResponseDelta result( |
810 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 783 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
811 result->modified_request_headers.SetHeader(name_, value_); | 784 result->modified_request_headers.SetHeader(name_, value_); |
812 return result; | 785 return result; |
(...skipping 15 matching lines...) Expand all Loading... |
828 | 801 |
829 bool WebRequestRemoveRequestHeaderAction::Equals( | 802 bool WebRequestRemoveRequestHeaderAction::Equals( |
830 const WebRequestAction* other) const { | 803 const WebRequestAction* other) const { |
831 if (!WebRequestAction::Equals(other)) | 804 if (!WebRequestAction::Equals(other)) |
832 return false; | 805 return false; |
833 const WebRequestRemoveRequestHeaderAction* casted_other = | 806 const WebRequestRemoveRequestHeaderAction* casted_other = |
834 static_cast<const WebRequestRemoveRequestHeaderAction*>(other); | 807 static_cast<const WebRequestRemoveRequestHeaderAction*>(other); |
835 return name_ == casted_other->name_; | 808 return name_ == casted_other->name_; |
836 } | 809 } |
837 | 810 |
| 811 std::string WebRequestRemoveRequestHeaderAction::GetName() const { |
| 812 return keys::kRemoveRequestHeaderType; |
| 813 } |
| 814 |
838 LinkedPtrEventResponseDelta | 815 LinkedPtrEventResponseDelta |
839 WebRequestRemoveRequestHeaderAction::CreateDelta( | 816 WebRequestRemoveRequestHeaderAction::CreateDelta( |
840 const WebRequestData& request_data, | 817 const WebRequestData& request_data, |
841 const std::string& extension_id, | 818 const std::string& extension_id, |
842 const base::Time& extension_install_time) const { | 819 const base::Time& extension_install_time) const { |
843 CHECK(request_data.stage & stages()); | 820 CHECK(request_data.stage & stages()); |
844 LinkedPtrEventResponseDelta result( | 821 LinkedPtrEventResponseDelta result( |
845 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 822 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
846 result->deleted_request_headers.push_back(name_); | 823 result->deleted_request_headers.push_back(name_); |
847 return result; | 824 return result; |
(...skipping 17 matching lines...) Expand all Loading... |
865 | 842 |
866 bool WebRequestAddResponseHeaderAction::Equals( | 843 bool WebRequestAddResponseHeaderAction::Equals( |
867 const WebRequestAction* other) const { | 844 const WebRequestAction* other) const { |
868 if (!WebRequestAction::Equals(other)) | 845 if (!WebRequestAction::Equals(other)) |
869 return false; | 846 return false; |
870 const WebRequestAddResponseHeaderAction* casted_other = | 847 const WebRequestAddResponseHeaderAction* casted_other = |
871 static_cast<const WebRequestAddResponseHeaderAction*>(other); | 848 static_cast<const WebRequestAddResponseHeaderAction*>(other); |
872 return name_ == casted_other->name_ && value_ == casted_other->value_; | 849 return name_ == casted_other->name_ && value_ == casted_other->value_; |
873 } | 850 } |
874 | 851 |
| 852 std::string WebRequestAddResponseHeaderAction::GetName() const { |
| 853 return keys::kAddResponseHeaderType; |
| 854 } |
| 855 |
875 LinkedPtrEventResponseDelta | 856 LinkedPtrEventResponseDelta |
876 WebRequestAddResponseHeaderAction::CreateDelta( | 857 WebRequestAddResponseHeaderAction::CreateDelta( |
877 const WebRequestData& request_data, | 858 const WebRequestData& request_data, |
878 const std::string& extension_id, | 859 const std::string& extension_id, |
879 const base::Time& extension_install_time) const { | 860 const base::Time& extension_install_time) const { |
880 CHECK(request_data.stage & stages()); | 861 CHECK(request_data.stage & stages()); |
881 const net::HttpResponseHeaders* headers = | 862 const net::HttpResponseHeaders* headers = |
882 request_data.original_response_headers; | 863 request_data.original_response_headers; |
883 if (!headers) | 864 if (!headers) |
884 return LinkedPtrEventResponseDelta(NULL); | 865 return LinkedPtrEventResponseDelta(NULL); |
(...skipping 29 matching lines...) Expand all Loading... |
914 bool WebRequestRemoveResponseHeaderAction::Equals( | 895 bool WebRequestRemoveResponseHeaderAction::Equals( |
915 const WebRequestAction* other) const { | 896 const WebRequestAction* other) const { |
916 if (!WebRequestAction::Equals(other)) | 897 if (!WebRequestAction::Equals(other)) |
917 return false; | 898 return false; |
918 const WebRequestRemoveResponseHeaderAction* casted_other = | 899 const WebRequestRemoveResponseHeaderAction* casted_other = |
919 static_cast<const WebRequestRemoveResponseHeaderAction*>(other); | 900 static_cast<const WebRequestRemoveResponseHeaderAction*>(other); |
920 return name_ == casted_other->name_ && value_ == casted_other->value_ && | 901 return name_ == casted_other->name_ && value_ == casted_other->value_ && |
921 has_value_ == casted_other->has_value_; | 902 has_value_ == casted_other->has_value_; |
922 } | 903 } |
923 | 904 |
| 905 std::string WebRequestRemoveResponseHeaderAction::GetName() const { |
| 906 return keys::kRemoveResponseHeaderType; |
| 907 } |
| 908 |
924 LinkedPtrEventResponseDelta | 909 LinkedPtrEventResponseDelta |
925 WebRequestRemoveResponseHeaderAction::CreateDelta( | 910 WebRequestRemoveResponseHeaderAction::CreateDelta( |
926 const WebRequestData& request_data, | 911 const WebRequestData& request_data, |
927 const std::string& extension_id, | 912 const std::string& extension_id, |
928 const base::Time& extension_install_time) const { | 913 const base::Time& extension_install_time) const { |
929 CHECK(request_data.stage & stages()); | 914 CHECK(request_data.stage & stages()); |
930 const net::HttpResponseHeaders* headers = | 915 const net::HttpResponseHeaders* headers = |
931 request_data.original_response_headers; | 916 request_data.original_response_headers; |
932 if (!headers) | 917 if (!headers) |
933 return LinkedPtrEventResponseDelta(NULL); | 918 return LinkedPtrEventResponseDelta(NULL); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
967 | 952 |
968 bool WebRequestIgnoreRulesAction::Equals(const WebRequestAction* other) const { | 953 bool WebRequestIgnoreRulesAction::Equals(const WebRequestAction* other) const { |
969 if (!WebRequestAction::Equals(other)) | 954 if (!WebRequestAction::Equals(other)) |
970 return false; | 955 return false; |
971 const WebRequestIgnoreRulesAction* casted_other = | 956 const WebRequestIgnoreRulesAction* casted_other = |
972 static_cast<const WebRequestIgnoreRulesAction*>(other); | 957 static_cast<const WebRequestIgnoreRulesAction*>(other); |
973 return minimum_priority() == casted_other->minimum_priority() && | 958 return minimum_priority() == casted_other->minimum_priority() && |
974 ignore_tag_ == casted_other->ignore_tag_; | 959 ignore_tag_ == casted_other->ignore_tag_; |
975 } | 960 } |
976 | 961 |
| 962 std::string WebRequestIgnoreRulesAction::GetName() const { |
| 963 return keys::kIgnoreRulesType; |
| 964 } |
| 965 |
977 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( | 966 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( |
978 const WebRequestData& request_data, | 967 const WebRequestData& request_data, |
979 const std::string& extension_id, | 968 const std::string& extension_id, |
980 const base::Time& extension_install_time) const { | 969 const base::Time& extension_install_time) const { |
981 CHECK(request_data.stage & stages()); | 970 CHECK(request_data.stage & stages()); |
982 return LinkedPtrEventResponseDelta(NULL); | 971 return LinkedPtrEventResponseDelta(NULL); |
983 } | 972 } |
984 | 973 |
985 // | 974 // |
986 // WebRequestRequestCookieAction | 975 // WebRequestRequestCookieAction |
(...skipping 15 matching lines...) Expand all Loading... |
1002 const WebRequestAction* other) const { | 991 const WebRequestAction* other) const { |
1003 if (!WebRequestAction::Equals(other)) | 992 if (!WebRequestAction::Equals(other)) |
1004 return false; | 993 return false; |
1005 const WebRequestRequestCookieAction* casted_other = | 994 const WebRequestRequestCookieAction* casted_other = |
1006 static_cast<const WebRequestRequestCookieAction*>(other); | 995 static_cast<const WebRequestRequestCookieAction*>(other); |
1007 return helpers::NullableEquals( | 996 return helpers::NullableEquals( |
1008 request_cookie_modification_.get(), | 997 request_cookie_modification_.get(), |
1009 casted_other->request_cookie_modification_.get()); | 998 casted_other->request_cookie_modification_.get()); |
1010 } | 999 } |
1011 | 1000 |
| 1001 std::string WebRequestRequestCookieAction::GetName() const { |
| 1002 switch (request_cookie_modification_->type) { |
| 1003 case helpers::ADD: |
| 1004 return keys::kAddRequestCookieType; |
| 1005 case helpers::EDIT: |
| 1006 return keys::kEditRequestCookieType; |
| 1007 case helpers::REMOVE: |
| 1008 return keys::kRemoveRequestCookieType; |
| 1009 } |
| 1010 NOTREACHED(); |
| 1011 return ""; |
| 1012 } |
| 1013 |
1012 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( | 1014 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( |
1013 const WebRequestData& request_data, | 1015 const WebRequestData& request_data, |
1014 const std::string& extension_id, | 1016 const std::string& extension_id, |
1015 const base::Time& extension_install_time) const { | 1017 const base::Time& extension_install_time) const { |
1016 CHECK(request_data.stage & stages()); | 1018 CHECK(request_data.stage & stages()); |
1017 LinkedPtrEventResponseDelta result( | 1019 LinkedPtrEventResponseDelta result( |
1018 new extension_web_request_api_helpers::EventResponseDelta( | 1020 new extension_web_request_api_helpers::EventResponseDelta( |
1019 extension_id, extension_install_time)); | 1021 extension_id, extension_install_time)); |
1020 result->request_cookie_modifications.push_back( | 1022 result->request_cookie_modifications.push_back( |
1021 request_cookie_modification_); | 1023 request_cookie_modification_); |
(...skipping 20 matching lines...) Expand all Loading... |
1042 const WebRequestAction* other) const { | 1044 const WebRequestAction* other) const { |
1043 if (!WebRequestAction::Equals(other)) | 1045 if (!WebRequestAction::Equals(other)) |
1044 return false; | 1046 return false; |
1045 const WebRequestResponseCookieAction* casted_other = | 1047 const WebRequestResponseCookieAction* casted_other = |
1046 static_cast<const WebRequestResponseCookieAction*>(other); | 1048 static_cast<const WebRequestResponseCookieAction*>(other); |
1047 return helpers::NullableEquals( | 1049 return helpers::NullableEquals( |
1048 response_cookie_modification_.get(), | 1050 response_cookie_modification_.get(), |
1049 casted_other->response_cookie_modification_.get()); | 1051 casted_other->response_cookie_modification_.get()); |
1050 } | 1052 } |
1051 | 1053 |
| 1054 std::string WebRequestResponseCookieAction::GetName() const { |
| 1055 switch (response_cookie_modification_->type) { |
| 1056 case helpers::ADD: |
| 1057 return keys::kAddResponseCookieType; |
| 1058 case helpers::EDIT: |
| 1059 return keys::kEditResponseCookieType; |
| 1060 case helpers::REMOVE: |
| 1061 return keys::kRemoveResponseCookieType; |
| 1062 } |
| 1063 NOTREACHED(); |
| 1064 return ""; |
| 1065 } |
| 1066 |
1052 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( | 1067 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( |
1053 const WebRequestData& request_data, | 1068 const WebRequestData& request_data, |
1054 const std::string& extension_id, | 1069 const std::string& extension_id, |
1055 const base::Time& extension_install_time) const { | 1070 const base::Time& extension_install_time) const { |
1056 CHECK(request_data.stage & stages()); | 1071 CHECK(request_data.stage & stages()); |
1057 LinkedPtrEventResponseDelta result( | 1072 LinkedPtrEventResponseDelta result( |
1058 new extension_web_request_api_helpers::EventResponseDelta( | 1073 new extension_web_request_api_helpers::EventResponseDelta( |
1059 extension_id, extension_install_time)); | 1074 extension_id, extension_install_time)); |
1060 result->response_cookie_modifications.push_back( | 1075 result->response_cookie_modifications.push_back( |
1061 response_cookie_modification_); | 1076 response_cookie_modification_); |
(...skipping 18 matching lines...) Expand all Loading... |
1080 | 1095 |
1081 bool WebRequestSendMessageToExtensionAction::Equals( | 1096 bool WebRequestSendMessageToExtensionAction::Equals( |
1082 const WebRequestAction* other) const { | 1097 const WebRequestAction* other) const { |
1083 if (!WebRequestAction::Equals(other)) | 1098 if (!WebRequestAction::Equals(other)) |
1084 return false; | 1099 return false; |
1085 const WebRequestSendMessageToExtensionAction* casted_other = | 1100 const WebRequestSendMessageToExtensionAction* casted_other = |
1086 static_cast<const WebRequestSendMessageToExtensionAction*>(other); | 1101 static_cast<const WebRequestSendMessageToExtensionAction*>(other); |
1087 return message_ == casted_other->message_; | 1102 return message_ == casted_other->message_; |
1088 } | 1103 } |
1089 | 1104 |
| 1105 std::string WebRequestSendMessageToExtensionAction::GetName() const { |
| 1106 return keys::kSendMessageToExtensionType; |
| 1107 } |
| 1108 |
1090 LinkedPtrEventResponseDelta WebRequestSendMessageToExtensionAction::CreateDelta( | 1109 LinkedPtrEventResponseDelta WebRequestSendMessageToExtensionAction::CreateDelta( |
1091 const WebRequestData& request_data, | 1110 const WebRequestData& request_data, |
1092 const std::string& extension_id, | 1111 const std::string& extension_id, |
1093 const base::Time& extension_install_time) const { | 1112 const base::Time& extension_install_time) const { |
1094 CHECK(request_data.stage & stages()); | 1113 CHECK(request_data.stage & stages()); |
1095 LinkedPtrEventResponseDelta result( | 1114 LinkedPtrEventResponseDelta result( |
1096 new extension_web_request_api_helpers::EventResponseDelta( | 1115 new extension_web_request_api_helpers::EventResponseDelta( |
1097 extension_id, extension_install_time)); | 1116 extension_id, extension_install_time)); |
1098 result->messages_to_extension.insert(message_); | 1117 result->messages_to_extension.insert(message_); |
1099 return result; | 1118 return result; |
1100 } | 1119 } |
1101 | 1120 |
1102 } // namespace extensions | 1121 } // namespace extensions |
OLD | NEW |