Index: net/dns/host_resolver.h |
diff --git a/net/dns/host_resolver.h b/net/dns/host_resolver.h |
index 4e19e63af3f8311c507d195e3ecb933829995a34..6a3f334ce30acb97757d2d7b20712cce8233fbc1 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 response. If it does, |
+ // fills in |stale_info| with details on why the response is not valid. |
+ // (Defaults to calling |ResolveFromCache()| if not overridden.) |
Randy Smith (Not in Mondays)
2016/04/28 16:29:55
This implies that |stale_info| is not filled in if
Julia Tuttle
2016/04/29 17:34:47
Oh, it's supposed to (and does) always fill in sta
|
+ virtual int ResolveStaleFromCache(const RequestInfo& info, |
+ AddressList* addresses, |
+ HostCache::StaleEntryInfo* 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 fresh data is available in cache, populates |addresses| and returns |
+ // synchronously. Sets |*stale_error| to ERR_UNEXPECTED, since it should not |
+ // be used. |
+ // |
+ // If stale data is available in cache, starts a network request like |
+ // |Resolve()|, but also returns the stale data through |stale_error|, |
+ // |stale_addresses|, and |stale_info|. |
+ // |
+ // If no data is available in cache, starts a network request like |
+ // |Resolve()| and sets |*stale_error| to ERR_DNS_CACHE_MISS. |
Randy Smith (Not in Mondays)
2016/04/28 16:29:55
Confirming: All cases that start a network request
Julia Tuttle
2016/04/29 17:34:47
Yup. Should be clearer in the new version of the c
|
+ int ResolveStale(const RequestInfo& info, |
+ RequestPriority priority, |
+ AddressList* addresses, |
+ const CompletionCallback& callback, |
+ RequestHandle* out_req, |
+ int* stale_error, |
+ AddressList* stale_addresses, |
+ HostCache::StaleEntryInfo* 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 |