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

Side by Side Diff: net/url_request/url_request_http_job.cc

Issue 1003953008: Remove prerender cookie store, part 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@prerender-revert-cookie-store-3
Patch Set: rebase (just in case since this is so huge) Created 5 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 "net/url_request/url_request_http_job.h" 5 #include "net/url_request/url_request_http_job.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 608
609 void URLRequestHttpJob::AddCookieHeaderAndStart() { 609 void URLRequestHttpJob::AddCookieHeaderAndStart() {
610 // No matter what, we want to report our status as IO pending since we will 610 // No matter what, we want to report our status as IO pending since we will
611 // be notifying our consumer asynchronously via OnStartCompleted. 611 // be notifying our consumer asynchronously via OnStartCompleted.
612 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0)); 612 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0));
613 613
614 // If the request was destroyed, then there is no more work to do. 614 // If the request was destroyed, then there is no more work to do.
615 if (!request_) 615 if (!request_)
616 return; 616 return;
617 617
618 CookieStore* cookie_store = GetCookieStore(); 618 CookieStore* cookie_store = request_->context()->cookie_store();
619 if (cookie_store && !(request_info_.load_flags & LOAD_DO_NOT_SEND_COOKIES)) { 619 if (cookie_store && !(request_info_.load_flags & LOAD_DO_NOT_SEND_COOKIES)) {
620 cookie_store->GetAllCookiesForURLAsync( 620 cookie_store->GetAllCookiesForURLAsync(
621 request_->url(), 621 request_->url(),
622 base::Bind(&URLRequestHttpJob::CheckCookiePolicyAndLoad, 622 base::Bind(&URLRequestHttpJob::CheckCookiePolicyAndLoad,
623 weak_factory_.GetWeakPtr())); 623 weak_factory_.GetWeakPtr()));
624 } else { 624 } else {
625 DoStartTransaction(); 625 DoStartTransaction();
626 } 626 }
627 } 627 }
628 628
629 void URLRequestHttpJob::DoLoadCookies() { 629 void URLRequestHttpJob::DoLoadCookies() {
630 CookieOptions options; 630 CookieOptions options;
631 options.set_include_httponly(); 631 options.set_include_httponly();
632 632
633 // TODO(mkwst): Drop this `if` once we decide whether or not to ship 633 // TODO(mkwst): Drop this `if` once we decide whether or not to ship
634 // first-party cookies: https://crbug.com/459154 634 // first-party cookies: https://crbug.com/459154
635 if (network_delegate() && 635 if (network_delegate() &&
636 network_delegate()->FirstPartyOnlyCookieExperimentEnabled()) 636 network_delegate()->FirstPartyOnlyCookieExperimentEnabled())
637 options.set_first_party_url(request_->first_party_for_cookies()); 637 options.set_first_party_url(request_->first_party_for_cookies());
638 else 638 else
639 options.set_include_first_party_only(); 639 options.set_include_first_party_only();
640 640
641 GetCookieStore()->GetCookiesWithOptionsAsync( 641 request_->context()->cookie_store()->GetCookiesWithOptionsAsync(
642 request_->url(), options, 642 request_->url(), options, base::Bind(&URLRequestHttpJob::OnCookiesLoaded,
643 base::Bind(&URLRequestHttpJob::OnCookiesLoaded, 643 weak_factory_.GetWeakPtr()));
644 weak_factory_.GetWeakPtr()));
645 } 644 }
646 645
647 void URLRequestHttpJob::CheckCookiePolicyAndLoad( 646 void URLRequestHttpJob::CheckCookiePolicyAndLoad(
648 const CookieList& cookie_list) { 647 const CookieList& cookie_list) {
649 if (CanGetCookies(cookie_list)) 648 if (CanGetCookies(cookie_list))
650 DoLoadCookies(); 649 DoLoadCookies();
651 else 650 else
652 DoStartTransaction(); 651 DoStartTransaction();
653 } 652 }
654 653
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 // be notifying our consumer asynchronously via OnStartCompleted. 710 // be notifying our consumer asynchronously via OnStartCompleted.
712 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0)); 711 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0));
713 712
714 // Used to communicate with the callback. See the implementation of 713 // Used to communicate with the callback. See the implementation of
715 // OnCookieSaved. 714 // OnCookieSaved.
716 scoped_refptr<SharedBoolean> callback_pending = new SharedBoolean(false); 715 scoped_refptr<SharedBoolean> callback_pending = new SharedBoolean(false);
717 scoped_refptr<SharedBoolean> save_next_cookie_running = 716 scoped_refptr<SharedBoolean> save_next_cookie_running =
718 new SharedBoolean(true); 717 new SharedBoolean(true);
719 718
720 if (!(request_info_.load_flags & LOAD_DO_NOT_SAVE_COOKIES) && 719 if (!(request_info_.load_flags & LOAD_DO_NOT_SAVE_COOKIES) &&
721 GetCookieStore() && response_cookies_.size() > 0) { 720 request_->context()->cookie_store() && response_cookies_.size() > 0) {
722 CookieOptions options; 721 CookieOptions options;
723 options.set_include_httponly(); 722 options.set_include_httponly();
724 options.set_server_time(response_date_); 723 options.set_server_time(response_date_);
725 724
726 net::CookieStore::SetCookiesCallback callback( 725 net::CookieStore::SetCookiesCallback callback(
727 base::Bind(&URLRequestHttpJob::OnCookieSaved, 726 base::Bind(&URLRequestHttpJob::OnCookieSaved,
728 weak_factory_.GetWeakPtr(), 727 weak_factory_.GetWeakPtr(),
729 save_next_cookie_running, 728 save_next_cookie_running,
730 callback_pending)); 729 callback_pending));
731 730
732 // Loop through the cookies as long as SetCookieWithOptionsAsync completes 731 // Loop through the cookies as long as SetCookieWithOptionsAsync completes
733 // synchronously. 732 // synchronously.
734 while (!callback_pending->data && 733 while (!callback_pending->data &&
735 response_cookies_save_index_ < response_cookies_.size()) { 734 response_cookies_save_index_ < response_cookies_.size()) {
736 if (CanSetCookie( 735 if (CanSetCookie(
737 response_cookies_[response_cookies_save_index_], &options)) { 736 response_cookies_[response_cookies_save_index_], &options)) {
738 callback_pending->data = true; 737 callback_pending->data = true;
739 GetCookieStore()->SetCookieWithOptionsAsync( 738 request_->context()->cookie_store()->SetCookieWithOptionsAsync(
740 request_->url(), response_cookies_[response_cookies_save_index_], 739 request_->url(), response_cookies_[response_cookies_save_index_],
741 options, callback); 740 options, callback);
742 } 741 }
743 ++response_cookies_save_index_; 742 ++response_cookies_save_index_;
744 } 743 }
745 } 744 }
746 745
747 save_next_cookie_running->data = false; 746 save_next_cookie_running->data = false;
748 747
749 if (!callback_pending->data) { 748 if (!callback_pending->data) {
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
1502 return override_response_headers_.get() ? 1501 return override_response_headers_.get() ?
1503 override_response_headers_.get() : 1502 override_response_headers_.get() :
1504 transaction_->GetResponseInfo()->headers.get(); 1503 transaction_->GetResponseInfo()->headers.get();
1505 } 1504 }
1506 1505
1507 void URLRequestHttpJob::NotifyURLRequestDestroyed() { 1506 void URLRequestHttpJob::NotifyURLRequestDestroyed() {
1508 awaiting_callback_ = false; 1507 awaiting_callback_ = false;
1509 } 1508 }
1510 1509
1511 } // namespace net 1510 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_ftp_job_unittest.cc ('k') | net/url_request/url_request_http_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698