OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/cronet/stale_host_resolver.h" | 5 #include "components/cronet/stale_host_resolver.h" |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/metrics/histogram_macros.h" | 9 #include "base/metrics/histogram_macros.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 // asynchronously (unless destroyed first). | 95 // asynchronously (unless destroyed first). |
96 // | 96 // |
97 // |addresses| must remain valid until the Request completes (synchronously or | 97 // |addresses| must remain valid until the Request completes (synchronously or |
98 // via |result_callback|) or is canceled by destroying the Request. | 98 // via |result_callback|) or is canceled by destroying the Request. |
99 int Start(net::HostResolverImpl* resolver, | 99 int Start(net::HostResolverImpl* resolver, |
100 const RequestInfo& info, | 100 const RequestInfo& info, |
101 net::RequestPriority priority, | 101 net::RequestPriority priority, |
102 net::AddressList* addresses, | 102 net::AddressList* addresses, |
103 const net::CompletionCallback& result_callback, | 103 const net::CompletionCallback& result_callback, |
104 std::unique_ptr<net::HostResolver::Request>* out_req, | 104 std::unique_ptr<net::HostResolver::Request>* out_req, |
105 const net::BoundNetLog& net_log, | 105 const net::NetLogWithSource& net_log, |
106 const StaleEntryUsableCallback& usable_callback, | 106 const StaleEntryUsableCallback& usable_callback, |
107 base::TimeDelta stale_delay); | 107 base::TimeDelta stale_delay); |
108 | 108 |
109 void ChangeRequestPriority(net::RequestPriority priority); | 109 void ChangeRequestPriority(net::RequestPriority priority); |
110 | 110 |
111 private: | 111 private: |
112 class Handle : public net::HostResolver::Request { | 112 class Handle : public net::HostResolver::Request { |
113 public: | 113 public: |
114 Handle(RequestImpl* request) : request_(request) {} | 114 Handle(RequestImpl* request) : request_(request) {} |
115 ~Handle() override { request_->OnHandleDestroyed(); } | 115 ~Handle() override { request_->OnHandleDestroyed(); } |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 | 188 |
189 StaleHostResolver::RequestImpl::~RequestImpl() {} | 189 StaleHostResolver::RequestImpl::~RequestImpl() {} |
190 | 190 |
191 int StaleHostResolver::RequestImpl::Start( | 191 int StaleHostResolver::RequestImpl::Start( |
192 net::HostResolverImpl* resolver, | 192 net::HostResolverImpl* resolver, |
193 const RequestInfo& info, | 193 const RequestInfo& info, |
194 net::RequestPriority priority, | 194 net::RequestPriority priority, |
195 net::AddressList* addresses, | 195 net::AddressList* addresses, |
196 const net::CompletionCallback& result_callback, | 196 const net::CompletionCallback& result_callback, |
197 std::unique_ptr<net::HostResolver::Request>* out_req, | 197 std::unique_ptr<net::HostResolver::Request>* out_req, |
198 const net::BoundNetLog& net_log, | 198 const net::NetLogWithSource& net_log, |
199 const StaleEntryUsableCallback& usable_callback, | 199 const StaleEntryUsableCallback& usable_callback, |
200 base::TimeDelta stale_delay) { | 200 base::TimeDelta stale_delay) { |
201 DCHECK(resolver); | 201 DCHECK(resolver); |
202 DCHECK(addresses); | 202 DCHECK(addresses); |
203 DCHECK(!result_callback.is_null()); | 203 DCHECK(!result_callback.is_null()); |
204 DCHECK(out_req); | 204 DCHECK(out_req); |
205 DCHECK(!usable_callback.is_null()); | 205 DCHECK(!usable_callback.is_null()); |
206 | 206 |
207 result_addresses_ = addresses; | 207 result_addresses_ = addresses; |
208 | 208 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 DCHECK_LE(0, stale_options.max_stale_uses); | 358 DCHECK_LE(0, stale_options.max_stale_uses); |
359 } | 359 } |
360 | 360 |
361 StaleHostResolver::~StaleHostResolver() {} | 361 StaleHostResolver::~StaleHostResolver() {} |
362 | 362 |
363 int StaleHostResolver::Resolve(const RequestInfo& info, | 363 int StaleHostResolver::Resolve(const RequestInfo& info, |
364 net::RequestPriority priority, | 364 net::RequestPriority priority, |
365 net::AddressList* addresses, | 365 net::AddressList* addresses, |
366 const net::CompletionCallback& callback, | 366 const net::CompletionCallback& callback, |
367 std::unique_ptr<Request>* out_req, | 367 std::unique_ptr<Request>* out_req, |
368 const net::BoundNetLog& net_log) { | 368 const net::NetLogWithSource& net_log) { |
369 StaleHostResolver::RequestImpl::StaleEntryUsableCallback usable_callback = | 369 StaleHostResolver::RequestImpl::StaleEntryUsableCallback usable_callback = |
370 base::Bind(&StaleEntryIsUsable, options_); | 370 base::Bind(&StaleEntryIsUsable, options_); |
371 | 371 |
372 RequestImpl* request = new RequestImpl(); | 372 RequestImpl* request = new RequestImpl(); |
373 int rv = | 373 int rv = |
374 request->Start(inner_resolver_.get(), info, priority, addresses, callback, | 374 request->Start(inner_resolver_.get(), info, priority, addresses, callback, |
375 out_req, net_log, usable_callback, options_.delay); | 375 out_req, net_log, usable_callback, options_.delay); |
376 if (rv != net::ERR_IO_PENDING) | 376 if (rv != net::ERR_IO_PENDING) |
377 delete request; | 377 delete request; |
378 | 378 |
379 return rv; | 379 return rv; |
380 } | 380 } |
381 | 381 |
382 int StaleHostResolver::ResolveFromCache(const RequestInfo& info, | 382 int StaleHostResolver::ResolveFromCache(const RequestInfo& info, |
383 net::AddressList* addresses, | 383 net::AddressList* addresses, |
384 const net::BoundNetLog& net_log) { | 384 const net::NetLogWithSource& net_log) { |
385 return inner_resolver_->ResolveFromCache(info, addresses, net_log); | 385 return inner_resolver_->ResolveFromCache(info, addresses, net_log); |
386 } | 386 } |
387 | 387 |
388 void StaleHostResolver::SetDnsClientEnabled(bool enabled) { | 388 void StaleHostResolver::SetDnsClientEnabled(bool enabled) { |
389 inner_resolver_->SetDnsClientEnabled(enabled); | 389 inner_resolver_->SetDnsClientEnabled(enabled); |
390 } | 390 } |
391 | 391 |
392 net::HostCache* StaleHostResolver::GetHostCache() { | 392 net::HostCache* StaleHostResolver::GetHostCache() { |
393 return inner_resolver_->GetHostCache(); | 393 return inner_resolver_->GetHostCache(); |
394 } | 394 } |
395 | 395 |
396 std::unique_ptr<base::Value> StaleHostResolver::GetDnsConfigAsValue() const { | 396 std::unique_ptr<base::Value> StaleHostResolver::GetDnsConfigAsValue() const { |
397 return inner_resolver_->GetDnsConfigAsValue(); | 397 return inner_resolver_->GetDnsConfigAsValue(); |
398 } | 398 } |
399 | 399 |
400 } // namespace net | 400 } // namespace net |
OLD | NEW |