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

Side by Side Diff: content/child/web_url_loader_impl.cc

Issue 2105713002: Render process changes for ResourceTiming sizes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@resource_timing_sizes_browser_process
Patch Set: Switch "redirect" and "original" SecurityOrigin Created 4 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
OLDNEW
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 <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 response.initialize(); 577 response.initialize();
578 PopulateURLResponse(request_.url(), info, &response, 578 PopulateURLResponse(request_.url(), info, &response,
579 request_.reportRawHeaders()); 579 request_.reportRawHeaders());
580 580
581 WebURLRequest new_request; 581 WebURLRequest new_request;
582 new_request.initialize(); 582 new_request.initialize();
583 PopulateURLRequestForRedirect(request_, redirect_info, referrer_policy_, 583 PopulateURLRequestForRedirect(request_, redirect_info, referrer_policy_,
584 !info.was_fetched_via_service_worker, 584 !info.was_fetched_via_service_worker,
585 &new_request); 585 &new_request);
586 586
587 client_->willFollowRedirect(loader_, new_request, response); 587 client_->willFollowRedirect(loader_, new_request, response,
588 info.encoded_data_length);
588 request_ = new_request; 589 request_ = new_request;
589 590
590 // Only follow the redirect if WebKit left the URL unmodified. 591 // Only follow the redirect if WebKit left the URL unmodified.
591 if (redirect_info.new_url == GURL(new_request.url())) { 592 if (redirect_info.new_url == GURL(new_request.url())) {
592 // First-party cookie logic moved from DocumentLoader in Blink to 593 // First-party cookie logic moved from DocumentLoader in Blink to
593 // net::URLRequest in the browser. Assert that Blink didn't try to change it 594 // net::URLRequest in the browser. Assert that Blink didn't try to change it
594 // to something else. 595 // to something else.
595 DCHECK_EQ(redirect_info.new_first_party_for_cookies.spec(), 596 DCHECK_EQ(redirect_info.new_first_party_for_cookies.spec(),
596 request_.firstPartyForCookies().string().utf8()); 597 request_.firstPartyForCookies().string().utf8());
597 return true; 598 return true;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 void WebURLLoaderImpl::Context::OnDownloadedData(int len, 693 void WebURLLoaderImpl::Context::OnDownloadedData(int len,
693 int encoded_data_length) { 694 int encoded_data_length) {
694 if (client_) 695 if (client_)
695 client_->didDownloadData(loader_, len, encoded_data_length); 696 client_->didDownloadData(loader_, len, encoded_data_length);
696 } 697 }
697 698
698 void WebURLLoaderImpl::Context::OnReceivedData( 699 void WebURLLoaderImpl::Context::OnReceivedData(
699 std::unique_ptr<ReceivedData> data) { 700 std::unique_ptr<ReceivedData> data) {
700 const char* payload = data->payload(); 701 const char* payload = data->payload();
701 int data_length = data->length(); 702 int data_length = data->length();
702 int encoded_data_length = data->encoded_length(); 703 int encoded_data_length = data->encoded_data_length();
703 if (!client_) 704 if (!client_)
704 return; 705 return;
705 706
706 TRACE_EVENT_WITH_FLOW0( 707 TRACE_EVENT_WITH_FLOW0(
707 "loading", "WebURLLoaderImpl::Context::OnReceivedData", 708 "loading", "WebURLLoaderImpl::Context::OnReceivedData",
708 this, TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); 709 this, TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
709 710
710 if (ftp_listing_delegate_) { 711 if (ftp_listing_delegate_) {
711 // The FTP listing delegate will make the appropriate calls to 712 // The FTP listing delegate will make the appropriate calls to
712 // client_->didReceiveData and client_->didReceiveResponse. 713 // client_->didReceiveData and client_->didReceiveResponse.
713 ftp_listing_delegate_->OnReceivedData(payload, data_length); 714 ftp_listing_delegate_->OnReceivedData(payload, data_length);
714 } else { 715 } else {
715 // We dispatch the data even when |useStreamOnResponse()| is set, in order 716 // We dispatch the data even when |useStreamOnResponse()| is set, in order
716 // to make Devtools work. 717 // to make Devtools work.
717 client_->didReceiveData(loader_, payload, data_length, encoded_data_length); 718 client_->didReceiveData(loader_, payload, data_length, encoded_data_length,
719 data->encoded_body_length());
718 720
719 if (request_.useStreamOnResponse()) { 721 if (request_.useStreamOnResponse()) {
720 // We don't support ftp_listening_delegate_ for now. 722 // We don't support ftp_listening_delegate_ for now.
721 // TODO(yhirano): Support ftp listening. 723 // TODO(yhirano): Support ftp listening.
722 body_stream_writer_->AddData(std::move(data)); 724 body_stream_writer_->AddData(std::move(data));
723 } 725 }
724 } 726 }
725 } 727 }
726 728
727 void WebURLLoaderImpl::Context::OnReceivedCachedMetadata( 729 void WebURLLoaderImpl::Context::OnReceivedCachedMetadata(
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 return; 848 return;
847 } 849 }
848 850
849 ResourceResponseInfo info; 851 ResourceResponseInfo info;
850 std::string data; 852 std::string data;
851 853
852 int error_code = GetInfoFromDataURL(request_.url(), &info, &data); 854 int error_code = GetInfoFromDataURL(request_.url(), &info, &data);
853 855
854 if (error_code == net::OK) { 856 if (error_code == net::OK) {
855 OnReceivedResponse(info); 857 OnReceivedResponse(info);
856 if (!data.empty()) 858 auto size = data.size();
859 if (size != 0)
857 OnReceivedData( 860 OnReceivedData(
858 base::WrapUnique(new FixedReceivedData(data.data(), data.size(), 0))); 861 base::WrapUnique(new FixedReceivedData(data.data(), size, 0, size)));
859 } 862 }
860 863
861 OnCompletedRequest(error_code, false, false, info.security_info, 864 OnCompletedRequest(error_code, false, false, info.security_info,
862 base::TimeTicks::Now(), 0); 865 base::TimeTicks::Now(), 0);
863 } 866 }
864 867
865 // WebURLLoaderImpl::RequestPeerImpl ------------------------------------------ 868 // WebURLLoaderImpl::RequestPeerImpl ------------------------------------------
866 869
867 WebURLLoaderImpl::RequestPeerImpl::RequestPeerImpl(Context* context) 870 WebURLLoaderImpl::RequestPeerImpl::RequestPeerImpl(Context* context)
868 : context_(context) {} 871 : context_(context) {}
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 if (error_code != net::OK) { 1117 if (error_code != net::OK) {
1115 response.setURL(final_url); 1118 response.setURL(final_url);
1116 error.domain = WebString::fromUTF8(net::kErrorDomain); 1119 error.domain = WebString::fromUTF8(net::kErrorDomain);
1117 error.reason = error_code; 1120 error.reason = error_code;
1118 error.unreachableURL = final_url; 1121 error.unreachableURL = final_url;
1119 return; 1122 return;
1120 } 1123 }
1121 1124
1122 PopulateURLResponse(final_url, sync_load_response, &response, 1125 PopulateURLResponse(final_url, sync_load_response, &response,
1123 request.reportRawHeaders()); 1126 request.reportRawHeaders());
1127 response.addToEncodedBodyLength(sync_load_response.encoded_body_length);
1128 response.addToDecodedBodyLength(sync_load_response.data.size());
1124 1129
1125 data.assign(sync_load_response.data.data(), 1130 data.assign(sync_load_response.data.data(), sync_load_response.data.size());
1126 sync_load_response.data.size());
1127 } 1131 }
1128 1132
1129 void WebURLLoaderImpl::loadAsynchronously(const WebURLRequest& request, 1133 void WebURLLoaderImpl::loadAsynchronously(const WebURLRequest& request,
1130 WebURLLoaderClient* client) { 1134 WebURLLoaderClient* client) {
1131 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::loadAsynchronously", 1135 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::loadAsynchronously",
1132 this, TRACE_EVENT_FLAG_FLOW_OUT); 1136 this, TRACE_EVENT_FLAG_FLOW_OUT);
1133 DCHECK(!context_->client()); 1137 DCHECK(!context_->client());
1134 1138
1135 context_->set_client(client); 1139 context_->set_client(client);
1136 context_->Start(request, NULL); 1140 context_->Start(request, NULL);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 response->clearHTTPHeaderField(webStringName); 1202 response->clearHTTPHeaderField(webStringName);
1199 while (response_headers->EnumerateHeader(&iterator, name, &value)) { 1203 while (response_headers->EnumerateHeader(&iterator, name, &value)) {
1200 response->addHTTPHeaderField(webStringName, 1204 response->addHTTPHeaderField(webStringName,
1201 WebString::fromLatin1(value)); 1205 WebString::fromLatin1(value));
1202 } 1206 }
1203 } 1207 }
1204 return true; 1208 return true;
1205 } 1209 }
1206 1210
1207 } // namespace content 1211 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698