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

Side by Side Diff: net/http/http_network_transaction.cc

Issue 12701011: [Net] Propagate priority changes from URLRequest to HttpTransaction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix leaks Created 7 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
« no previous file with comments | « net/http/http_network_transaction.h ('k') | net/http/http_stream_factory_impl_job.cc » ('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 "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 } 380 }
381 381
382 UploadProgress HttpNetworkTransaction::GetUploadProgress() const { 382 UploadProgress HttpNetworkTransaction::GetUploadProgress() const {
383 if (!stream_.get()) 383 if (!stream_.get())
384 return UploadProgress(); 384 return UploadProgress();
385 385
386 // TODO(bashi): This cast is temporary. Remove later. 386 // TODO(bashi): This cast is temporary. Remove later.
387 return static_cast<HttpStream*>(stream_.get())->GetUploadProgress(); 387 return static_cast<HttpStream*>(stream_.get())->GetUploadProgress();
388 } 388 }
389 389
390 bool HttpNetworkTransaction::GetLoadTimingInfo(
391 LoadTimingInfo* load_timing_info) const {
392 if (!stream_ || !stream_->GetLoadTimingInfo(load_timing_info))
393 return false;
394
395 load_timing_info->proxy_resolve_start =
396 proxy_info_.proxy_resolve_start_time();
397 load_timing_info->proxy_resolve_end = proxy_info_.proxy_resolve_end_time();
398 load_timing_info->send_start = send_start_time_;
399 load_timing_info->send_end = send_end_time_;
400 load_timing_info->receive_headers_end = receive_headers_end_;
401 return true;
402 }
403
404 void HttpNetworkTransaction::SetPriority(RequestPriority priority) {
405 priority_ = priority;
406 // TODO(akalin): Plumb this through to |stream_request_| and
407 // |stream_|.
408 }
409
390 void HttpNetworkTransaction::OnStreamReady(const SSLConfig& used_ssl_config, 410 void HttpNetworkTransaction::OnStreamReady(const SSLConfig& used_ssl_config,
391 const ProxyInfo& used_proxy_info, 411 const ProxyInfo& used_proxy_info,
392 HttpStreamBase* stream) { 412 HttpStreamBase* stream) {
393 DCHECK_EQ(STATE_CREATE_STREAM_COMPLETE, next_state_); 413 DCHECK_EQ(STATE_CREATE_STREAM_COMPLETE, next_state_);
394 DCHECK(stream_request_.get()); 414 DCHECK(stream_request_.get());
395 415
396 stream_.reset(stream); 416 stream_.reset(stream);
397 server_ssl_config_ = used_ssl_config; 417 server_ssl_config_ = used_ssl_config;
398 proxy_info_ = used_proxy_info; 418 proxy_info_ = used_proxy_info;
399 response_.was_npn_negotiated = stream_request_->was_npn_negotiated(); 419 response_.was_npn_negotiated = stream_request_->was_npn_negotiated();
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 497
478 headers_valid_ = true; 498 headers_valid_ = true;
479 response_ = response_info; 499 response_ = response_info;
480 server_ssl_config_ = used_ssl_config; 500 server_ssl_config_ = used_ssl_config;
481 proxy_info_ = used_proxy_info; 501 proxy_info_ = used_proxy_info;
482 stream_.reset(stream); 502 stream_.reset(stream);
483 stream_request_.reset(); // we're done with the stream request 503 stream_request_.reset(); // we're done with the stream request
484 OnIOComplete(ERR_HTTPS_PROXY_TUNNEL_RESPONSE); 504 OnIOComplete(ERR_HTTPS_PROXY_TUNNEL_RESPONSE);
485 } 505 }
486 506
487 bool HttpNetworkTransaction::GetLoadTimingInfo(
488 LoadTimingInfo* load_timing_info) const {
489 if (!stream_ || !stream_->GetLoadTimingInfo(load_timing_info))
490 return false;
491
492 load_timing_info->proxy_resolve_start =
493 proxy_info_.proxy_resolve_start_time();
494 load_timing_info->proxy_resolve_end = proxy_info_.proxy_resolve_end_time();
495 load_timing_info->send_start = send_start_time_;
496 load_timing_info->send_end = send_end_time_;
497 load_timing_info->receive_headers_end = receive_headers_end_;
498 return true;
499 }
500
501 bool HttpNetworkTransaction::is_https_request() const { 507 bool HttpNetworkTransaction::is_https_request() const {
502 return request_->url.SchemeIs("https"); 508 return request_->url.SchemeIs("https");
503 } 509 }
504 510
505 void HttpNetworkTransaction::DoCallback(int rv) { 511 void HttpNetworkTransaction::DoCallback(int rv) {
506 DCHECK_NE(rv, ERR_IO_PENDING); 512 DCHECK_NE(rv, ERR_IO_PENDING);
507 DCHECK(!callback_.is_null()); 513 DCHECK(!callback_.is_null());
508 514
509 // Since Run may result in Read being called, clear user_callback_ up front. 515 // Since Run may result in Read being called, clear user_callback_ up front.
510 CompletionCallback c = callback_; 516 CompletionCallback c = callback_;
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after
1457 description = base::StringPrintf("Unknown state 0x%08X (%u)", state, 1463 description = base::StringPrintf("Unknown state 0x%08X (%u)", state,
1458 state); 1464 state);
1459 break; 1465 break;
1460 } 1466 }
1461 return description; 1467 return description;
1462 } 1468 }
1463 1469
1464 #undef STATE_CASE 1470 #undef STATE_CASE
1465 1471
1466 } // namespace net 1472 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.h ('k') | net/http/http_stream_factory_impl_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698