| 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 |