| OLD | NEW |
| 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_fetcher_core.h" | 5 #include "net/url_request/url_fetcher_core.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 while (!fetchers_.empty()) | 64 while (!fetchers_.empty()) |
| 65 (*fetchers_.begin())->CancelURLRequest(ERR_ABORTED); | 65 (*fetchers_.begin())->CancelURLRequest(ERR_ABORTED); |
| 66 } | 66 } |
| 67 | 67 |
| 68 // URLFetcherCore ------------------------------------------------------------- | 68 // URLFetcherCore ------------------------------------------------------------- |
| 69 | 69 |
| 70 // static | 70 // static |
| 71 base::LazyInstance<URLFetcherCore::Registry>::DestructorAtExit | 71 base::LazyInstance<URLFetcherCore::Registry>::DestructorAtExit |
| 72 URLFetcherCore::g_registry = LAZY_INSTANCE_INITIALIZER; | 72 URLFetcherCore::g_registry = LAZY_INSTANCE_INITIALIZER; |
| 73 | 73 |
| 74 URLFetcherCore::URLFetcherCore(URLFetcher* fetcher, | 74 URLFetcherCore::URLFetcherCore( |
| 75 const GURL& original_url, | 75 URLFetcher* fetcher, |
| 76 URLFetcher::RequestType request_type, | 76 const GURL& original_url, |
| 77 URLFetcherDelegate* d) | 77 URLFetcher::RequestType request_type, |
| 78 URLFetcherDelegate* d, |
| 79 const net::NetworkTrafficAnnotationTag traffic_annotation) |
| 78 : fetcher_(fetcher), | 80 : fetcher_(fetcher), |
| 79 original_url_(original_url), | 81 original_url_(original_url), |
| 80 request_type_(request_type), | 82 request_type_(request_type), |
| 81 delegate_(d), | 83 delegate_(d), |
| 82 delegate_task_runner_(base::SequencedTaskRunnerHandle::Get()), | 84 delegate_task_runner_(base::SequencedTaskRunnerHandle::Get()), |
| 83 load_flags_(LOAD_NORMAL), | 85 load_flags_(LOAD_NORMAL), |
| 84 response_code_(URLFetcher::RESPONSE_CODE_INVALID), | 86 response_code_(URLFetcher::RESPONSE_CODE_INVALID), |
| 85 url_request_data_key_(NULL), | 87 url_request_data_key_(NULL), |
| 86 was_fetched_via_proxy_(false), | 88 was_fetched_via_proxy_(false), |
| 87 was_cached_(false), | 89 was_cached_(false), |
| 88 received_response_content_length_(0), | 90 received_response_content_length_(0), |
| 89 total_received_bytes_(0), | 91 total_received_bytes_(0), |
| 90 upload_content_set_(false), | 92 upload_content_set_(false), |
| 91 upload_range_offset_(0), | 93 upload_range_offset_(0), |
| 92 upload_range_length_(0), | 94 upload_range_length_(0), |
| 93 referrer_policy_( | 95 referrer_policy_( |
| 94 URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), | 96 URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), |
| 95 is_chunked_upload_(false), | 97 is_chunked_upload_(false), |
| 96 was_cancelled_(false), | 98 was_cancelled_(false), |
| 97 stop_on_redirect_(false), | 99 stop_on_redirect_(false), |
| 98 stopped_on_redirect_(false), | 100 stopped_on_redirect_(false), |
| 99 automatically_retry_on_5xx_(true), | 101 automatically_retry_on_5xx_(true), |
| 100 num_retries_on_5xx_(0), | 102 num_retries_on_5xx_(0), |
| 101 max_retries_on_5xx_(0), | 103 max_retries_on_5xx_(0), |
| 102 num_retries_on_network_changes_(0), | 104 num_retries_on_network_changes_(0), |
| 103 max_retries_on_network_changes_(0), | 105 max_retries_on_network_changes_(0), |
| 104 current_upload_bytes_(-1), | 106 current_upload_bytes_(-1), |
| 105 current_response_bytes_(0), | 107 current_response_bytes_(0), |
| 106 total_response_bytes_(-1) { | 108 total_response_bytes_(-1), |
| 109 traffic_annotation_(traffic_annotation) { |
| 107 CHECK(original_url_.is_valid()); | 110 CHECK(original_url_.is_valid()); |
| 108 } | 111 } |
| 109 | 112 |
| 110 void URLFetcherCore::Start() { | 113 void URLFetcherCore::Start() { |
| 111 DCHECK(delegate_task_runner_); | 114 DCHECK(delegate_task_runner_); |
| 112 DCHECK(request_context_getter_.get()) << "We need an URLRequestContext!"; | 115 DCHECK(request_context_getter_.get()) << "We need an URLRequestContext!"; |
| 113 if (network_task_runner_.get()) { | 116 if (network_task_runner_.get()) { |
| 114 DCHECK_EQ(network_task_runner_, | 117 DCHECK_EQ(network_task_runner_, |
| 115 request_context_getter_->GetNetworkTaskRunner()); | 118 request_context_getter_->GetNetworkTaskRunner()); |
| 116 } else { | 119 } else { |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 CancelRequestAndInformDelegate(ERR_CONTEXT_SHUT_DOWN); | 548 CancelRequestAndInformDelegate(ERR_CONTEXT_SHUT_DOWN); |
| 546 return; | 549 return; |
| 547 } | 550 } |
| 548 | 551 |
| 549 DCHECK(!request_.get()); | 552 DCHECK(!request_.get()); |
| 550 | 553 |
| 551 g_registry.Get().AddURLFetcherCore(this); | 554 g_registry.Get().AddURLFetcherCore(this); |
| 552 current_response_bytes_ = 0; | 555 current_response_bytes_ = 0; |
| 553 request_context_getter_->AddObserver(this); | 556 request_context_getter_->AddObserver(this); |
| 554 request_ = request_context_getter_->GetURLRequestContext()->CreateRequest( | 557 request_ = request_context_getter_->GetURLRequestContext()->CreateRequest( |
| 555 original_url_, DEFAULT_PRIORITY, this); | 558 original_url_, DEFAULT_PRIORITY, this, traffic_annotation_); |
| 556 int flags = request_->load_flags() | load_flags_; | 559 int flags = request_->load_flags() | load_flags_; |
| 557 | 560 |
| 558 // TODO(mmenke): This should really be with the other code to set the upload | 561 // TODO(mmenke): This should really be with the other code to set the upload |
| 559 // body, below. | 562 // body, below. |
| 560 if (chunked_stream_) | 563 if (chunked_stream_) |
| 561 request_->set_upload(std::move(chunked_stream_)); | 564 request_->set_upload(std::move(chunked_stream_)); |
| 562 | 565 |
| 563 request_->SetLoadFlags(flags); | 566 request_->SetLoadFlags(flags); |
| 564 request_->SetReferrer(referrer_); | 567 request_->SetReferrer(referrer_); |
| 565 request_->set_referrer_policy(referrer_policy_); | 568 request_->set_referrer_policy(referrer_policy_); |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 955 } | 958 } |
| 956 | 959 |
| 957 void URLFetcherCore::AssertHasNoUploadData() const { | 960 void URLFetcherCore::AssertHasNoUploadData() const { |
| 958 DCHECK(!upload_content_set_); | 961 DCHECK(!upload_content_set_); |
| 959 DCHECK(upload_content_.empty()); | 962 DCHECK(upload_content_.empty()); |
| 960 DCHECK(upload_file_path_.empty()); | 963 DCHECK(upload_file_path_.empty()); |
| 961 DCHECK(upload_stream_factory_.is_null()); | 964 DCHECK(upload_stream_factory_.is_null()); |
| 962 } | 965 } |
| 963 | 966 |
| 964 } // namespace net | 967 } // namespace net |
| OLD | NEW |