Chromium Code Reviews| Index: net/dns/host_resolver.h |
| diff --git a/net/dns/host_resolver.h b/net/dns/host_resolver.h |
| index 4e19e63af3f8311c507d195e3ecb933829995a34..d6c2ae1847b060aaa7f4b27050c8c3c17d8b8c32 100644 |
| --- a/net/dns/host_resolver.h |
| +++ b/net/dns/host_resolver.h |
| @@ -18,6 +18,7 @@ |
| #include "net/base/net_export.h" |
| #include "net/base/prioritized_dispatcher.h" |
| #include "net/base/request_priority.h" |
| +#include "net/dns/host_cache.h" |
| namespace base { |
| class Value; |
| @@ -27,7 +28,6 @@ namespace net { |
| class AddressList; |
| class BoundNetLog; |
| -class HostCache; |
| class HostResolverProc; |
| class NetLog; |
| @@ -163,6 +163,38 @@ class NET_EXPORT HostResolver { |
| AddressList* addresses, |
| const BoundNetLog& net_log) = 0; |
| + // Like |ResolveFromCache()|, but can return a stale result. Fills in |
| + // |*stale_info| if a response is returned to indicate how stale (or not) it |
| + // is. (Defaults to calling |ResolveFromCache()| if not overridden.) |
|
Randy Smith (Not in Mondays)
2016/05/04 19:46:59
I'd personally vote for (i.e.: suggestion) leaving
Julia Tuttle
2016/05/05 15:42:54
Done.
|
| + virtual int ResolveStaleFromCache(const RequestInfo& info, |
| + AddressList* addresses, |
| + HostCache::EntryStaleness* stale_info, |
| + const BoundNetLog& net_log); |
| + |
| + // Uses |ResolveStaleFromCache| and |Resolve| to get fresh data (either from |
| + // the cache or from the network) but also return stale data if any is |
| + // available. |
| + // |
| + // If a fresh result is available in cache, populates |addresses| and returns |
| + // it synchronously. |
| + // |
| + // Otherwise, starts a network request, returns ERR_IO_PENDING, and: |
|
Randy Smith (Not in Mondays)
2016/05/04 19:46:59
nit: This is implicitly relying on the the comment
Julia Tuttle
2016/05/05 15:42:54
Done.
|
| + // |
| + // If a stale result is available in cache, returns it through |
| + // |*stale_error|, |*stale_addresses|, and |*stale_info|. |
| + // |
| + // If no result is available in cache, sets |*stale_error| to |
| + // ERR_DNS_CACHE_MISS. |
| + int ResolveStale(const RequestInfo& info, |
|
Randy Smith (Not in Mondays)
2016/05/04 19:46:59
In not marking this virtual, you're specifically i
Julia Tuttle
2016/05/05 15:42:54
It is a conscious choice -- I see ResolveStale as
|
| + RequestPriority priority, |
| + AddressList* addresses, |
| + const CompletionCallback& callback, |
| + RequestHandle* out_req, |
| + int* stale_error, |
| + AddressList* stale_addresses, |
| + HostCache::EntryStaleness* stale_info, |
| + const BoundNetLog& net_log); |
| + |
| // Cancels the specified request. |req| is the handle returned by Resolve(). |
| // After a request is canceled, its completion callback will not be called. |
| // CancelRequest must NOT be called after the request's completion callback |