| 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 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 WebRequestActionFactory& factory = g_web_request_action_factory.Get(); | 422 WebRequestActionFactory& factory = g_web_request_action_factory.Get(); |
| 422 std::map<std::string, WebRequestActionFactory::FactoryMethod>::iterator | 423 std::map<std::string, WebRequestActionFactory::FactoryMethod>::iterator |
| 423 factory_method_iter = factory.factory_methods.find(instance_type); | 424 factory_method_iter = factory.factory_methods.find(instance_type); |
| 424 if (factory_method_iter != factory.factory_methods.end()) | 425 if (factory_method_iter != factory.factory_methods.end()) |
| 425 return (*factory_method_iter->second)(action_dict, error, bad_message); | 426 return (*factory_method_iter->second)(action_dict, error, bad_message); |
| 426 | 427 |
| 427 *error = base::StringPrintf(kInvalidInstanceTypeError, instance_type.c_str()); | 428 *error = base::StringPrintf(kInvalidInstanceTypeError, instance_type.c_str()); |
| 428 return scoped_ptr<WebRequestAction>(); | 429 return scoped_ptr<WebRequestAction>(); |
| 429 } | 430 } |
| 430 | 431 |
| 432 void WebRequestAction::Apply(const std::string& extension_id, |
| 433 base::Time extension_install_time, |
| 434 const ApplyInfo& apply_info) const { |
| 435 if (!HasPermission(apply_info.extension_info_map, extension_id, |
| 436 apply_info.request_data.request, |
| 437 apply_info.crosses_incognito)) |
| 438 return; |
| 439 if (GetStages() & apply_info.request_data.stage) { |
| 440 LinkedPtrEventResponseDelta delta = CreateDelta( |
| 441 apply_info.request_data, extension_id, |
| 442 extension_install_time); |
| 443 if (delta.get()) { |
| 444 if (DeltaHasPermission(apply_info.extension_info_map, extension_id, |
| 445 apply_info.request_data.request, |
| 446 apply_info.crosses_incognito, |
| 447 delta)) |
| 448 apply_info.deltas->push_back(delta); |
| 449 } |
| 450 } |
| 451 } |
| 452 |
| 431 | 453 |
| 432 // | 454 // |
| 433 // WebRequestActionSet | |
| 434 // | |
| 435 | |
| 436 WebRequestActionSet::WebRequestActionSet(const Actions& actions) | |
| 437 : actions_(actions) {} | |
| 438 | |
| 439 WebRequestActionSet::~WebRequestActionSet() {} | |
| 440 | |
| 441 // static | |
| 442 scoped_ptr<WebRequestActionSet> WebRequestActionSet::Create( | |
| 443 const AnyVector& actions, | |
| 444 std::string* error, | |
| 445 bool* bad_message) { | |
| 446 *error = ""; | |
| 447 *bad_message = false; | |
| 448 Actions result; | |
| 449 | |
| 450 for (AnyVector::const_iterator i = actions.begin(); | |
| 451 i != actions.end(); ++i) { | |
| 452 CHECK(i->get()); | |
| 453 scoped_ptr<WebRequestAction> action = | |
| 454 WebRequestAction::Create((*i)->value(), error, bad_message); | |
| 455 if (!error->empty() || *bad_message) | |
| 456 return scoped_ptr<WebRequestActionSet>(NULL); | |
| 457 result.push_back(make_linked_ptr(action.release())); | |
| 458 } | |
| 459 | |
| 460 return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result)); | |
| 461 } | |
| 462 | |
| 463 std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas( | |
| 464 const ExtensionInfoMap* extension_info_map, | |
| 465 const std::string& extension_id, | |
| 466 const WebRequestRule::RequestData& request_data, | |
| 467 bool crosses_incognito, | |
| 468 const base::Time& extension_install_time) const { | |
| 469 std::list<LinkedPtrEventResponseDelta> result; | |
| 470 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | |
| 471 if (!(*i)->HasPermission(extension_info_map, extension_id, | |
| 472 request_data.request, crosses_incognito)) | |
| 473 continue; | |
| 474 if ((*i)->GetStages() & request_data.stage) { | |
| 475 LinkedPtrEventResponseDelta delta = (*i)->CreateDelta( | |
| 476 request_data, extension_id, extension_install_time); | |
| 477 if (delta.get()) { | |
| 478 if ((*i)->DeltaHasPermission(extension_info_map, extension_id, | |
| 479 request_data.request, crosses_incognito, | |
| 480 delta)) | |
| 481 result.push_back(delta); | |
| 482 } | |
| 483 } | |
| 484 } | |
| 485 return result; | |
| 486 } | |
| 487 | |
| 488 int WebRequestActionSet::GetMinimumPriority() const { | |
| 489 int minimum_priority = std::numeric_limits<int>::min(); | |
| 490 for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) { | |
| 491 minimum_priority = std::max(minimum_priority, (*i)->GetMinimumPriority()); | |
| 492 } | |
| 493 return minimum_priority; | |
| 494 } | |
| 495 | |
| 496 // | |
| 497 // WebRequestCancelAction | 455 // WebRequestCancelAction |
| 498 // | 456 // |
| 499 | 457 |
| 500 WebRequestCancelAction::WebRequestCancelAction() {} | 458 WebRequestCancelAction::WebRequestCancelAction() {} |
| 501 | 459 |
| 502 WebRequestCancelAction::~WebRequestCancelAction() {} | 460 WebRequestCancelAction::~WebRequestCancelAction() {} |
| 503 | 461 |
| 504 int WebRequestCancelAction::GetStages() const { | 462 int WebRequestCancelAction::GetStages() const { |
| 505 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | | 463 return ON_BEFORE_REQUEST | ON_BEFORE_SEND_HEADERS | ON_HEADERS_RECEIVED | |
| 506 ON_AUTH_REQUIRED; | 464 ON_AUTH_REQUIRED; |
| 507 } | 465 } |
| 508 | 466 |
| 509 WebRequestAction::Type WebRequestCancelAction::GetType() const { | 467 WebRequestAction::Type WebRequestCancelAction::GetType() const { |
| 510 return WebRequestAction::ACTION_CANCEL_REQUEST; | 468 return WebRequestAction::ACTION_CANCEL_REQUEST; |
| 511 } | 469 } |
| 512 | 470 |
| 513 WebRequestAction::HostPermissionsStrategy | 471 WebRequestAction::HostPermissionsStrategy |
| 514 WebRequestCancelAction::GetHostPermissionsStrategy() const { | 472 WebRequestCancelAction::GetHostPermissionsStrategy() const { |
| 515 return WebRequestAction::STRATEGY_NONE; | 473 return WebRequestAction::STRATEGY_NONE; |
| 516 } | 474 } |
| 517 | 475 |
| 518 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( | 476 LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta( |
| 519 const WebRequestRule::RequestData& request_data, | 477 const DeclarativeWebRequestData& request_data, |
| 520 const std::string& extension_id, | 478 const std::string& extension_id, |
| 521 const base::Time& extension_install_time) const { | 479 const base::Time& extension_install_time) const { |
| 522 CHECK(request_data.stage & GetStages()); | 480 CHECK(request_data.stage & GetStages()); |
| 523 LinkedPtrEventResponseDelta result( | 481 LinkedPtrEventResponseDelta result( |
| 524 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 482 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 525 result->cancel = true; | 483 result->cancel = true; |
| 526 return result; | 484 return result; |
| 527 } | 485 } |
| 528 | 486 |
| 529 // | 487 // |
| (...skipping 12 matching lines...) Expand all Loading... |
| 542 WebRequestAction::Type WebRequestRedirectAction::GetType() const { | 500 WebRequestAction::Type WebRequestRedirectAction::GetType() const { |
| 543 return WebRequestAction::ACTION_REDIRECT_REQUEST; | 501 return WebRequestAction::ACTION_REDIRECT_REQUEST; |
| 544 } | 502 } |
| 545 | 503 |
| 546 WebRequestAction::HostPermissionsStrategy | 504 WebRequestAction::HostPermissionsStrategy |
| 547 WebRequestRedirectAction::GetHostPermissionsStrategy() const { | 505 WebRequestRedirectAction::GetHostPermissionsStrategy() const { |
| 548 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; | 506 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; |
| 549 } | 507 } |
| 550 | 508 |
| 551 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( | 509 LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta( |
| 552 const WebRequestRule::RequestData& request_data, | 510 const DeclarativeWebRequestData& request_data, |
| 553 const std::string& extension_id, | 511 const std::string& extension_id, |
| 554 const base::Time& extension_install_time) const { | 512 const base::Time& extension_install_time) const { |
| 555 CHECK(request_data.stage & GetStages()); | 513 CHECK(request_data.stage & GetStages()); |
| 556 if (request_data.request->url() == redirect_url_) | 514 if (request_data.request->url() == redirect_url_) |
| 557 return LinkedPtrEventResponseDelta(NULL); | 515 return LinkedPtrEventResponseDelta(NULL); |
| 558 LinkedPtrEventResponseDelta result( | 516 LinkedPtrEventResponseDelta result( |
| 559 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 517 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 560 result->new_url = redirect_url_; | 518 result->new_url = redirect_url_; |
| 561 return result; | 519 return result; |
| 562 } | 520 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 580 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; | 538 return WebRequestAction::ACTION_REDIRECT_TO_TRANSPARENT_IMAGE; |
| 581 } | 539 } |
| 582 | 540 |
| 583 WebRequestAction::HostPermissionsStrategy | 541 WebRequestAction::HostPermissionsStrategy |
| 584 WebRequestRedirectToTransparentImageAction::GetHostPermissionsStrategy() const { | 542 WebRequestRedirectToTransparentImageAction::GetHostPermissionsStrategy() const { |
| 585 return WebRequestAction::STRATEGY_NONE; | 543 return WebRequestAction::STRATEGY_NONE; |
| 586 } | 544 } |
| 587 | 545 |
| 588 LinkedPtrEventResponseDelta | 546 LinkedPtrEventResponseDelta |
| 589 WebRequestRedirectToTransparentImageAction::CreateDelta( | 547 WebRequestRedirectToTransparentImageAction::CreateDelta( |
| 590 const WebRequestRule::RequestData& request_data, | 548 const DeclarativeWebRequestData& request_data, |
| 591 const std::string& extension_id, | 549 const std::string& extension_id, |
| 592 const base::Time& extension_install_time) const { | 550 const base::Time& extension_install_time) const { |
| 593 CHECK(request_data.stage & GetStages()); | 551 CHECK(request_data.stage & GetStages()); |
| 594 LinkedPtrEventResponseDelta result( | 552 LinkedPtrEventResponseDelta result( |
| 595 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 553 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 596 result->new_url = GURL(kTransparentImageUrl); | 554 result->new_url = GURL(kTransparentImageUrl); |
| 597 return result; | 555 return result; |
| 598 } | 556 } |
| 599 | 557 |
| 600 // | 558 // |
| (...skipping 15 matching lines...) Expand all Loading... |
| 616 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; | 574 return WebRequestAction::ACTION_REDIRECT_TO_EMPTY_DOCUMENT; |
| 617 } | 575 } |
| 618 | 576 |
| 619 WebRequestAction::HostPermissionsStrategy | 577 WebRequestAction::HostPermissionsStrategy |
| 620 WebRequestRedirectToEmptyDocumentAction::GetHostPermissionsStrategy() const { | 578 WebRequestRedirectToEmptyDocumentAction::GetHostPermissionsStrategy() const { |
| 621 return WebRequestAction::STRATEGY_NONE; | 579 return WebRequestAction::STRATEGY_NONE; |
| 622 } | 580 } |
| 623 | 581 |
| 624 LinkedPtrEventResponseDelta | 582 LinkedPtrEventResponseDelta |
| 625 WebRequestRedirectToEmptyDocumentAction::CreateDelta( | 583 WebRequestRedirectToEmptyDocumentAction::CreateDelta( |
| 626 const WebRequestRule::RequestData& request_data, | 584 const DeclarativeWebRequestData& request_data, |
| 627 const std::string& extension_id, | 585 const std::string& extension_id, |
| 628 const base::Time& extension_install_time) const { | 586 const base::Time& extension_install_time) const { |
| 629 CHECK(request_data.stage & GetStages()); | 587 CHECK(request_data.stage & GetStages()); |
| 630 LinkedPtrEventResponseDelta result( | 588 LinkedPtrEventResponseDelta result( |
| 631 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 589 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 632 result->new_url = GURL(kEmptyDocumentUrl); | 590 result->new_url = GURL(kEmptyDocumentUrl); |
| 633 return result; | 591 return result; |
| 634 } | 592 } |
| 635 | 593 |
| 636 // | 594 // |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { | 663 WebRequestAction::Type WebRequestRedirectByRegExAction::GetType() const { |
| 706 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; | 664 return WebRequestAction::ACTION_REDIRECT_BY_REGEX_DOCUMENT; |
| 707 } | 665 } |
| 708 | 666 |
| 709 WebRequestAction::HostPermissionsStrategy | 667 WebRequestAction::HostPermissionsStrategy |
| 710 WebRequestRedirectByRegExAction::GetHostPermissionsStrategy() const { | 668 WebRequestRedirectByRegExAction::GetHostPermissionsStrategy() const { |
| 711 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; | 669 return WebRequestAction::STRATEGY_ALLOW_SAME_DOMAIN; |
| 712 } | 670 } |
| 713 | 671 |
| 714 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( | 672 LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta( |
| 715 const WebRequestRule::RequestData& request_data, | 673 const DeclarativeWebRequestData& request_data, |
| 716 const std::string& extension_id, | 674 const std::string& extension_id, |
| 717 const base::Time& extension_install_time) const { | 675 const base::Time& extension_install_time) const { |
| 718 CHECK(request_data.stage & GetStages()); | 676 CHECK(request_data.stage & GetStages()); |
| 719 CHECK(from_pattern_.get()); | 677 CHECK(from_pattern_.get()); |
| 720 | 678 |
| 721 const std::string& old_url = request_data.request->url().spec(); | 679 const std::string& old_url = request_data.request->url().spec(); |
| 722 std::string new_url = old_url; | 680 std::string new_url = old_url; |
| 723 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || | 681 if (!RE2::Replace(&new_url, *from_pattern_, to_pattern_) || |
| 724 new_url == old_url) { | 682 new_url == old_url) { |
| 725 return LinkedPtrEventResponseDelta(NULL); | 683 return LinkedPtrEventResponseDelta(NULL); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 749 return ON_BEFORE_SEND_HEADERS; | 707 return ON_BEFORE_SEND_HEADERS; |
| 750 } | 708 } |
| 751 | 709 |
| 752 WebRequestAction::Type | 710 WebRequestAction::Type |
| 753 WebRequestSetRequestHeaderAction::GetType() const { | 711 WebRequestSetRequestHeaderAction::GetType() const { |
| 754 return WebRequestAction::ACTION_SET_REQUEST_HEADER; | 712 return WebRequestAction::ACTION_SET_REQUEST_HEADER; |
| 755 } | 713 } |
| 756 | 714 |
| 757 LinkedPtrEventResponseDelta | 715 LinkedPtrEventResponseDelta |
| 758 WebRequestSetRequestHeaderAction::CreateDelta( | 716 WebRequestSetRequestHeaderAction::CreateDelta( |
| 759 const WebRequestRule::RequestData& request_data, | 717 const DeclarativeWebRequestData& request_data, |
| 760 const std::string& extension_id, | 718 const std::string& extension_id, |
| 761 const base::Time& extension_install_time) const { | 719 const base::Time& extension_install_time) const { |
| 762 CHECK(request_data.stage & GetStages()); | 720 CHECK(request_data.stage & GetStages()); |
| 763 LinkedPtrEventResponseDelta result( | 721 LinkedPtrEventResponseDelta result( |
| 764 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 722 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 765 result->modified_request_headers.SetHeader(name_, value_); | 723 result->modified_request_headers.SetHeader(name_, value_); |
| 766 return result; | 724 return result; |
| 767 } | 725 } |
| 768 | 726 |
| 769 // | 727 // |
| (...skipping 11 matching lines...) Expand all Loading... |
| 781 return ON_BEFORE_SEND_HEADERS; | 739 return ON_BEFORE_SEND_HEADERS; |
| 782 } | 740 } |
| 783 | 741 |
| 784 WebRequestAction::Type | 742 WebRequestAction::Type |
| 785 WebRequestRemoveRequestHeaderAction::GetType() const { | 743 WebRequestRemoveRequestHeaderAction::GetType() const { |
| 786 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; | 744 return WebRequestAction::ACTION_REMOVE_REQUEST_HEADER; |
| 787 } | 745 } |
| 788 | 746 |
| 789 LinkedPtrEventResponseDelta | 747 LinkedPtrEventResponseDelta |
| 790 WebRequestRemoveRequestHeaderAction::CreateDelta( | 748 WebRequestRemoveRequestHeaderAction::CreateDelta( |
| 791 const WebRequestRule::RequestData& request_data, | 749 const DeclarativeWebRequestData& request_data, |
| 792 const std::string& extension_id, | 750 const std::string& extension_id, |
| 793 const base::Time& extension_install_time) const { | 751 const base::Time& extension_install_time) const { |
| 794 CHECK(request_data.stage & GetStages()); | 752 CHECK(request_data.stage & GetStages()); |
| 795 LinkedPtrEventResponseDelta result( | 753 LinkedPtrEventResponseDelta result( |
| 796 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 754 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| 797 result->deleted_request_headers.push_back(name_); | 755 result->deleted_request_headers.push_back(name_); |
| 798 return result; | 756 return result; |
| 799 } | 757 } |
| 800 | 758 |
| 801 // | 759 // |
| (...skipping 13 matching lines...) Expand all Loading... |
| 815 return ON_HEADERS_RECEIVED; | 773 return ON_HEADERS_RECEIVED; |
| 816 } | 774 } |
| 817 | 775 |
| 818 WebRequestAction::Type | 776 WebRequestAction::Type |
| 819 WebRequestAddResponseHeaderAction::GetType() const { | 777 WebRequestAddResponseHeaderAction::GetType() const { |
| 820 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; | 778 return WebRequestAction::ACTION_ADD_RESPONSE_HEADER; |
| 821 } | 779 } |
| 822 | 780 |
| 823 LinkedPtrEventResponseDelta | 781 LinkedPtrEventResponseDelta |
| 824 WebRequestAddResponseHeaderAction::CreateDelta( | 782 WebRequestAddResponseHeaderAction::CreateDelta( |
| 825 const WebRequestRule::RequestData& request_data, | 783 const DeclarativeWebRequestData& request_data, |
| 826 const std::string& extension_id, | 784 const std::string& extension_id, |
| 827 const base::Time& extension_install_time) const { | 785 const base::Time& extension_install_time) const { |
| 828 CHECK(request_data.stage & GetStages()); | 786 CHECK(request_data.stage & GetStages()); |
| 829 const net::HttpResponseHeaders* headers = | 787 const net::HttpResponseHeaders* headers = |
| 830 request_data.original_response_headers; | 788 request_data.original_response_headers; |
| 831 if (!headers) | 789 if (!headers) |
| 832 return LinkedPtrEventResponseDelta(NULL); | 790 return LinkedPtrEventResponseDelta(NULL); |
| 833 | 791 |
| 834 // Don't generate the header if it exists already. | 792 // Don't generate the header if it exists already. |
| 835 if (headers->HasHeaderValue(name_, value_)) | 793 if (headers->HasHeaderValue(name_, value_)) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 860 return ON_HEADERS_RECEIVED; | 818 return ON_HEADERS_RECEIVED; |
| 861 } | 819 } |
| 862 | 820 |
| 863 WebRequestAction::Type | 821 WebRequestAction::Type |
| 864 WebRequestRemoveResponseHeaderAction::GetType() const { | 822 WebRequestRemoveResponseHeaderAction::GetType() const { |
| 865 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; | 823 return WebRequestAction::ACTION_REMOVE_RESPONSE_HEADER; |
| 866 } | 824 } |
| 867 | 825 |
| 868 LinkedPtrEventResponseDelta | 826 LinkedPtrEventResponseDelta |
| 869 WebRequestRemoveResponseHeaderAction::CreateDelta( | 827 WebRequestRemoveResponseHeaderAction::CreateDelta( |
| 870 const WebRequestRule::RequestData& request_data, | 828 const DeclarativeWebRequestData& request_data, |
| 871 const std::string& extension_id, | 829 const std::string& extension_id, |
| 872 const base::Time& extension_install_time) const { | 830 const base::Time& extension_install_time) const { |
| 873 CHECK(request_data.stage & GetStages()); | 831 CHECK(request_data.stage & GetStages()); |
| 874 const net::HttpResponseHeaders* headers = | 832 const net::HttpResponseHeaders* headers = |
| 875 request_data.original_response_headers; | 833 request_data.original_response_headers; |
| 876 if (!headers) | 834 if (!headers) |
| 877 return LinkedPtrEventResponseDelta(NULL); | 835 return LinkedPtrEventResponseDelta(NULL); |
| 878 | 836 |
| 879 LinkedPtrEventResponseDelta result( | 837 LinkedPtrEventResponseDelta result( |
| 880 new helpers::EventResponseDelta(extension_id, extension_install_time)); | 838 new helpers::EventResponseDelta(extension_id, extension_install_time)); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { | 874 int WebRequestIgnoreRulesAction::GetMinimumPriority() const { |
| 917 return minimum_priority_; | 875 return minimum_priority_; |
| 918 } | 876 } |
| 919 | 877 |
| 920 WebRequestAction::HostPermissionsStrategy | 878 WebRequestAction::HostPermissionsStrategy |
| 921 WebRequestIgnoreRulesAction::GetHostPermissionsStrategy() const { | 879 WebRequestIgnoreRulesAction::GetHostPermissionsStrategy() const { |
| 922 return WebRequestAction::STRATEGY_NONE; | 880 return WebRequestAction::STRATEGY_NONE; |
| 923 } | 881 } |
| 924 | 882 |
| 925 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( | 883 LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta( |
| 926 const WebRequestRule::RequestData& request_data, | 884 const DeclarativeWebRequestData& request_data, |
| 927 const std::string& extension_id, | 885 const std::string& extension_id, |
| 928 const base::Time& extension_install_time) const { | 886 const base::Time& extension_install_time) const { |
| 929 CHECK(request_data.stage & GetStages()); | 887 CHECK(request_data.stage & GetStages()); |
| 930 return LinkedPtrEventResponseDelta(NULL); | 888 return LinkedPtrEventResponseDelta(NULL); |
| 931 } | 889 } |
| 932 | 890 |
| 933 // | 891 // |
| 934 // WebRequestRequestCookieAction | 892 // WebRequestRequestCookieAction |
| 935 // | 893 // |
| 936 | 894 |
| 937 WebRequestRequestCookieAction::WebRequestRequestCookieAction( | 895 WebRequestRequestCookieAction::WebRequestRequestCookieAction( |
| 938 linked_ptr<RequestCookieModification> request_cookie_modification) | 896 linked_ptr<RequestCookieModification> request_cookie_modification) |
| 939 : request_cookie_modification_(request_cookie_modification) { | 897 : request_cookie_modification_(request_cookie_modification) { |
| 940 CHECK(request_cookie_modification_.get()); | 898 CHECK(request_cookie_modification_.get()); |
| 941 } | 899 } |
| 942 | 900 |
| 943 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} | 901 WebRequestRequestCookieAction::~WebRequestRequestCookieAction() {} |
| 944 | 902 |
| 945 int WebRequestRequestCookieAction::GetStages() const { | 903 int WebRequestRequestCookieAction::GetStages() const { |
| 946 return ON_BEFORE_SEND_HEADERS; | 904 return ON_BEFORE_SEND_HEADERS; |
| 947 } | 905 } |
| 948 | 906 |
| 949 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { | 907 WebRequestAction::Type WebRequestRequestCookieAction::GetType() const { |
| 950 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; | 908 return WebRequestAction::ACTION_MODIFY_REQUEST_COOKIE; |
| 951 } | 909 } |
| 952 | 910 |
| 953 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( | 911 LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta( |
| 954 const WebRequestRule::RequestData& request_data, | 912 const DeclarativeWebRequestData& request_data, |
| 955 const std::string& extension_id, | 913 const std::string& extension_id, |
| 956 const base::Time& extension_install_time) const { | 914 const base::Time& extension_install_time) const { |
| 957 CHECK(request_data.stage & GetStages()); | 915 CHECK(request_data.stage & GetStages()); |
| 958 LinkedPtrEventResponseDelta result( | 916 LinkedPtrEventResponseDelta result( |
| 959 new extension_web_request_api_helpers::EventResponseDelta( | 917 new extension_web_request_api_helpers::EventResponseDelta( |
| 960 extension_id, extension_install_time)); | 918 extension_id, extension_install_time)); |
| 961 result->request_cookie_modifications.push_back( | 919 result->request_cookie_modifications.push_back( |
| 962 request_cookie_modification_); | 920 request_cookie_modification_); |
| 963 return result; | 921 return result; |
| 964 } | 922 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 977 | 935 |
| 978 int WebRequestResponseCookieAction::GetStages() const { | 936 int WebRequestResponseCookieAction::GetStages() const { |
| 979 return ON_HEADERS_RECEIVED; | 937 return ON_HEADERS_RECEIVED; |
| 980 } | 938 } |
| 981 | 939 |
| 982 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { | 940 WebRequestAction::Type WebRequestResponseCookieAction::GetType() const { |
| 983 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; | 941 return WebRequestAction::ACTION_MODIFY_RESPONSE_COOKIE; |
| 984 } | 942 } |
| 985 | 943 |
| 986 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( | 944 LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta( |
| 987 const WebRequestRule::RequestData& request_data, | 945 const DeclarativeWebRequestData& request_data, |
| 988 const std::string& extension_id, | 946 const std::string& extension_id, |
| 989 const base::Time& extension_install_time) const { | 947 const base::Time& extension_install_time) const { |
| 990 CHECK(request_data.stage & GetStages()); | 948 CHECK(request_data.stage & GetStages()); |
| 991 LinkedPtrEventResponseDelta result( | 949 LinkedPtrEventResponseDelta result( |
| 992 new extension_web_request_api_helpers::EventResponseDelta( | 950 new extension_web_request_api_helpers::EventResponseDelta( |
| 993 extension_id, extension_install_time)); | 951 extension_id, extension_install_time)); |
| 994 result->response_cookie_modifications.push_back( | 952 result->response_cookie_modifications.push_back( |
| 995 response_cookie_modification_); | 953 response_cookie_modification_); |
| 996 return result; | 954 return result; |
| 997 } | 955 } |
| 998 | 956 |
| 999 } // namespace extensions | 957 } // namespace extensions |
| OLD | NEW |