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_request.h" | 5 #include "net/url_request/url_request.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 namespace net { | 49 namespace net { |
50 | 50 |
51 namespace { | 51 namespace { |
52 | 52 |
53 // Max number of http redirects to follow. Same number as gecko. | 53 // Max number of http redirects to follow. Same number as gecko. |
54 const int kMaxRedirects = 20; | 54 const int kMaxRedirects = 20; |
55 | 55 |
56 // TODO(battre): Delete this, see http://crbug.com/89321: | 56 // TODO(battre): Delete this, see http://crbug.com/89321: |
57 // This counter keeps track of the identifiers used for URL requests so far. | 57 // This counter keeps track of the identifiers used for URL requests so far. |
58 // 0 is reserved to represent an invalid ID. | 58 // 0 is reserved to represent an invalid ID. |
59 uint64 g_next_url_request_identifier = 1; | 59 uint64_t g_next_url_request_identifier = 1; |
60 | 60 |
61 // This lock protects g_next_url_request_identifier. | 61 // This lock protects g_next_url_request_identifier. |
62 base::LazyInstance<base::Lock>::Leaky | 62 base::LazyInstance<base::Lock>::Leaky |
63 g_next_url_request_identifier_lock = LAZY_INSTANCE_INITIALIZER; | 63 g_next_url_request_identifier_lock = LAZY_INSTANCE_INITIALIZER; |
64 | 64 |
65 // Returns an prior unused identifier for URL requests. | 65 // Returns an prior unused identifier for URL requests. |
66 uint64 GenerateURLRequestIdentifier() { | 66 uint64_t GenerateURLRequestIdentifier() { |
67 base::AutoLock lock(g_next_url_request_identifier_lock.Get()); | 67 base::AutoLock lock(g_next_url_request_identifier_lock.Get()); |
68 return g_next_url_request_identifier++; | 68 return g_next_url_request_identifier++; |
69 } | 69 } |
70 | 70 |
71 // True once the first URLRequest was started. | 71 // True once the first URLRequest was started. |
72 bool g_url_requests_started = false; | 72 bool g_url_requests_started = false; |
73 | 73 |
74 // True if cookies are accepted by default. | 74 // True if cookies are accepted by default. |
75 bool g_default_can_use_cookies = true; | 75 bool g_default_can_use_cookies = true; |
76 | 76 |
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
681 return; | 681 return; |
682 } | 682 } |
683 DoCancel(error, ssl_info); | 683 DoCancel(error, ssl_info); |
684 } | 684 } |
685 | 685 |
686 void URLRequest::DoCancel(int error, const SSLInfo& ssl_info) { | 686 void URLRequest::DoCancel(int error, const SSLInfo& ssl_info) { |
687 DCHECK(error < 0); | 687 DCHECK(error < 0); |
688 // ~500,000 ERR_ABORTED < 100ms in Canary channel a day. Sample .01% to get | 688 // ~500,000 ERR_ABORTED < 100ms in Canary channel a day. Sample .01% to get |
689 // ~50 reports a day. | 689 // ~50 reports a day. |
690 // TODO(csharrison) Remove this code when crbug.com/557430 is resolved. | 690 // TODO(csharrison) Remove this code when crbug.com/557430 is resolved. |
691 int64 request_time = | 691 int64_t request_time = |
692 (base::TimeTicks::Now() - creation_time_).InMilliseconds(); | 692 (base::TimeTicks::Now() - creation_time_).InMilliseconds(); |
693 if (!has_notified_completion_ && error == ERR_ABORTED && | 693 if (!has_notified_completion_ && error == ERR_ABORTED && |
694 request_time <= 100 && load_flags_ & LOAD_MAIN_FRAME && | 694 request_time <= 100 && load_flags_ & LOAD_MAIN_FRAME && |
695 base::RandDouble() < .00001) { | 695 base::RandDouble() < .00001) { |
696 static int dump_times = 0; | 696 static int dump_times = 0; |
697 if (dump_times < 5) { | 697 if (dump_times < 5) { |
698 char url_copy[256] = {0}; | 698 char url_copy[256] = {0}; |
699 strncpy(url_copy, url().spec().c_str(), sizeof(url_copy)); | 699 strncpy(url_copy, url().spec().c_str(), sizeof(url_copy)); |
700 base::debug::Alias(&url_copy); | 700 base::debug::Alias(&url_copy); |
701 base::debug::Alias(&request_time); | 701 base::debug::Alias(&request_time); |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
992 --redirect_limit_; | 992 --redirect_limit_; |
993 | 993 |
994 Start(); | 994 Start(); |
995 return OK; | 995 return OK; |
996 } | 996 } |
997 | 997 |
998 const URLRequestContext* URLRequest::context() const { | 998 const URLRequestContext* URLRequest::context() const { |
999 return context_; | 999 return context_; |
1000 } | 1000 } |
1001 | 1001 |
1002 int64 URLRequest::GetExpectedContentSize() const { | 1002 int64_t URLRequest::GetExpectedContentSize() const { |
1003 int64 expected_content_size = -1; | 1003 int64_t expected_content_size = -1; |
1004 if (job_.get()) | 1004 if (job_.get()) |
1005 expected_content_size = job_->expected_content_size(); | 1005 expected_content_size = job_->expected_content_size(); |
1006 | 1006 |
1007 return expected_content_size; | 1007 return expected_content_size; |
1008 } | 1008 } |
1009 | 1009 |
1010 void URLRequest::SetPriority(RequestPriority priority) { | 1010 void URLRequest::SetPriority(RequestPriority priority) { |
1011 DCHECK_GE(priority, MINIMUM_PRIORITY); | 1011 DCHECK_GE(priority, MINIMUM_PRIORITY); |
1012 DCHECK_LE(priority, MAXIMUM_PRIORITY); | 1012 DCHECK_LE(priority, MAXIMUM_PRIORITY); |
1013 | 1013 |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1216 } | 1216 } |
1217 | 1217 |
1218 void URLRequest::GetConnectionAttempts(ConnectionAttempts* out) const { | 1218 void URLRequest::GetConnectionAttempts(ConnectionAttempts* out) const { |
1219 if (job_) | 1219 if (job_) |
1220 job_->GetConnectionAttempts(out); | 1220 job_->GetConnectionAttempts(out); |
1221 else | 1221 else |
1222 out->clear(); | 1222 out->clear(); |
1223 } | 1223 } |
1224 | 1224 |
1225 } // namespace net | 1225 } // namespace net |
OLD | NEW |