diff options
Diffstat (limited to 'chromium/net/dns/README.md')
-rw-r--r-- | chromium/net/dns/README.md | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/chromium/net/dns/README.md b/chromium/net/dns/README.md index 87caba0ba08..b958958fc6c 100644 --- a/chromium/net/dns/README.md +++ b/chromium/net/dns/README.md @@ -225,11 +225,12 @@ particular resolution sources. #### SYSTEM `net::HostResolverSource::SYSTEM` -`net::HostResolverManager::TaskType::PROC` +`net::HostResolverManager::TaskType::SYSTEM` -Implemented by: `net::HostResolverManager::ProcTask` +Implemented by: `net::HostResolverSystemTask` -Usually called the "system resolver" or sometimes the "proc resolver". Results +Usually called the "system resolver" or sometimes the "proc resolver" (because +it was historically always implemented using net::HostResolverProc). Results are queried from the system or OS using the `getaddrinfo()` OS API call. This source is only capable of address (A and AAAA) resolves but will also query for canonname info if the request includes the `HOST_RESOLVER_CANONNAME` flag. The @@ -248,18 +249,24 @@ always be used for **address resolves** when **any** of the following are true: Secure DNS requests cannot be made using the system resolver. -`net::HostResolverManager::ProcTask` uses a blocking -[`base::TaskRunner`](/base/task/task_runner.h) to make blocking resolution requests. +`net::HostResolverSystemTask` posts a blocking task to a +[`base::ThreadPool`](/base/task/thread_pool.h) to make blocking resolution +requests. On a timeout, additional attempts are made, but previous attempts are not cancelled as there is no cancellation mechanism for `getaddrinfo()`. The first attempt to complete is used and any other attempt completions are ignored. -Each attempt calls [`net::HostResolverProc`](/net/dns/host_resolver_proc.h). In -prod, this is always implemented by a `net::SystemHostResolverProc`, which makes -the actual call to `getaddrinfo()` using the -[`net::AddressInfo`](/net/dns/address_info.h) helper, but in tests, the -`net::HostResolverProc` may be replaced by a chain of test implementations to -override behavior. +In prod, the blocking task runner always calls `SystemHostResolverCall()`, which +makes the actual call to `getaddrinfo()` using the +[`net::AddressInfo`](/net/dns/address_info.h) helper. In tests, the blocking +task runner may use a test implementation of +[`net::HostResolverProc`](/net/dns/host_resolver_proc.h), which itself can be +chained. + +Data collected specifically for this source: + +* "Net.DNS.SystemTask.SuccessTime" +* "Net.DNS.SystemTask.FailureTime" #### DNS |