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

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

Issue 15666005: Make WebRequestAction::GetName a pure virtual function (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | 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 #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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698