Chromium Code Reviews| 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/values.h" | 13 #include "base/values.h" |
| 14 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" | 14 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" |
| 15 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion.h" | |
| 15 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" | 16 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" |
| 16 #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" |
| 17 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" | 18 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" |
| 18 #include "chrome/browser/extensions/extension_info_map.h" | 19 #include "chrome/browser/extensions/extension_info_map.h" |
| 19 #include "chrome/common/extensions/extension.h" | 20 #include "chrome/common/extensions/extension.h" |
| 20 #include "content/public/common/url_constants.h" | 21 #include "content/public/common/url_constants.h" |
| 21 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 22 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 22 #include "net/url_request/url_request.h" | 23 #include "net/url_request/url_request.h" |
| 23 #include "third_party/re2/re2/re2.h" | 24 #include "third_party/re2/re2/re2.h" |
| 24 | 25 |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 433 WebRequestActionFactory& factory = g_web_request_action_factory.Get(); | 434 WebRequestActionFactory& factory = g_web_request_action_factory.Get(); |
| 434 std::map<std::string, WebRequestActionFactory::FactoryMethod>::iterator | 435 std::map<std::string, WebRequestActionFactory::FactoryMethod>::iterator |
| 435 factory_method_iter = factory.factory_methods.find(instance_type); | 436 factory_method_iter = factory.factory_methods.find(instance_type); |
| 436 if (factory_method_iter != factory.factory_methods.end()) | 437 if (factory_method_iter != factory.factory_methods.end()) |
| 437 return (*factory_method_iter->second)(action_dict, error, bad_message); | 438 return (*factory_method_iter->second)(action_dict, error, bad_message); |
| 438 | 439 |
| 439 *error = base::StringPrintf(kInvalidInstanceTypeError, instance_type.c_str()); | 440 *error = base::StringPrintf(kInvalidInstanceTypeError, instance_type.c_str()); |
| 440 return scoped_ptr<WebRequestAction>(); | 441 return scoped_ptr<WebRequestAction>(); |
| 441 } | 442 } |
| 442 | 443 |
| 444 void WebRequestAction::Apply(const std::string& extension_id, | |
| 445 base::Time extension_install_time, | |
| 446 ApplyInfo* apply_info) const { | |
| 447 if (!HasPermission(apply_info->extension_info_map, extension_id, | |
| 448 apply_info->request_data.request, | |
| 449 apply_info->crosses_incognito)) | |
| 450 return; | |
| 451 if (GetStages() & apply_info->request_data.stage) { | |
| 452 LinkedPtrEventResponseDelta delta = CreateDelta( | |
| 453 apply_info->request_data, extension_id, | |
| 454 extension_install_time); | |
|
battre
2013/01/16 15:41:10
nit: move to previous line?
Jeffrey Yasskin
2013/01/16 23:11:14
Done.
| |
| 455 if (delta.get()) { | |
| 456 if (DeltaHasPermission(apply_info->extension_info_map, extension_id, | |
| 457 apply_info->request_data.request, | |
| 458 apply_info->crosses_incognito, | |
| 459 delta)) | |
| 460 apply_info->deltas->push_back(delta); | |
| 461 } | |
| 462 } | |
| 463 } | |
| 464 | |
| 443 | 465 |
| 444 // | 466 // |
| 445 // WebRequestActionSet | |
| 446 // | |
| 447 | |
| 448 WebRequestActionSet::WebRequestActionSet(const Actions& actions) | |
| 449 : actions_(actions) {} | |
| 450 | |
| 451 WebRequestActionSet::~WebRequestActionSet() {} | |
| 452 | |
| 453 // static | |
| 454 scoped_ptr<WebRequestActionSet> WebRequestActionSet::Create( | |
| 455 const AnyVector& actions, | |
| 456 std::string* error, | |
| 457 bool* bad_message) { | |
| 458 *error = ""; | |
| 459 *bad_message = false; | |
| 460 Actions result; | |
| 461 | |
| 462 for (AnyVector::const_iterator i = actions.begin(); | |
| 463 i != actions.end(); ++i) { | |
| 464 CHECK(i->get()); | |
| 465 scoped_ptr<WebRequestAction> action = | |
| 466 WebRequestAction::Create((*i)->value(), error, bad_message); | |
| 467 if (!error->empty() || *bad_message) | |
| 468 return scoped_ptr<WebRequestActionSet>(NULL); | |
| 469 result.push_back(make_linked_ptr(action.release())); | |
| 470 } | |
| 471 | |
| 472 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); | |
| 473 } | |
| 474 | |
| 475 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( | |
| 476 const ExtensionInfoMap* extension_info_map, | |
| 477 const std::string& extension_id, | |
| 478 const WebRequestRule::RequestData& request_data, | |
| 479 bool crosses_incognito, | |
| 480 const base::Time& extension_install_time) const { | |
| 481 std::list<LinkedPtrEventResponseDelta> result; | |
| 482 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | |
| 483 if (!(*i)->HasPermission(extension_info_map, extension_id, | |
| 484 request_data.request, crosses_incognito)) | |
| 485 continue; | |
| 486 if ((*i)->GetStages() & request_data.stage) { | |
| 487 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta( | |
| 488 request_data, extension_id, extension_install_time); | |
| 489 if (delta.get()) { | |
| 490 if ((*i)->DeltaHasPermission(extension_info_map, extension_id, | |
| 491 request_data.request, crosses_incognito, | |
| 492 delta)) | |
| 493 result.push_back(delta); | |
| 494 } | |
| 495 } | |
| 496 } | |
| 497 return result; | |
| 498 } | |
| 499 | |
| 500 int WebRequestActionSet::GetMinimumPriority() const { | |
| 501 int minimum_priority = std::numeric_limits<int>::min(); | |
| 502 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | |
| 503 minimum_priority = std::max(minimum_priority, (*i)->GetMinimumPriority()); | |
| 504 } | |
| 505 return minimum_priority; | |
| 506 } | |
| 507 | |
| 508 // | |
| 509 // WebRequestCancelAction | 467 // WebRequestCancelAction |
| 510 // | 468 // |
| 511 | 469 |
| 512 WebRequestCancelAction::WebRequestCancelAction() {} | 470 WebRequestCancelAction::WebRequestCancelAction() {} |
| 513 | 471 |
| 514 WebRequestCancelAction::~WebRequestCancelAction() {} | 472 WebRequestCancelAction::~WebRequestCancelAction() {} |
| 515 | 473 |
| 516 int WebRequestCancelAction::GetStages() const { | 474 int WebRequestCancelAction::GetStages() const { |
| 517 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | | 475 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | |
| 518 ON_AUTH_REQUIRED; | 476 ON_AUTH_REQUIRED; |
| 519 } | 477 } |
| 520 | 478 |
| 521 WebRequestAction::Type WebRequestCancelAction::GetType() const { | 479 WebRequestAction::Type WebRequestCancelAction::GetType() const { |
| 522 return WebRequestAction::ACTION_CANCEL_REQUEST; | 480 return WebRequestAction::ACTION_CANCEL_REQUEST; |
| 523 } | 481 } |
| 524 | 482 |
| 525 WebRequestAction::HostPermissionsStrategy | 483 WebRequestAction::HostPermissionsStrategy |
| 526 WebRequestCancelAction::GetHostPermissionsStrategy() const { | 484 WebRequestCancelAction::GetHostPermissionsStrategy() const { |
| 527 return WebRequestAction::STRATEGY_NONE; | 485 return WebRequestAction::STRATEGY_NONE; |
| 528 } | 486 } |
| 529 | 487 |
| 530 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( | 488 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( |
| 531 const WebRequestRule::RequestData& request_data, | 489 const DeclarativeWebRequestData& request_data, |
| 532 const std::string& extension_id, | 490 const std::string& extension_id, |
| 533 const base::Time& extension_install_time) const { | 491 const base::Time& extension_install_time) const { |
| 534 CHECK(request_data.stage & GetStages()); | 492 CHECK(request_data.stage & GetStages()); |
| 535 LinkedPtrEventResponseDelta result( | 493 LinkedPtrEventResponseDelta result( |
| 536 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 494 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 537 result->cancel = true; | 495 result->cancel = true; |
| 538 return result; | 496 return result; |
| 539 } | 497 } |
| 540 | 498 |
| 541 // | 499 // |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 554 WebRequestAction::Type WebRequestRedirectAction::GetType() const { | 512 WebRequestAction::Type WebRequestRedirectAction::GetType() const { |
| 555 return WebRequestAction::ACTION_REDIRECT_REQUEST; | 513 return WebRequestAction::ACTION_REDIRECT_REQUEST; |
| 556 } | 514 } |
| 557 | 515 |
| 558 WebRequestAction::HostPermissionsStrategy | 516 WebRequestAction::HostPermissionsStrategy |
| 559 WebRequestRedirectAction::GetHostPermissionsStrategy() const { | 517 WebRequestRedirectAction::GetHostPermissionsStrategy() const { |
| 560 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; | 518 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; |
| 561 } | 519 } |
| 562 | 520 |
| 563 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( | 521 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( |
| 564 const WebRequestRule::RequestData& request_data, | 522 const DeclarativeWebRequestData& request_data, |
| 565 const std::string& extension_id, | 523 const std::string& extension_id, |
| 566 const base::Time& extension_install_time) const { | 524 const base::Time& extension_install_time) const { |
| 567 CHECK(request_data.stage & GetStages()); | 525 CHECK(request_data.stage & GetStages()); |
| 568 if (request_data.request->url() == redirect_url_) | 526 if (request_data.request->url() == redirect_url_) |
| 569 return LinkedPtrEventResponseDelta(NULL); | 527 return LinkedPtrEventResponseDelta(NULL); |
| 570 LinkedPtrEventResponseDelta result( | 528 LinkedPtrEventResponseDelta result( |
| 571 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 529 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 572 result->new_url = redirect_url_; | 530 result->new_url = redirect_url_; |
| 573 return result; | 531 return result; |
| 574 } | 532 } |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 592 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; | 550 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; |
| 593 } | 551 } |
| 594 | 552 |
| 595 WebRequestAction::HostPermissionsStrategy | 553 WebRequestAction::HostPermissionsStrategy |
| 596 WebRequestRedirectToTransparentImageAction::GetHostPermissionsStrategy() const { | 554 WebRequestRedirectToTransparentImageAction::GetHostPermissionsStrategy() const { |
| 597 return WebRequestAction::STRATEGY_NONE; | 555 return WebRequestAction::STRATEGY_NONE; |
| 598 } | 556 } |
| 599 | 557 |
| 600 LinkedPtrEventResponseDelta | 558 LinkedPtrEventResponseDelta |
| 601 WebRequestRedirectToTransparentImageAction::CreateDelta( | 559 WebRequestRedirectToTransparentImageAction::CreateDelta( |
| 602 const WebRequestRule::RequestData& request_data, | 560 const DeclarativeWebRequestData& request_data, |
| 603 const std::string& extension_id, | 561 const std::string& extension_id, |
| 604 const base::Time& extension_install_time) const { | 562 const base::Time& extension_install_time) const { |
| 605 CHECK(request_data.stage & GetStages()); | 563 CHECK(request_data.stage & GetStages()); |
| 606 LinkedPtrEventResponseDelta result( | 564 LinkedPtrEventResponseDelta result( |
| 607 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 565 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 608 result->new_url = GURL(kTransparentImageUrl); | 566 result->new_url = GURL(kTransparentImageUrl); |
| 609 return result; | 567 return result; |
| 610 } | 568 } |
| 611 | 569 |
| 612 // | 570 // |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 628 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; | 586 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; |
| 629 } | 587 } |
| 630 | 588 |
| 631 WebRequestAction::HostPermissionsStrategy | 589 WebRequestAction::HostPermissionsStrategy |
| 632 WebRequestRedirectToEmptyDocumentAction::GetHostPermissionsStrategy() const { | 590 WebRequestRedirectToEmptyDocumentAction::GetHostPermissionsStrategy() const { |
| 633 return WebRequestAction::STRATEGY_NONE; | 591 return WebRequestAction::STRATEGY_NONE; |
| 634 } | 592 } |
| 635 | 593 |
| 636 LinkedPtrEventResponseDelta | 594 LinkedPtrEventResponseDelta |
| 637 WebRequestRedirectToEmptyDocumentAction::CreateDelta( | 595 WebRequestRedirectToEmptyDocumentAction::CreateDelta( |
| 638 const WebRequestRule::RequestData& request_data, | 596 const DeclarativeWebRequestData& request_data, |
| 639 const std::string& extension_id, | 597 const std::string& extension_id, |
| 640 const base::Time& extension_install_time) const { | 598 const base::Time& extension_install_time) const { |
| 641 CHECK(request_data.stage & GetStages()); | 599 CHECK(request_data.stage & GetStages()); |
| 642 LinkedPtrEventResponseDelta result( | 600 LinkedPtrEventResponseDelta result( |
| 643 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 601 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 644 result->new_url = GURL(kEmptyDocumentUrl); | 602 result->new_url = GURL(kEmptyDocumentUrl); |
| 645 return result; | 603 return result; |
| 646 } | 604 } |
| 647 | 605 |
| 648 // | 606 // |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 717 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { | 675 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { |
| 718 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; | 676 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; |
| 719 } | 677 } |
| 720 | 678 |
| 721 WebRequestAction::HostPermissionsStrategy | 679 WebRequestAction::HostPermissionsStrategy |
| 722 WebRequestRedirectByRegExAction::GetHostPermissionsStrategy() const { | 680 WebRequestRedirectByRegExAction::GetHostPermissionsStrategy() const { |
| 723 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; | 681 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; |
| 724 } | 682 } |
| 725 | 683 |
| 726 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( | 684 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( |
| 727 const WebRequestRule::RequestData& request_data, | 685 const DeclarativeWebRequestData& request_data, |
| 728 const std::string& extension_id, | 686 const std::string& extension_id, |
| 729 const base::Time& extension_install_time) const { | 687 const base::Time& extension_install_time) const { |
| 730 CHECK(request_data.stage & GetStages()); | 688 CHECK(request_data.stage & GetStages()); |
| 731 CHECK(from_pattern_.get()); | 689 CHECK(from_pattern_.get()); |
| 732 | 690 |
| 733 const std::string& old_url = request_data.request->url().spec(); | 691 const std::string& old_url = request_data.request->url().spec(); |
| 734 std::string new_url = old_url; | 692 std::string new_url = old_url; |
| 735 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || | 693 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || |
| 736 new_url == old_url) { | 694 new_url == old_url) { |
| 737 return LinkedPtrEventResponseDelta(NULL); | 695 return LinkedPtrEventResponseDelta(NULL); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 761 return ON_BEFORE_SEND_HEADERS; | 719 return ON_BEFORE_SEND_HEADERS; |
| 762 } | 720 } |
| 763 | 721 |
| 764 WebRequestAction::Type | 722 WebRequestAction::Type |
| 765 WebRequestSetRequestHeaderAction::GetType() const { | 723 WebRequestSetRequestHeaderAction::GetType() const { |
| 766 return WebRequestAction::ACTION_SET_REQUEST_HEADER; | 724 return WebRequestAction::ACTION_SET_REQUEST_HEADER; |
| 767 } | 725 } |
| 768 | 726 |
| 769 LinkedPtrEventResponseDelta | 727 LinkedPtrEventResponseDelta |
| 770 WebRequestSetRequestHeaderAction::CreateDelta( | 728 WebRequestSetRequestHeaderAction::CreateDelta( |
| 771 const WebRequestRule::RequestData& request_data, | 729 const DeclarativeWebRequestData& request_data, |
| 772 const std::string& extension_id, | 730 const std::string& extension_id, |
| 773 const base::Time& extension_install_time) const { | 731 const base::Time& extension_install_time) const { |
| 774 CHECK(request_data.stage & GetStages()); | 732 CHECK(request_data.stage & GetStages()); |
| 775 LinkedPtrEventResponseDelta result( | 733 LinkedPtrEventResponseDelta result( |
| 776 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 734 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 777 result->modified_request_headers.SetHeader(name_, value_); | 735 result->modified_request_headers.SetHeader(name_, value_); |
| 778 return result; | 736 return result; |
| 779 } | 737 } |
| 780 | 738 |
| 781 // | 739 // |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 793 return ON_BEFORE_SEND_HEADERS; | 751 return ON_BEFORE_SEND_HEADERS; |
| 794 } | 752 } |
| 795 | 753 |
| 796 WebRequestAction::Type | 754 WebRequestAction::Type |
| 797 WebRequestRemoveRequestHeaderAction::GetType() const { | 755 WebRequestRemoveRequestHeaderAction::GetType() const { |
| 798 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; | 756 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; |
| 799 } | 757 } |
| 800 | 758 |
| 801 LinkedPtrEventResponseDelta | 759 LinkedPtrEventResponseDelta |
| 802 WebRequestRemoveRequestHeaderAction::CreateDelta( | 760 WebRequestRemoveRequestHeaderAction::CreateDelta( |
| 803 const WebRequestRule::RequestData& request_data, | 761 const DeclarativeWebRequestData& request_data, |
| 804 const std::string& extension_id, | 762 const std::string& extension_id, |
| 805 const base::Time& extension_install_time) const { | 763 const base::Time& extension_install_time) const { |
| 806 CHECK(request_data.stage & GetStages()); | 764 CHECK(request_data.stage & GetStages()); |
| 807 LinkedPtrEventResponseDelta result( | 765 LinkedPtrEventResponseDelta result( |
| 808 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 766 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 809 result->deleted_request_headers.push_back(name_); | 767 result->deleted_request_headers.push_back(name_); |
| 810 return result; | 768 return result; |
| 811 } | 769 } |
| 812 | 770 |
| 813 // | 771 // |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 827 return ON_HEADERS_RECEIVED; | 785 return ON_HEADERS_RECEIVED; |
| 828 } | 786 } |
| 829 | 787 |
| 830 WebRequestAction::Type | 788 WebRequestAction::Type |
| 831 WebRequestAddResponseHeaderAction::GetType() const { | 789 WebRequestAddResponseHeaderAction::GetType() const { |
| 832 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; | 790 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; |
| 833 } | 791 } |
| 834 | 792 |
| 835 LinkedPtrEventResponseDelta | 793 LinkedPtrEventResponseDelta |
| 836 WebRequestAddResponseHeaderAction::CreateDelta( | 794 WebRequestAddResponseHeaderAction::CreateDelta( |
| 837 const WebRequestRule::RequestData& request_data, | 795 const DeclarativeWebRequestData& request_data, |
| 838 const std::string& extension_id, | 796 const std::string& extension_id, |
| 839 const base::Time& extension_install_time) const { | 797 const base::Time& extension_install_time) const { |
| 840 CHECK(request_data.stage & GetStages()); | 798 CHECK(request_data.stage & GetStages()); |
| 841 const net::HttpResponseHeaders* headers = | 799 const net::HttpResponseHeaders* headers = |
| 842 request_data.original_response_headers; | 800 request_data.original_response_headers; |
| 843 if (!headers) | 801 if (!headers) |
| 844 return LinkedPtrEventResponseDelta(NULL); | 802 return LinkedPtrEventResponseDelta(NULL); |
| 845 | 803 |
| 846 // Don't generate the header if it exists already. | 804 // Don't generate the header if it exists already. |
| 847 if (headers->HasHeaderValue(name_, value_)) | 805 if (headers->HasHeaderValue(name_, value_)) |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 872 return ON_HEADERS_RECEIVED; | 830 return ON_HEADERS_RECEIVED; |
| 873 } | 831 } |
| 874 | 832 |
| 875 WebRequestAction::Type | 833 WebRequestAction::Type |
| 876 WebRequestRemoveResponseHeaderAction::GetType() const { | 834 WebRequestRemoveResponseHeaderAction::GetType() const { |
| 877 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; | 835 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; |
| 878 } | 836 } |
| 879 | 837 |
| 880 LinkedPtrEventResponseDelta | 838 LinkedPtrEventResponseDelta |
| 881 WebRequestRemoveResponseHeaderAction::CreateDelta( | 839 WebRequestRemoveResponseHeaderAction::CreateDelta( |
| 882 const WebRequestRule::RequestData& request_data, | 840 const DeclarativeWebRequestData& request_data, |
| 883 const std::string& extension_id, | 841 const std::string& extension_id, |
| 884 const base::Time& extension_install_time) const { | 842 const base::Time& extension_install_time) const { |
| 885 CHECK(request_data.stage & GetStages()); | 843 CHECK(request_data.stage & GetStages()); |
| 886 const net::HttpResponseHeaders* headers = | 844 const net::HttpResponseHeaders* headers = |
| 887 request_data.original_response_headers; | 845 request_data.original_response_headers; |
| 888 if (!headers) | 846 if (!headers) |
| 889 return LinkedPtrEventResponseDelta(NULL); | 847 return LinkedPtrEventResponseDelta(NULL); |
| 890 | 848 |
| 891 LinkedPtrEventResponseDelta result( | 849 LinkedPtrEventResponseDelta result( |
| 892 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 850 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 928 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { | 886 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { |
| 929 return minimum_priority_; | 887 return minimum_priority_; |
| 930 } | 888 } |
| 931 | 889 |
| 932 WebRequestAction::HostPermissionsStrategy | 890 WebRequestAction::HostPermissionsStrategy |
| 933 WebRequestIgnoreRulesAction::GetHostPermissionsStrategy() const { | 891 WebRequestIgnoreRulesAction::GetHostPermissionsStrategy() const { |
| 934 return WebRequestAction::STRATEGY_NONE; | 892 return WebRequestAction::STRATEGY_NONE; |
| 935 } | 893 } |
| 936 | 894 |
| 937 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( | 895 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( |
| 938 const WebRequestRule::RequestData& request_data, | 896 const DeclarativeWebRequestData& request_data, |
| 939 const std::string& extension_id, | 897 const std::string& extension_id, |
| 940 const base::Time& extension_install_time) const { | 898 const base::Time& extension_install_time) const { |
| 941 CHECK(request_data.stage & GetStages()); | 899 CHECK(request_data.stage & GetStages()); |
| 942 return LinkedPtrEventResponseDelta(NULL); | 900 return LinkedPtrEventResponseDelta(NULL); |
| 943 } | 901 } |
| 944 | 902 |
| 945 // | 903 // |
| 946 // WebRequestRequestCookieAction | 904 // WebRequestRequestCookieAction |
| 947 // | 905 // |
| 948 | 906 |
| 949 WebRequestRequestCookieAction::WebRequestRequestCookieAction( | 907 WebRequestRequestCookieAction::WebRequestRequestCookieAction( |
| 950 linked_ptr<RequestCookieModification> request_cookie_modification) | 908 linked_ptr<RequestCookieModification> request_cookie_modification) |
| 951 : request_cookie_modification_(request_cookie_modification) { | 909 : request_cookie_modification_(request_cookie_modification) { |
| 952 CHECK(request_cookie_modification_.get()); | 910 CHECK(request_cookie_modification_.get()); |
| 953 } | 911 } |
| 954 | 912 |
| 955 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} | 913 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} |
| 956 | 914 |
| 957 int WebRequestRequestCookieAction::GetStages() const { | 915 int WebRequestRequestCookieAction::GetStages() const { |
| 958 return ON_BEFORE_SEND_HEADERS; | 916 return ON_BEFORE_SEND_HEADERS; |
| 959 } | 917 } |
| 960 | 918 |
| 961 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { | 919 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { |
| 962 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; | 920 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; |
| 963 } | 921 } |
| 964 | 922 |
| 965 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( | 923 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( |
| 966 const WebRequestRule::RequestData& request_data, | 924 const DeclarativeWebRequestData& request_data, |
| 967 const std::string& extension_id, | 925 const std::string& extension_id, |
| 968 const base::Time& extension_install_time) const { | 926 const base::Time& extension_install_time) const { |
| 969 CHECK(request_data.stage & GetStages()); | 927 CHECK(request_data.stage & GetStages()); |
| 970 LinkedPtrEventResponseDelta result( | 928 LinkedPtrEventResponseDelta result( |
| 971 new extension_web_request_api_helpers::EventResponseDelta( | 929 new extension_web_request_api_helpers::EventResponseDelta( |
| 972 extension_id, extension_install_time)); | 930 extension_id, extension_install_time)); |
| 973 result->request_cookie_modifications.push_back( | 931 result->request_cookie_modifications.push_back( |
| 974 request_cookie_modification_); | 932 request_cookie_modification_); |
| 975 return result; | 933 return result; |
| 976 } | 934 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 989 | 947 |
| 990 int WebRequestResponseCookieAction::GetStages() const { | 948 int WebRequestResponseCookieAction::GetStages() const { |
| 991 return ON_HEADERS_RECEIVED; | 949 return ON_HEADERS_RECEIVED; |
| 992 } | 950 } |
| 993 | 951 |
| 994 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { | 952 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { |
| 995 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; | 953 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; |
| 996 } | 954 } |
| 997 | 955 |
| 998 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( | 956 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( |
| 999 const WebRequestRule::RequestData& request_data, | 957 const DeclarativeWebRequestData& request_data, |
| 1000 const std::string& extension_id, | 958 const std::string& extension_id, |
| 1001 const base::Time& extension_install_time) const { | 959 const base::Time& extension_install_time) const { |
| 1002 CHECK(request_data.stage & GetStages()); | 960 CHECK(request_data.stage & GetStages()); |
| 1003 LinkedPtrEventResponseDelta result( | 961 LinkedPtrEventResponseDelta result( |
| 1004 new extension_web_request_api_helpers::EventResponseDelta( | 962 new extension_web_request_api_helpers::EventResponseDelta( |
| 1005 extension_id, extension_install_time)); | 963 extension_id, extension_install_time)); |
| 1006 result->response_cookie_modifications.push_back( | 964 result->response_cookie_modifications.push_back( |
| 1007 response_cookie_modification_); | 965 response_cookie_modification_); |
| 1008 return result; | 966 return result; |
| 1009 } | 967 } |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1023 int WebRequestSendMessageToExtensionAction::GetStages() const { | 981 int WebRequestSendMessageToExtensionAction::GetStages() const { |
| 1024 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | | 982 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | |
| 1025 ON_AUTH_REQUIRED; | 983 ON_AUTH_REQUIRED; |
| 1026 } | 984 } |
| 1027 | 985 |
| 1028 WebRequestAction::Type WebRequestSendMessageToExtensionAction::GetType() const { | 986 WebRequestAction::Type WebRequestSendMessageToExtensionAction::GetType() const { |
| 1029 return WebRequestAction::ACTION_SEND_MESSAGE_TO_EXTENSION; | 987 return WebRequestAction::ACTION_SEND_MESSAGE_TO_EXTENSION; |
| 1030 } | 988 } |
| 1031 | 989 |
| 1032 LinkedPtrEventResponseDelta WebRequestSendMessageToExtensionAction::CreateDelta( | 990 LinkedPtrEventResponseDelta WebRequestSendMessageToExtensionAction::CreateDelta( |
| 1033 const WebRequestRule::RequestData& request_data, | 991 const DeclarativeWebRequestData& request_data, |
| 1034 const std::string& extension_id, | 992 const std::string& extension_id, |
| 1035 const base::Time& extension_install_time) const { | 993 const base::Time& extension_install_time) const { |
| 1036 CHECK(request_data.stage & GetStages()); | 994 CHECK(request_data.stage & GetStages()); |
| 1037 LinkedPtrEventResponseDelta result( | 995 LinkedPtrEventResponseDelta result( |
| 1038 new extension_web_request_api_helpers::EventResponseDelta( | 996 new extension_web_request_api_helpers::EventResponseDelta( |
| 1039 extension_id, extension_install_time)); | 997 extension_id, extension_install_time)); |
| 1040 result->messages_to_extension.insert(message_); | 998 result->messages_to_extension.insert(message_); |
| 1041 return result; | 999 return result; |
| 1042 } | 1000 } |
| 1043 | 1001 |
| 1044 } // namespace extensions | 1002 } // namespace extensions |
| OLD | NEW |