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

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

Issue 154473002: Support redirectUrl at onHeadersReceived in WebRequest / DWR API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add more tests Created 6 years, 9 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
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 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 new helpers::EventResponseDelta(extension_id, extension_install_time)); 542 new helpers::EventResponseDelta(extension_id, extension_install_time));
543 result->cancel = true; 543 result->cancel = true;
544 return result; 544 return result;
545 } 545 }
546 546
547 // 547 //
548 // WebRequestRedirectAction 548 // WebRequestRedirectAction
549 // 549 //
550 550
551 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url) 551 WebRequestRedirectAction::WebRequestRedirectAction(const GURL& redirect_url)
552 : WebRequestAction(ON_BEFORE_REQUEST, 552 : WebRequestAction(ON_BEFORE_REQUEST | ON_HEADERS_RECEIVED,
553 ACTION_REDIRECT_REQUEST, 553 ACTION_REDIRECT_REQUEST,
554 std::numeric_limits<int>::min(), 554 std::numeric_limits<int>::min(),
555 STRATEGY_DEFAULT), 555 STRATEGY_DEFAULT),
556 redirect_url_(redirect_url) {} 556 redirect_url_(redirect_url) {}
557 557
558 WebRequestRedirectAction::~WebRequestRedirectAction() {} 558 WebRequestRedirectAction::~WebRequestRedirectAction() {}
559 559
560 bool WebRequestRedirectAction::Equals(const WebRequestAction* other) const { 560 bool WebRequestRedirectAction::Equals(const WebRequestAction* other) const {
561 return WebRequestAction::Equals(other) && 561 return WebRequestAction::Equals(other) &&
562 redirect_url_ == 562 redirect_url_ ==
(...skipping 16 matching lines...) Expand all
579 result->new_url = redirect_url_; 579 result->new_url = redirect_url_;
580 return result; 580 return result;
581 } 581 }
582 582
583 // 583 //
584 // WebRequestRedirectToTransparentImageAction 584 // WebRequestRedirectToTransparentImageAction
585 // 585 //
586 586
587 WebRequestRedirectToTransparentImageAction:: 587 WebRequestRedirectToTransparentImageAction::
588 WebRequestRedirectToTransparentImageAction() 588 WebRequestRedirectToTransparentImageAction()
589 : WebRequestAction(ON_BEFORE_REQUEST, 589 : WebRequestAction(ON_BEFORE_REQUEST | ON_HEADERS_RECEIVED,
590 ACTION_REDIRECT_TO_TRANSPARENT_IMAGE, 590 ACTION_REDIRECT_TO_TRANSPARENT_IMAGE,
591 std::numeric_limits<int>::min(), 591 std::numeric_limits<int>::min(),
592 STRATEGY_NONE) {} 592 STRATEGY_NONE) {}
593 593
594 WebRequestRedirectToTransparentImageAction:: 594 WebRequestRedirectToTransparentImageAction::
595 ~WebRequestRedirectToTransparentImageAction() {} 595 ~WebRequestRedirectToTransparentImageAction() {}
596 596
597 std::string WebRequestRedirectToTransparentImageAction::GetName() const { 597 std::string WebRequestRedirectToTransparentImageAction::GetName() const {
598 return keys::kRedirectToTransparentImageType; 598 return keys::kRedirectToTransparentImageType;
599 } 599 }
600 600
601 LinkedPtrEventResponseDelta 601 LinkedPtrEventResponseDelta
602 WebRequestRedirectToTransparentImageAction::CreateDelta( 602 WebRequestRedirectToTransparentImageAction::CreateDelta(
603 const WebRequestData& request_data, 603 const WebRequestData& request_data,
604 const std::string& extension_id, 604 const std::string& extension_id,
605 const base::Time& extension_install_time) const { 605 const base::Time& extension_install_time) const {
606 CHECK(request_data.stage & stages()); 606 CHECK(request_data.stage & stages());
607 LinkedPtrEventResponseDelta result( 607 LinkedPtrEventResponseDelta result(
608 new helpers::EventResponseDelta(extension_id, extension_install_time)); 608 new helpers::EventResponseDelta(extension_id, extension_install_time));
609 result->new_url = GURL(kTransparentImageUrl); 609 result->new_url = GURL(kTransparentImageUrl);
610 return result; 610 return result;
611 } 611 }
612 612
613 // 613 //
614 // WebRequestRedirectToEmptyDocumentAction 614 // WebRequestRedirectToEmptyDocumentAction
615 // 615 //
616 616
617 WebRequestRedirectToEmptyDocumentAction:: 617 WebRequestRedirectToEmptyDocumentAction::
618 WebRequestRedirectToEmptyDocumentAction() 618 WebRequestRedirectToEmptyDocumentAction()
619 : WebRequestAction(ON_BEFORE_REQUEST, 619 : WebRequestAction(ON_BEFORE_REQUEST | ON_HEADERS_RECEIVED,
620 ACTION_REDIRECT_TO_EMPTY_DOCUMENT, 620 ACTION_REDIRECT_TO_EMPTY_DOCUMENT,
621 std::numeric_limits<int>::min(), 621 std::numeric_limits<int>::min(),
622 STRATEGY_NONE) {} 622 STRATEGY_NONE) {}
623 623
624 WebRequestRedirectToEmptyDocumentAction:: 624 WebRequestRedirectToEmptyDocumentAction::
625 ~WebRequestRedirectToEmptyDocumentAction() {} 625 ~WebRequestRedirectToEmptyDocumentAction() {}
626 626
627 std::string WebRequestRedirectToEmptyDocumentAction::GetName() const { 627 std::string WebRequestRedirectToEmptyDocumentAction::GetName() const {
628 return keys::kRedirectToEmptyDocumentType; 628 return keys::kRedirectToEmptyDocumentType;
629 } 629 }
(...skipping 10 matching lines...) Expand all
640 return result; 640 return result;
641 } 641 }
642 642
643 // 643 //
644 // WebRequestRedirectByRegExAction 644 // WebRequestRedirectByRegExAction
645 // 645 //
646 646
647 WebRequestRedirectByRegExAction::WebRequestRedirectByRegExAction( 647 WebRequestRedirectByRegExAction::WebRequestRedirectByRegExAction(
648 scoped_ptr<RE2> from_pattern, 648 scoped_ptr<RE2> from_pattern,
649 const std::string& to_pattern) 649 const std::string& to_pattern)
650 : WebRequestAction(ON_BEFORE_REQUEST, 650 : WebRequestAction(ON_BEFORE_REQUEST | ON_HEADERS_RECEIVED,
651 ACTION_REDIRECT_BY_REGEX_DOCUMENT, 651 ACTION_REDIRECT_BY_REGEX_DOCUMENT,
652 std::numeric_limits<int>::min(), 652 std::numeric_limits<int>::min(),
653 STRATEGY_DEFAULT), 653 STRATEGY_DEFAULT),
654 from_pattern_(from_pattern.Pass()), 654 from_pattern_(from_pattern.Pass()),
655 to_pattern_(to_pattern.data(), to_pattern.size()) {} 655 to_pattern_(to_pattern.data(), to_pattern.size()) {}
656 656
657 WebRequestRedirectByRegExAction::~WebRequestRedirectByRegExAction() {} 657 WebRequestRedirectByRegExAction::~WebRequestRedirectByRegExAction() {}
658 658
659 // About the syntax of the two languages: 659 // About the syntax of the two languages:
660 // 660 //
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 const base::Time& extension_install_time) const { 1113 const base::Time& extension_install_time) const {
1114 CHECK(request_data.stage & stages()); 1114 CHECK(request_data.stage & stages());
1115 LinkedPtrEventResponseDelta result( 1115 LinkedPtrEventResponseDelta result(
1116 new extension_web_request_api_helpers::EventResponseDelta( 1116 new extension_web_request_api_helpers::EventResponseDelta(
1117 extension_id, extension_install_time)); 1117 extension_id, extension_install_time));
1118 result->messages_to_extension.insert(message_); 1118 result->messages_to_extension.insert(message_);
1119 return result; 1119 return result;
1120 } 1120 }
1121 1121
1122 } // namespace extensions 1122 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698