OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/child/web_url_loader_impl.h" | 5 #include "content/child/web_url_loader_impl.h" |
6 | 6 |
7 #include <openssl/ssl.h> | 7 #include <openssl/ssl.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
633 request_.reportRawHeaders()); | 633 request_.reportRawHeaders()); |
634 | 634 |
635 WebURLRequest new_request; | 635 WebURLRequest new_request; |
636 PopulateURLRequestForRedirect( | 636 PopulateURLRequestForRedirect( |
637 request_, redirect_info, referrer_policy_, | 637 request_, redirect_info, referrer_policy_, |
638 info.was_fetched_via_service_worker | 638 info.was_fetched_via_service_worker |
639 ? blink::WebURLRequest::SkipServiceWorker::None | 639 ? blink::WebURLRequest::SkipServiceWorker::None |
640 : blink::WebURLRequest::SkipServiceWorker::All, | 640 : blink::WebURLRequest::SkipServiceWorker::All, |
641 &new_request); | 641 &new_request); |
642 | 642 |
643 client_->willFollowRedirect(loader_, new_request, response, | 643 bool follow = client_->willFollowRedirect(loader_, new_request, response, |
644 info.encoded_data_length); | 644 info.encoded_data_length); |
645 request_ = new_request; | 645 if (follow) { |
jochen (gone - plz use gerrit)
2016/09/30 11:11:24
maybe just early exist if !follow here?
tyoshino (SeeGerritForStatus)
2016/10/04 04:02:25
Yeah. Done
| |
646 request_ = new_request; | |
646 | 647 |
647 // Only follow the redirect if WebKit left the URL unmodified. | |
648 if (redirect_info.new_url == GURL(new_request.url())) { | |
jochen (gone - plz use gerrit)
2016/09/30 11:11:24
can we DCHECK() that redirect_info.new_url == new_
tyoshino (SeeGerritForStatus)
2016/10/04 04:02:24
Added
| |
649 // First-party cookie logic moved from DocumentLoader in Blink to | 648 // First-party cookie logic moved from DocumentLoader in Blink to |
650 // net::URLRequest in the browser. Assert that Blink didn't try to change it | 649 // net::URLRequest in the browser. Assert that Blink didn't try to change it |
651 // to something else. | 650 // to something else. |
652 DCHECK_EQ(redirect_info.new_first_party_for_cookies.spec(), | 651 DCHECK_EQ(redirect_info.new_first_party_for_cookies.spec(), |
653 request_.firstPartyForCookies().string().utf8()); | 652 request_.firstPartyForCookies().string().utf8()); |
654 return true; | 653 return true; |
655 } | 654 } |
656 | 655 |
657 // We assume that WebKit only changes the URL to suppress a redirect, and we | 656 request_ = WebURLRequest(); |
658 // assume that it does so by setting it to be invalid. | 657 |
659 DCHECK(!new_request.url().isValid()); | |
660 return false; | 658 return false; |
661 } | 659 } |
662 | 660 |
663 void WebURLLoaderImpl::Context::OnReceivedResponse( | 661 void WebURLLoaderImpl::Context::OnReceivedResponse( |
664 const ResourceResponseInfo& initial_info) { | 662 const ResourceResponseInfo& initial_info) { |
665 if (!client_) | 663 if (!client_) |
666 return; | 664 return; |
667 | 665 |
668 TRACE_EVENT_WITH_FLOW0( | 666 TRACE_EVENT_WITH_FLOW0( |
669 "loading", "WebURLLoaderImpl::Context::OnReceivedResponse", | 667 "loading", "WebURLLoaderImpl::Context::OnReceivedResponse", |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1251 response->clearHTTPHeaderField(webStringName); | 1249 response->clearHTTPHeaderField(webStringName); |
1252 while (response_headers->EnumerateHeader(&iterator, name, &value)) { | 1250 while (response_headers->EnumerateHeader(&iterator, name, &value)) { |
1253 response->addHTTPHeaderField(webStringName, | 1251 response->addHTTPHeaderField(webStringName, |
1254 WebString::fromLatin1(value)); | 1252 WebString::fromLatin1(value)); |
1255 } | 1253 } |
1256 } | 1254 } |
1257 return true; | 1255 return true; |
1258 } | 1256 } |
1259 | 1257 |
1260 } // namespace content | 1258 } // namespace content |
OLD | NEW |