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

Side by Side Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc

Issue 2833523002: Adding opt out and previews type information to DRP pingback (Closed)
Patch Set: bengr comments Created 3 years, 8 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 "components/data_reduction_proxy/core/browser/data_reduction_proxy_netw ork_delegate.h" 5 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_netw ork_delegate.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 RemoveChromeProxyECTHeader(headers); 290 RemoveChromeProxyECTHeader(headers);
291 VerifyHttpRequestHeaders(false, *headers); 291 VerifyHttpRequestHeaders(false, *headers);
292 return; 292 return;
293 } 293 }
294 294
295 // Retrieves DataReductionProxyData from a request, creating a new instance 295 // Retrieves DataReductionProxyData from a request, creating a new instance
296 // if needed. 296 // if needed.
297 data = DataReductionProxyData::GetDataAndCreateIfNecessary(request); 297 data = DataReductionProxyData::GetDataAndCreateIfNecessary(request);
298 if (data) { 298 if (data) {
299 data->set_used_data_reduction_proxy(true); 299 data->set_used_data_reduction_proxy(true);
300 data->set_session_key( 300 // Only set GURL, NQE and session key string for main frame requests since
301 data_reduction_proxy_request_options_->GetSecureSession()); 301 // they are not needed for sub-resources.
302 data->set_request_url(request->url()); 302 if (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) {
303 if ((request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) && 303 data->set_session_key(
304 request->context()->network_quality_estimator()) { 304 data_reduction_proxy_request_options_->GetSecureSession());
305 data->set_effective_connection_type(request->context() 305 data->set_request_url(request->url());
306 ->network_quality_estimator() 306 if (request->context()->network_quality_estimator()) {
307 ->GetEffectiveConnectionType()); 307 data->set_effective_connection_type(request->context()
308 ->network_quality_estimator()
309 ->GetEffectiveConnectionType());
310 }
308 } 311 }
309 } 312 }
310 313
311 if (data_reduction_proxy_io_data_ && 314 if (data_reduction_proxy_io_data_ &&
312 (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED)) { 315 (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED)) {
313 data_reduction_proxy_io_data_->SetLoFiModeActiveOnMainFrame( 316 data_reduction_proxy_io_data_->SetLoFiModeActiveOnMainFrame(
314 lofi_decider ? lofi_decider->IsSlowPagePreviewRequested(*headers) 317 lofi_decider ? lofi_decider->IsSlowPagePreviewRequested(*headers)
315 : false); 318 : false);
316 } 319 }
317 320
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 request->response_headers() 410 request->response_headers()
408 ? request->response_headers()->GetInt64HeaderValue( 411 ? request->response_headers()->GetInt64HeaderValue(
409 "x-original-content-length") 412 "x-original-content-length")
410 : -1; 413 : -1;
411 414
412 CalculateAndRecordDataUsage(*request, request_type); 415 CalculateAndRecordDataUsage(*request, request_type);
413 416
414 RecordContentLength(*request, request_type, original_content_length); 417 RecordContentLength(*request, request_type, original_content_length);
415 } 418 }
416 419
420 void DataReductionProxyNetworkDelegate::OnHeadersReceivedInternal(
421 net::URLRequest* request,
422 const net::CompletionCallback& callback,
423 const net::HttpResponseHeaders* original_response_headers,
424 scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
425 GURL* allowed_unsafe_redirect_url) {
426 if (!original_response_headers)
427 return;
428 if (IsEmptyImagePreview(*original_response_headers)) {
429 DataReductionProxyData* data =
430 DataReductionProxyData::GetDataAndCreateIfNecessary(request);
431 data->set_lofi_received(true);
432 } else if (IsLitePagePreview(*original_response_headers)) {
433 DataReductionProxyData* data =
434 DataReductionProxyData::GetDataAndCreateIfNecessary(request);
435 data->set_lite_page_received(true);
436 }
437 }
438
417 void DataReductionProxyNetworkDelegate::CalculateAndRecordDataUsage( 439 void DataReductionProxyNetworkDelegate::CalculateAndRecordDataUsage(
418 const net::URLRequest& request, 440 const net::URLRequest& request,
419 DataReductionProxyRequestType request_type) { 441 DataReductionProxyRequestType request_type) {
420 DCHECK(thread_checker_.CalledOnValidThread()); 442 DCHECK(thread_checker_.CalledOnValidThread());
421 int64_t data_used = request.GetTotalReceivedBytes(); 443 int64_t data_used = request.GetTotalReceivedBytes();
422 444
423 // Estimate how many bytes would have been used if the DataReductionProxy was 445 // Estimate how many bytes would have been used if the DataReductionProxy was
424 // not used, and record the data usage. 446 // not used, and record the data usage.
425 int64_t original_size = data_used; 447 int64_t original_size = data_used;
426 448
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 } 641 }
620 642
621 void DataReductionProxyNetworkDelegate::RemoveChromeProxyECTHeader( 643 void DataReductionProxyNetworkDelegate::RemoveChromeProxyECTHeader(
622 net::HttpRequestHeaders* request_headers) const { 644 net::HttpRequestHeaders* request_headers) const {
623 DCHECK(thread_checker_.CalledOnValidThread()); 645 DCHECK(thread_checker_.CalledOnValidThread());
624 646
625 request_headers->RemoveHeader(chrome_proxy_ect_header()); 647 request_headers->RemoveHeader(chrome_proxy_ect_header());
626 } 648 }
627 649
628 } // namespace data_reduction_proxy 650 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698