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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_api.cc

Issue 10693073: Revert 145136 - Merge 144529 - Use the first_party_for_cookies URL to filter which requests the Web… (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1180/src/
Patch Set: Created 8 years, 5 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
« no previous file with comments | « no previous file | chrome/browser/extensions/api/web_request/web_request_api_helpers.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/web_request/web_request_api.h" 5 #include "chrome/browser/extensions/api/web_request/web_request_api.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 rules_registry_ = rules_registry; 467 rules_registry_ = rules_registry;
468 } 468 }
469 469
470 int ExtensionWebRequestEventRouter::OnBeforeRequest( 470 int ExtensionWebRequestEventRouter::OnBeforeRequest(
471 void* profile, 471 void* profile,
472 ExtensionInfoMap* extension_info_map, 472 ExtensionInfoMap* extension_info_map,
473 net::URLRequest* request, 473 net::URLRequest* request,
474 const net::CompletionCallback& callback, 474 const net::CompletionCallback& callback,
475 GURL* new_url) { 475 GURL* new_url) {
476 // We hide events from the system context as well as sensitive requests. 476 // We hide events from the system context as well as sensitive requests.
477 if (!profile || helpers::HideRequest(request)) 477 if (!profile || helpers::HideRequestForURL(request->url()))
478 return net::OK; 478 return net::OK;
479 479
480 if (IsPageLoad(request)) 480 if (IsPageLoad(request))
481 NotifyPageLoad(); 481 NotifyPageLoad();
482 482
483 request_time_tracker_->LogRequestStartTime(request->identifier(), 483 request_time_tracker_->LogRequestStartTime(request->identifier(),
484 base::Time::Now(), 484 base::Time::Now(),
485 request->url(), 485 request->url(),
486 profile); 486 profile);
487 487
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 } 525 }
526 } 526 }
527 527
528 int ExtensionWebRequestEventRouter::OnBeforeSendHeaders( 528 int ExtensionWebRequestEventRouter::OnBeforeSendHeaders(
529 void* profile, 529 void* profile,
530 ExtensionInfoMap* extension_info_map, 530 ExtensionInfoMap* extension_info_map,
531 net::URLRequest* request, 531 net::URLRequest* request,
532 const net::CompletionCallback& callback, 532 const net::CompletionCallback& callback,
533 net::HttpRequestHeaders* headers) { 533 net::HttpRequestHeaders* headers) {
534 // We hide events from the system context as well as sensitive requests. 534 // We hide events from the system context as well as sensitive requests.
535 if (!profile || helpers::HideRequest(request)) 535 if (!profile || helpers::HideRequestForURL(request->url()))
536 return net::OK; 536 return net::OK;
537 537
538 bool initialize_blocked_requests = false; 538 bool initialize_blocked_requests = false;
539 539
540 initialize_blocked_requests |= 540 initialize_blocked_requests |=
541 ProcessDeclarativeRules(profile, keys::kOnBeforeSendHeaders, request, 541 ProcessDeclarativeRules(profile, keys::kOnBeforeSendHeaders, request,
542 extensions::ON_BEFORE_SEND_HEADERS, NULL); 542 extensions::ON_BEFORE_SEND_HEADERS, NULL);
543 543
544 int extra_info_spec = 0; 544 int extra_info_spec = 0;
545 std::vector<const EventListener*> listeners = 545 std::vector<const EventListener*> listeners =
(...skipping 30 matching lines...) Expand all
576 return net::ERR_IO_PENDING; 576 return net::ERR_IO_PENDING;
577 } 577 }
578 } 578 }
579 579
580 void ExtensionWebRequestEventRouter::OnSendHeaders( 580 void ExtensionWebRequestEventRouter::OnSendHeaders(
581 void* profile, 581 void* profile,
582 ExtensionInfoMap* extension_info_map, 582 ExtensionInfoMap* extension_info_map,
583 net::URLRequest* request, 583 net::URLRequest* request,
584 const net::HttpRequestHeaders& headers) { 584 const net::HttpRequestHeaders& headers) {
585 // We hide events from the system context as well as sensitive requests. 585 // We hide events from the system context as well as sensitive requests.
586 if (!profile || helpers::HideRequest(request)) 586 if (!profile || helpers::HideRequestForURL(request->url()))
587 return; 587 return;
588 588
589 if (GetAndSetSignaled(request->identifier(), kOnSendHeaders)) 589 if (GetAndSetSignaled(request->identifier(), kOnSendHeaders))
590 return; 590 return;
591 591
592 ClearSignaled(request->identifier(), kOnBeforeRedirect); 592 ClearSignaled(request->identifier(), kOnBeforeRedirect);
593 593
594 int extra_info_spec = 0; 594 int extra_info_spec = 0;
595 std::vector<const EventListener*> listeners = 595 std::vector<const EventListener*> listeners =
596 GetMatchingListeners(profile, extension_info_map, 596 GetMatchingListeners(profile, extension_info_map,
(...skipping 12 matching lines...) Expand all
609 } 609 }
610 610
611 int ExtensionWebRequestEventRouter::OnHeadersReceived( 611 int ExtensionWebRequestEventRouter::OnHeadersReceived(
612 void* profile, 612 void* profile,
613 ExtensionInfoMap* extension_info_map, 613 ExtensionInfoMap* extension_info_map,
614 net::URLRequest* request, 614 net::URLRequest* request,
615 const net::CompletionCallback& callback, 615 const net::CompletionCallback& callback,
616 net::HttpResponseHeaders* original_response_headers, 616 net::HttpResponseHeaders* original_response_headers,
617 scoped_refptr<net::HttpResponseHeaders>* override_response_headers) { 617 scoped_refptr<net::HttpResponseHeaders>* override_response_headers) {
618 // We hide events from the system context as well as sensitive requests. 618 // We hide events from the system context as well as sensitive requests.
619 if (!profile || helpers::HideRequest(request)) 619 if (!profile || helpers::HideRequestForURL(request->url()))
620 return net::OK; 620 return net::OK;
621 621
622 bool initialize_blocked_requests = false; 622 bool initialize_blocked_requests = false;
623 623
624 initialize_blocked_requests |= 624 initialize_blocked_requests |=
625 ProcessDeclarativeRules(profile, keys::kOnHeadersReceived, request, 625 ProcessDeclarativeRules(profile, keys::kOnHeadersReceived, request,
626 extensions::ON_HEADERS_RECEIVED, 626 extensions::ON_HEADERS_RECEIVED,
627 original_response_headers); 627 original_response_headers);
628 628
629 int extra_info_spec = 0; 629 int extra_info_spec = 0;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 net::NetworkDelegate::AuthRequiredResponse 673 net::NetworkDelegate::AuthRequiredResponse
674 ExtensionWebRequestEventRouter::OnAuthRequired( 674 ExtensionWebRequestEventRouter::OnAuthRequired(
675 void* profile, 675 void* profile,
676 ExtensionInfoMap* extension_info_map, 676 ExtensionInfoMap* extension_info_map,
677 net::URLRequest* request, 677 net::URLRequest* request,
678 const net::AuthChallengeInfo& auth_info, 678 const net::AuthChallengeInfo& auth_info,
679 const net::NetworkDelegate::AuthCallback& callback, 679 const net::NetworkDelegate::AuthCallback& callback,
680 net::AuthCredentials* credentials) { 680 net::AuthCredentials* credentials) {
681 // No profile means that this is for authentication challenges in the 681 // No profile means that this is for authentication challenges in the
682 // system context. Skip in that case. Also skip sensitive requests. 682 // system context. Skip in that case. Also skip sensitive requests.
683 if (!profile || helpers::HideRequest(request)) 683 if (!profile || helpers::HideRequestForURL(request->url()))
684 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; 684 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
685 685
686 int extra_info_spec = 0; 686 int extra_info_spec = 0;
687 std::vector<const EventListener*> listeners = 687 std::vector<const EventListener*> listeners =
688 GetMatchingListeners(profile, extension_info_map, 688 GetMatchingListeners(profile, extension_info_map,
689 keys::kOnAuthRequired, request, &extra_info_spec); 689 keys::kOnAuthRequired, request, &extra_info_spec);
690 if (listeners.empty()) 690 if (listeners.empty())
691 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; 691 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
692 692
693 ListValue args; 693 ListValue args;
(...skipping 24 matching lines...) Expand all
718 } 718 }
719 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; 719 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
720 } 720 }
721 721
722 void ExtensionWebRequestEventRouter::OnBeforeRedirect( 722 void ExtensionWebRequestEventRouter::OnBeforeRedirect(
723 void* profile, 723 void* profile,
724 ExtensionInfoMap* extension_info_map, 724 ExtensionInfoMap* extension_info_map,
725 net::URLRequest* request, 725 net::URLRequest* request,
726 const GURL& new_location) { 726 const GURL& new_location) {
727 // We hide events from the system context as well as sensitive requests. 727 // We hide events from the system context as well as sensitive requests.
728 if (!profile || helpers::HideRequest(request)) 728 if (!profile || helpers::HideRequestForURL(request->url()))
729 return; 729 return;
730 730
731 if (GetAndSetSignaled(request->identifier(), kOnBeforeRedirect)) 731 if (GetAndSetSignaled(request->identifier(), kOnBeforeRedirect))
732 return; 732 return;
733 733
734 ClearSignaled(request->identifier(), kOnBeforeRequest); 734 ClearSignaled(request->identifier(), kOnBeforeRequest);
735 ClearSignaled(request->identifier(), kOnBeforeSendHeaders); 735 ClearSignaled(request->identifier(), kOnBeforeSendHeaders);
736 ClearSignaled(request->identifier(), kOnSendHeaders); 736 ClearSignaled(request->identifier(), kOnSendHeaders);
737 ClearSignaled(request->identifier(), kOnHeadersReceived); 737 ClearSignaled(request->identifier(), kOnHeadersReceived);
738 738
(...skipping 24 matching lines...) Expand all
763 args.Append(dict); 763 args.Append(dict);
764 764
765 DispatchEvent(profile, request, listeners, args); 765 DispatchEvent(profile, request, listeners, args);
766 } 766 }
767 767
768 void ExtensionWebRequestEventRouter::OnResponseStarted( 768 void ExtensionWebRequestEventRouter::OnResponseStarted(
769 void* profile, 769 void* profile,
770 ExtensionInfoMap* extension_info_map, 770 ExtensionInfoMap* extension_info_map,
771 net::URLRequest* request) { 771 net::URLRequest* request) {
772 // We hide events from the system context as well as sensitive requests. 772 // We hide events from the system context as well as sensitive requests.
773 if (!profile || helpers::HideRequest(request)) 773 if (!profile || helpers::HideRequestForURL(request->url()))
774 return; 774 return;
775 775
776 // OnResponseStarted is even triggered, when the request was cancelled. 776 // OnResponseStarted is even triggered, when the request was cancelled.
777 if (request->status().status() != net::URLRequestStatus::SUCCESS) 777 if (request->status().status() != net::URLRequestStatus::SUCCESS)
778 return; 778 return;
779 779
780 int extra_info_spec = 0; 780 int extra_info_spec = 0;
781 std::vector<const EventListener*> listeners = 781 std::vector<const EventListener*> listeners =
782 GetMatchingListeners(profile, extension_info_map, 782 GetMatchingListeners(profile, extension_info_map,
783 keys::kOnResponseStarted, request, &extra_info_spec); 783 keys::kOnResponseStarted, request, &extra_info_spec);
(...skipping 22 matching lines...) Expand all
806 args.Append(dict); 806 args.Append(dict);
807 807
808 DispatchEvent(profile, request, listeners, args); 808 DispatchEvent(profile, request, listeners, args);
809 } 809 }
810 810
811 void ExtensionWebRequestEventRouter::OnCompleted( 811 void ExtensionWebRequestEventRouter::OnCompleted(
812 void* profile, 812 void* profile,
813 ExtensionInfoMap* extension_info_map, 813 ExtensionInfoMap* extension_info_map,
814 net::URLRequest* request) { 814 net::URLRequest* request) {
815 // We hide events from the system context as well as sensitive requests. 815 // We hide events from the system context as well as sensitive requests.
816 if (!profile || helpers::HideRequest(request)) 816 if (!profile || helpers::HideRequestForURL(request->url()))
817 return; 817 return;
818 818
819 request_time_tracker_->LogRequestEndTime(request->identifier(), 819 request_time_tracker_->LogRequestEndTime(request->identifier(),
820 base::Time::Now()); 820 base::Time::Now());
821 821
822 DCHECK(request->status().status() == net::URLRequestStatus::SUCCESS); 822 DCHECK(request->status().status() == net::URLRequestStatus::SUCCESS);
823 823
824 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted)); 824 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted));
825 825
826 ClearPendingCallbacks(request); 826 ClearPendingCallbacks(request);
(...skipping 28 matching lines...) Expand all
855 855
856 DispatchEvent(profile, request, listeners, args); 856 DispatchEvent(profile, request, listeners, args);
857 } 857 }
858 858
859 void ExtensionWebRequestEventRouter::OnErrorOccurred( 859 void ExtensionWebRequestEventRouter::OnErrorOccurred(
860 void* profile, 860 void* profile,
861 ExtensionInfoMap* extension_info_map, 861 ExtensionInfoMap* extension_info_map,
862 net::URLRequest* request, 862 net::URLRequest* request,
863 bool started) { 863 bool started) {
864 // We hide events from the system context as well as sensitive requests. 864 // We hide events from the system context as well as sensitive requests.
865 if (!profile || helpers::HideRequest(request)) 865 if (!profile || helpers::HideRequestForURL(request->url()))
866 return; 866 return;
867 867
868 request_time_tracker_->LogRequestEndTime(request->identifier(), 868 request_time_tracker_->LogRequestEndTime(request->identifier(),
869 base::Time::Now()); 869 base::Time::Now());
870 870
871 DCHECK(request->status().status() == net::URLRequestStatus::FAILED || 871 DCHECK(request->status().status() == net::URLRequestStatus::FAILED ||
872 request->status().status() == net::URLRequestStatus::CANCELED); 872 request->status().status() == net::URLRequestStatus::CANCELED);
873 873
874 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred)); 874 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred));
875 875
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
1775 } else if ((*it)->name().find("AdBlock") != std::string::npos) { 1775 } else if ((*it)->name().find("AdBlock") != std::string::npos) {
1776 adblock = true; 1776 adblock = true;
1777 } else { 1777 } else {
1778 other = true; 1778 other = true;
1779 } 1779 }
1780 } 1780 }
1781 } 1781 }
1782 1782
1783 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); 1783 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other));
1784 } 1784 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/api/web_request/web_request_api_helpers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698