New issue
Advanced search Search tips

Issue 846423 link

Starred by 6 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug


Sign in to add a comment

Servicify non-HostResolver net/dns APIs

Project Member Reported by ericorth@chromium.org, May 24 2018

Issue description

HostResolver (main public API to net/dns) is being servicified in 821021.  But there's additionally other external access into some of the internals (eg HostResolverImpl) and other more advanced APIs (eg DnsClient and MDnsClient).

Need a plan for these, either merge this usage into the new servicified HostResolver or separately servicify these APIs.
 

Comment 1 by dxie@chromium.org, May 29 2018

Status: Started (was: Assigned)

Comment 2 by mmenke@chromium.org, Jun 18 2018

Blocking: 853696

Comment 3 by mmenke@chromium.org, Jun 18 2018

There's also the DnsProbeService, which does DNS lookups on ERR_NAME_NOT_RESOLVED to determine if there's no such hostname, the network is down, or if there's (rarely) a system configuration issue.  It's a bit different from consumers in that it uses its own DNS configuration (A modified system one, and using google DNS for another lookup).
Labels: OS-Windows
Labels: -Proj-Servicification-Canary Proj-Servicification
DnsClient and MDnsClient do not use the shared HostCache, so they are not canary blockers.
Labels: Hotlist-KnownIssue
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc35748e613c44a984f9c090fa36e95560306775

commit dc35748e613c44a984f9c090fa36e95560306775
Author: Eric Orth <ericorth@chromium.org>
Date: Thu Aug 23 22:41:48 2018

Add source and cache selection to HostResolver::CreateRequest.

ResolveHostParameters::allow_cached_response is a direct replacement for
RequestInfo::allow_cached_response.  Defaulting to true, it controls
whether or not a result can come from the host cache.

ResolveHostParameters::source allows specifying a source (system vs
async resolver) for a request.  This is a replacement for setting the
HOST_RESOLVER_SYSTEM_ONLY flag or directly using the async resolver
classes.

Just adding to C++ net/ API for now.  Mojo version in next CL.

Bug: 846423
Change-Id: Ie945745f595302ae745ffdab355ae1b13a993c4a
Reviewed-on: https://chromium-review.googlesource.com/1185216
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585641}
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/BUILD.gn
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_cache.h
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver.cc
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver.h
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver_impl.h
[modify] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver_impl_unittest.cc
[add] https://crrev.com/dc35748e613c44a984f9c090fa36e95560306775/net/dns/host_resolver_source.h

Cc: zstein@chromium.org
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/43c160ffbf5f8a702e57bedb0667963ba85cceef

commit 43c160ffbf5f8a702e57bedb0667963ba85cceef
Author: Eric Orth <ericorth@chromium.org>
Date: Thu Aug 30 20:39:40 2018

Add source support to mock resolver.

In order to avoid incompatible changes to RulesBasedHostResolverProc,
which is used all over the place (see crbug.com/878838), created
separate internal rules procs to handle those requests specifying
different sources.

Updated tests for the one piece of code currently specifying SYSTEM
source (via flag through the old API).

Bug: 846423
Change-Id: I1b92384d831579fe119817afc3e0cb92cfdf4565
Reviewed-on: https://chromium-review.googlesource.com/1195547
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587746}
[modify] https://crrev.com/43c160ffbf5f8a702e57bedb0667963ba85cceef/net/dns/mock_host_resolver.cc
[modify] https://crrev.com/43c160ffbf5f8a702e57bedb0667963ba85cceef/net/dns/mock_host_resolver.h
[modify] https://crrev.com/43c160ffbf5f8a702e57bedb0667963ba85cceef/net/proxy_resolution/pac_file_decider_unittest.cc

Blocking: 879746
Labels: -Hotlist-KnownIssue
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/12c4725dc425a8b11d0d227a6547af6577e2f04d

commit 12c4725dc425a8b11d0d227a6547af6577e2f04d
Author: Eric Orth <ericorth@chromium.org>
Date: Wed Sep 05 17:04:07 2018

Add source and cache support to DNS service API.

Added injectable TickClock to MockHostResolver to fix some timing
issues I ran into while debugging some of the new cache tests.

Note: HostResolverSource still has an ANY value for now, despite recent
conversations that it's not the clearest name. Still trying to decide
on the best name for that value, so not renamed yet.

Bug: 846423
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I22431d47f76d831bbf67d0f4010c1753093a3f32
Reviewed-on: https://chromium-review.googlesource.com/1195550
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588896}
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/net/dns/host_resolver_source.h
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/net/dns/mock_host_resolver.cc
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/net/dns/mock_host_resolver.h
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/host_resolver.cc
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/host_resolver_unittest.cc
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/public/cpp/host_resolver.typemap
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/public/cpp/host_resolver_mojom_traits.cc
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/public/cpp/host_resolver_mojom_traits.h
[modify] https://crrev.com/12c4725dc425a8b11d0d227a6547af6577e2f04d/services/network/public/mojom/host_resolver.mojom

Cc: qingsi@chromium.org
Labels: -Pri-1 Proj-Servicification-Stable Hotlist-KnownIssue Pri-2
Project Member

Comment 15 by bugdroid1@chromium.org, Oct 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9871aafa3bedffec7590bb7bb67e20c3c322593b

commit 9871aafa3bedffec7590bb7bb67e20c3c322593b
Author: Eric Orth <ericorth@chromium.org>
Date: Tue Oct 02 19:59:18 2018

Implement MULTICAST_DNS source for new HostResolver API.

Only used when explicitly requested. The MDnsClient is created and
starts listening for MDNS messages at first use in HostResolverImpl.

For now supports only a basic feature set, eg we'll DCHECK if canonname
is requested (in contrast to the async resolver behavior that was
unnoticed until recently due to the lack of a DCHECK).

Bug: 846423
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Ib296ac432d392baee2454587693b2537513f461c
Reviewed-on: https://chromium-review.googlesource.com/1211542
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595956}
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/BUILD.gn
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_impl.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_impl_unittest.cc
[add] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_mdns_task.cc
[add] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_mdns_task.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/host_resolver_source.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mdns_client.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mdns_client.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mdns_client_impl.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mdns_client_impl.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mock_host_resolver.cc
[add] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mock_mdns_client.cc
[add] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/net/dns/mock_mdns_client.h
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/services/network/host_resolver.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/services/network/host_resolver_unittest.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/services/network/public/cpp/host_resolver_mojom_traits.cc
[modify] https://crrev.com/9871aafa3bedffec7590bb7bb67e20c3c322593b/services/network/public/mojom/host_resolver.mojom

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1eb1294437353395a457fe22be3d1a9e24c751b

commit c1eb1294437353395a457fe22be3d1a9e24c751b
Author: Eric Orth <ericorth@chromium.org>
Date: Tue Oct 09 22:07:07 2018

Allow overriding DNS config properties in HostResolver.

Created DnsConfigOverrides with Optionals of most properties in
DnsConfig.  HostResolver can then apply these overrides over any config
read from the system for use with the underlying DnsClient.  More
cleanly supports the functionality needed by DnsProbeService where it
currently needs to maintain its own DnsClient, listen for any changes to
system DNS config, and apply custom overrides before passing the config
to its owned DnsClient.

As this is essentially a generalization of the mechanism used to set DOH
servers, replaced those calls with use of a DnsConfigOverrides.

This functionality will be added to the Mojo API in a subsequent change.

Bug: 846423
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I737c570f019263e711423d3be94d2a8f8f860731
Reviewed-on: https://chromium-review.googlesource.com/c/1259902
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598101}
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/BUILD.gn
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/dns_config.cc
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/dns_config.h
[add] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/dns_config_overrides.cc
[add] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/dns_config_overrides.h
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/host_resolver.cc
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/host_resolver.h
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/host_resolver_impl.h
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/mapped_host_resolver.h
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/net/dns/mock_host_resolver.h
[modify] https://crrev.com/c1eb1294437353395a457fe22be3d1a9e24c751b/services/network/network_service.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e366fe60c014a059ccbef6d6db48fe47c33de20a

commit e366fe60c014a059ccbef6d6db48fe47c33de20a
Author: Eric Orth <ericorth@chromium.org>
Date: Wed Oct 24 16:38:31 2018

Servicified custom DNS configuration

Mojo API to override system DNS config for built-in resolver
resolutions.  This is the servicification of the API added in CL
1259902.

When a non-nullopt overrides struct is specified in CreateHostResolver
calls, a separate internal net::HostResolver is created and used with
the overrides. A better solution would be to use the normal shared
net::HostResolver, eg by setting per-request overrides, but that is
unnecessary and out of scope for the current needs where this is only
expected to be used by a special case (DnsProbeService) that doesn't
care about shared stuff like caching.

TBR=caseq@chromium.org

Bug: 846423
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I1b49da83d166f80b503bd6955328f3492d553a5e
Reviewed-on: https://chromium-review.googlesource.com/c/1269076
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602367}
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/chrome/browser/devtools/device/tcp_device_provider.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/extensions/browser/api/socket/socket_api.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/BUILD.gn
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/BUILD.gn
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/dns_config.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/dns_config.h
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/dns_config_overrides.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/dns_config_overrides.h
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/host_resolver.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/host_resolver.h
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/dns/host_resolver_impl.h
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/interfaces/BUILD.gn
[add] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/net/interfaces/ip_address_struct_traits_unittest.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/network_context.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/network_context.h
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/network_context_unittest.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/cpp/BUILD.gn
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/cpp/host_resolver.typemap
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/cpp/host_resolver_mojom_traits.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/cpp/host_resolver_mojom_traits.h
[add] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/cpp/host_resolver_mojom_traits_unittest.cc
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/mojom/host_resolver.mojom
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/mojom/network_context.mojom
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/public/mojom/network_service.mojom
[modify] https://crrev.com/e366fe60c014a059ccbef6d6db48fe47c33de20a/services/network/test/test_network_context.h

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c823a23df243b2fd21d8776f19c01d49feb95108

commit c823a23df243b2fd21d8776f19c01d49feb95108
Author: Eric Orth <ericorth@chromium.org>
Date: Tue Oct 30 22:12:48 2018

Improve overriding full DNS config

Added ability to create a DnsConfigOverrides with all values overridden
with DnsConfig defaults.  Makes it easier to override the full config
and not use any values from the base config at all.

Also improved handling within HostResolverImpl when the full config is
overridden (through the new flag or by having all values). When
everything is overridden, system config changes are ignored (do not
cancel pending requests) and we skip reading system config entirely.

Bug: 846423
Change-Id: I310b221caee2fc52443991a79597e162fc4354a8
Reviewed-on: https://chromium-review.googlesource.com/c/1307592
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604034}
[modify] https://crrev.com/c823a23df243b2fd21d8776f19c01d49feb95108/net/dns/dns_config_overrides.cc
[modify] https://crrev.com/c823a23df243b2fd21d8776f19c01d49feb95108/net/dns/dns_config_overrides.h
[modify] https://crrev.com/c823a23df243b2fd21d8776f19c01d49feb95108/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/c823a23df243b2fd21d8776f19c01d49feb95108/net/dns/host_resolver_impl_unittest.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f1378f6144157d44c01f18cbd31139eb43b8a481

commit f1378f6144157d44c01f18cbd31139eb43b8a481
Author: Eric Orth <ericorth@chromium.org>
Date: Mon Nov 05 20:30:49 2018

Add DnsConfigChangeManager mojo API.

Allows network service clients to listen for when changes are detected
to the system DNS configuration. Will be useful for the DnsProbeService
usecase where the probe service needs to use config change as a signal
to clear cached probe results.

Only signals that changes have happenned, not what the changes were, and
there is no current plan for the network service to support retrieving
DNS config or details on changes. Recent work on DnsConfigOverrides has
negated all known service-external usecases for such capabilities.

Bug: 846423
Change-Id: Iee980205a2d3d0ddc80b39fb2a0a043a593db0a4
Reviewed-on: https://chromium-review.googlesource.com/c/1309334
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605441}
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/BUILD.gn
[add] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/dns_config_change_manager.cc
[add] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/dns_config_change_manager.h
[add] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/dns_config_change_manager_unittest.cc
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/network_service.cc
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/network_service.h
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/network_service_unittest.cc
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/public/mojom/host_resolver.mojom
[modify] https://crrev.com/f1378f6144157d44c01f18cbd31139eb43b8a481/services/network/public/mojom/network_service.mojom

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/609317412066bcfa6278d2d83dfa02c2b4fbfd5b

commit 609317412066bcfa6278d2d83dfa02c2b4fbfd5b
Author: Eric Orth <ericorth@chromium.org>
Date: Mon Nov 05 23:40:57 2018

Disallow fallback with DNS source

On built-in resolver failures, we sometimes fallback and try again with
the system resolver. This is not desirable when the source is explicitly
set to DNS as we should then only resolve using the built-in resolver.

Also changed the "disabling" of DnsClient after errors that succeed on
fallback. Should only opportunistically affect requests that can
fallback.  When we cannot fallback (e.g. due to being a DNS request),
DnsClient will still be used.

Also changed the behavior of requesting DNS with the DnsClient disabled.
Subsequent requests match that behavior and return an error instead of
DCHECKing.

Bug: 846423
Change-Id: If9e20e32e3e95aad7bd9e09b66bcb00808b95b43
Reviewed-on: https://chromium-review.googlesource.com/c/1313448
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605519}
[modify] https://crrev.com/609317412066bcfa6278d2d83dfa02c2b4fbfd5b/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/609317412066bcfa6278d2d83dfa02c2b4fbfd5b/net/dns/host_resolver_impl.h
[modify] https://crrev.com/609317412066bcfa6278d2d83dfa02c2b4fbfd5b/net/dns/host_resolver_impl_unittest.cc

Blocking: 902531
Project Member

Comment 22 by bugdroid1@chromium.org, Nov 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/192e3bbaa4a34c21ab43e63a0839acd9d070afe9

commit 192e3bbaa4a34c21ab43e63a0839acd9d070afe9
Author: Eric Orth <ericorth@chromium.org>
Date: Wed Nov 14 19:30:32 2018

Add DnsQueryType to HostCache::Key

Preparing to handle non-address results in HostResolver and HostCache.
First step is to switch HostCache::Key from AddressFamily to the more
general DnsQueryType and remove assumptions in HostCache and
HostResolverImpl that the only requestable types are A and AAAA.

No support yet for parsing and returning the non-address results. That
will be added in a later CL.

TBR=bbudge@chromium.org,tsepez@chromium.org

Bug: 846423
Change-Id: Ie921de57bd744e1796321c7d5706057c0db074d2
Reviewed-on: https://chromium-review.googlesource.com/c/1327232
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608079}
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/content/browser/renderer_host/pepper/pepper_host_resolver_message_filter.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/content/browser/renderer_host/pepper/pepper_host_resolver_message_filter.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/BUILD.gn
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/dns_util.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/dns_util.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_cache.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_cache.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_cache_unittest.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver_impl.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver_mdns_task.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/host_resolver_mdns_task.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/mock_host_resolver.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/mock_host_resolver.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/public/BUILD.gn
[add] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/public/dns_query_type.cc
[add] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/net/dns/public/dns_query_type.h
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/services/network/host_resolver_unittest.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/services/network/network_context_unittest.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/services/network/public/cpp/host_resolver.typemap
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/services/network/public/cpp/host_resolver_mojom_traits.cc
[modify] https://crrev.com/192e3bbaa4a34c21ab43e63a0839acd9d070afe9/services/network/public/cpp/host_resolver_mojom_traits.h

Project Member

Comment 23 by bugdroid1@chromium.org, Nov 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/84dbdda38493d871939b20d3fad9e3f268ece563

commit 84dbdda38493d871939b20d3fad9e3f268ece563
Author: Eric Orth <ericorth@chromium.org>
Date: Mon Nov 19 18:59:22 2018

Allow non-address results in HostCache::Entry

Changed addresses_ to an Optional and added additional optional fields
for text results (eg for TXT records) and hostname results (eg for SRV
or PTR records). Deliberately avoided assumptions that only one result
field could be non-nullopt at at time (but no constructor currently
allows creating it) because there's nothing wrong with some query
having results of multiple types. Eg, we may in the future choose to
pull cannonname out of AddressList and set it as a hostname result.

A subsequent CL will alter HostResolverImpl to allow querying, caching,
and returning non-address types, and it will also use HostCache::Entry
internally (and only internally) as a results container. For now, in
this CL, most of the code dealing with HostCache results will just
assume Entry::addresses() always has a value.

Bug: 846423
Change-Id: I62e177452bf89e5931f75a74448f9de70b7f2357
Reviewed-on: https://chromium-review.googlesource.com/c/1331143
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609373}
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/base/host_port_pair.h
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/dns/host_cache.cc
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/dns/host_cache.h
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/dns/host_cache_unittest.cc
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/net/dns/mock_host_resolver.cc
[modify] https://crrev.com/84dbdda38493d871939b20d3fad9e3f268ece563/services/proxy_resolver/host_resolver_mojo.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a

commit 07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a
Author: Eric Orth <ericorth@chromium.org>
Date: Thu Nov 29 00:42:03 2018

Generalize for non-address results in HostResolverImpl

Now extensively using HostCache::Entry internally (but only internally
to preserve flexibility of HostCache) as a generalized results
container within HostResolverImpl. Added some needed setter/merge
functionality to Entry for that purpose.  Many methods within the
resolver changed to use Entry for consistency even if they only ever
deal with address results, eg ResolveAsIP().

Slightly modified results port-setting functionality to only set port
to an input port (from |host.port()|) if the port in the results is 0
(where before it would set it whenever it wasn't equal to the input
port).  This will be necessary eg for SRV support where DNS provides a
specific port that needs to be maintained in the results. Also cleaned
up the port setting to consistently only ever happen just before
setting results on the RequestImpl and having 0 or a DNS-provided port
until then.

Bug: 846423
Change-Id: I679c0ac915e0f81b49adb5ee769f250be49c9c90
Reviewed-on: https://chromium-review.googlesource.com/c/1340835
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611963}
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_cache.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_cache.h
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_cache_unittest.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver.h
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver_impl.h
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver_mdns_task.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/host_resolver_mdns_task.h
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a/net/dns/mock_host_resolver.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e369ab31552568d193787e5dc591ff2785d906d0

commit e369ab31552568d193787e5dc591ff2785d906d0
Author: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Date: Thu Nov 29 05:23:26 2018

Revert "Generalize for non-address results in HostResolverImpl"

This reverts commit 07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a.

Reason for revert: StartTestServer(SpawnedTestServer::SSLOptions())
started failing after this CL

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.12%20Tests/17143

[ RUN      ] SSLClientSocketReadTest.Read_WithSynchronousError/0
[56283:775:1128/182253.758810:39802574526192:ERROR:local_test_server_posix.cc(79)] poll() timed out; bytes_read=0
[56283:775:1128/182253.758860:39802574568901:ERROR:local_test_server_posix.cc(167)] Could not read server_data_len
[56283:775:1128/182253.760826:39802576544202:ERROR:ssl_client_socket_unittest.cc(830)] Could not start SpawnedTestServer
../../net/socket/ssl_client_socket_unittest.cc:1532: Failure
Value of: StartTestServer(SpawnedTestServer::SSLOptions())
  Actual: false
Expected: true
Stack trace:
0   net_unittests                       0x000000010f41750b testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop(int) + 91
1   net_unittests                       0x000000010f416ec9 testing::internal::AssertHelper::operator=(testing::Message const&) const + 89
2   net_unittests                       0x000000010e7d9239 net::SSLClientSocketReadTest_Read_WithSynchronousError_Test::TestBody() + 585

[  FAILED  ] SSLClientSocketReadTest.Read_WithSynchronousError/0, where GetParam() = false (10083 ms)

Original change's description:
> Generalize for non-address results in HostResolverImpl
> 
> Now extensively using HostCache::Entry internally (but only internally
> to preserve flexibility of HostCache) as a generalized results
> container within HostResolverImpl. Added some needed setter/merge
> functionality to Entry for that purpose.  Many methods within the
> resolver changed to use Entry for consistency even if they only ever
> deal with address results, eg ResolveAsIP().
> 
> Slightly modified results port-setting functionality to only set port
> to an input port (from |host.port()|) if the port in the results is 0
> (where before it would set it whenever it wasn't equal to the input
> port).  This will be necessary eg for SRV support where DNS provides a
> specific port that needs to be maintained in the results. Also cleaned
> up the port setting to consistently only ever happen just before
> setting results on the RequestImpl and having 0 or a DNS-provided port
> until then.
> 
> Bug: 846423
> Change-Id: I679c0ac915e0f81b49adb5ee769f250be49c9c90
> Reviewed-on: https://chromium-review.googlesource.com/c/1340835
> Reviewed-by: Matt Menke <mmenke@chromium.org>
> Commit-Queue: Eric Orth <ericorth@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#611963}

TBR=mmenke@chromium.org,ericorth@chromium.org

Change-Id: Icc3121b6f6de985fb64ed9b2bee4951faf5378a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 846423
Reviewed-on: https://chromium-review.googlesource.com/c/1354746
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612052}
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_cache.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_cache.h
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_cache_unittest.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver.h
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver_impl.h
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver_mdns_task.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/host_resolver_mdns_task.h
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/e369ab31552568d193787e5dc591ff2785d906d0/net/dns/mock_host_resolver.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c35d16396c72f7b53f79b79ca2807c4f9f634096

commit c35d16396c72f7b53f79b79ca2807c4f9f634096
Author: Matt Menke <mmenke@chromium.org>
Date: Thu Nov 29 12:43:49 2018

Reland "Generalize for non-address results in HostResolverImpl"

This reverts commit e369ab31552568d193787e5dc591ff2785d906d0.

Reason for revert: The CL in question did not cause issue 869227, which is a pre-existing infra problem.

Original change's description:
> Revert "Generalize for non-address results in HostResolverImpl"
> 
> This reverts commit 07ee5f0f8712cd6783cc2bb00b17b59d72e04b4a.
> 
> Reason for revert: StartTestServer(SpawnedTestServer::SSLOptions())
> started failing after this CL
> 
> https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.12%20Tests/17143
> 
> [ RUN      ] SSLClientSocketReadTest.Read_WithSynchronousError/0
> [56283:775:1128/182253.758810:39802574526192:ERROR:local_test_server_posix.cc(79)] poll() timed out; bytes_read=0
> [56283:775:1128/182253.758860:39802574568901:ERROR:local_test_server_posix.cc(167)] Could not read server_data_len
> [56283:775:1128/182253.760826:39802576544202:ERROR:ssl_client_socket_unittest.cc(830)] Could not start SpawnedTestServer
> ../../net/socket/ssl_client_socket_unittest.cc:1532: Failure
> Value of: StartTestServer(SpawnedTestServer::SSLOptions())
>   Actual: false
> Expected: true
> Stack trace:
> 0   net_unittests                       0x000000010f41750b testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop(int) + 91
> 1   net_unittests                       0x000000010f416ec9 testing::internal::AssertHelper::operator=(testing::Message const&) const + 89
> 2   net_unittests                       0x000000010e7d9239 net::SSLClientSocketReadTest_Read_WithSynchronousError_Test::TestBody() + 585
> 
> [  FAILED  ] SSLClientSocketReadTest.Read_WithSynchronousError/0, where GetParam() = false (10083 ms)
> 
> Original change's description:
> > Generalize for non-address results in HostResolverImpl
> > 
> > Now extensively using HostCache::Entry internally (but only internally
> > to preserve flexibility of HostCache) as a generalized results
> > container within HostResolverImpl. Added some needed setter/merge
> > functionality to Entry for that purpose.  Many methods within the
> > resolver changed to use Entry for consistency even if they only ever
> > deal with address results, eg ResolveAsIP().
> > 
> > Slightly modified results port-setting functionality to only set port
> > to an input port (from |host.port()|) if the port in the results is 0
> > (where before it would set it whenever it wasn't equal to the input
> > port).  This will be necessary eg for SRV support where DNS provides a
> > specific port that needs to be maintained in the results. Also cleaned
> > up the port setting to consistently only ever happen just before
> > setting results on the RequestImpl and having 0 or a DNS-provided port
> > until then.
> > 
> > Bug: 846423
> > Change-Id: I679c0ac915e0f81b49adb5ee769f250be49c9c90
> > Reviewed-on: https://chromium-review.googlesource.com/c/1340835
> > Reviewed-by: Matt Menke <mmenke@chromium.org>
> > Commit-Queue: Eric Orth <ericorth@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#611963}
> 
> TBR=mmenke@chromium.org,ericorth@chromium.org
> 
> Change-Id: Icc3121b6f6de985fb64ed9b2bee4951faf5378a3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 846423
> Reviewed-on: https://chromium-review.googlesource.com/c/1354746
> Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
> Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#612052}

TBR=mmenke@chromium.org,ortuno@chromium.org,ericorth@chromium.org

Change-Id: Ie2f80d423a5370f976918357b32b8eb772c4f57c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 846423
Reviewed-on: https://chromium-review.googlesource.com/c/1354267
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612164}
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_cache.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_cache.h
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_cache_unittest.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver.h
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver_impl.h
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver_mdns_task.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/host_resolver_mdns_task.h
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/c35d16396c72f7b53f79b79ca2807c4f9f634096/net/dns/mock_host_resolver.cc

Status update since I have not done so in a long time:
Currently working on handling non-address results in HostResolver (rather than going directly through DnsClient or MDnsClient).  Then we'll be able to more elegantly servicify such queries.  Current status of that is that most of HostResolver has been updated to handle non-address results and I'm working on adding query support for the individual needed types, starting with TXT.  Also working on improving HostResolverImplFuzzer to deal with this expanded functionality.  After that, just need a bit of mojo wrapping for the new expanded functionality of HostResolver.

After non-address support, I think ServiceDiscoveryClient might need to be able to listen for MDNS changes.  Need to evaluate if that's really the case and add such functionality to mojo if so.  Don't think much else needs such push-style DNS/MDNS querying, so can probably just use a special-cased hack instead of really implementing solid support for it in HostResolver.
While adding some of the TXT query support, realized that some of the parsing logic for different query types lives in HostResolverImpl, and therefore we should make sure HostResolverImplFuzzer can exercise the relevant logic.  Working on a CL to do so.
Blockedon: 914402
Project Member

Comment 30 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/828bd3ae0caa0a409268307cd8b9a7e3da525ea0

commit 828bd3ae0caa0a409268307cd8b9a7e3da525ea0
Author: Eric Orth <ericorth@chromium.org>
Date: Wed Dec 12 17:30:36 2018

TXT HostResolver support.

When ResolveHostParameters::dns_query_type is set to TXT, a relevant
DNS/MDNS query will be made with text record results in
ResolveHostRequest::GetTextResults().  Will always use DNS or MDNS
resolver as the System/Proc resolver only supports address queries.

Lots of necessary changes to MockDnsClient.  Rules now allow specifying
a full DnsResponse rather than just IPAddresses, and added a couple
helper methods to create such response objects.  Rewrote and cleaned up
all the response generation code to support the changes.

Bug: 846423
Change-Id: I7298c73e7293ed4415eaa57c8d750111295dfbda
Reviewed-on: https://chromium-review.googlesource.com/c/1352529
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Asanka Herath <asanka@chromium.org>
Commit-Queue: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615941}
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/chrome/browser/net/dns_probe_test_util.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_response.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_response.h
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_response_fuzzer.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_response_unittest.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_test_util.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_test_util.h
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/dns_util.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/host_resolver_impl_fuzzer.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/host_resolver_mdns_task.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/public/dns_query_type.h
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/net/dns/record_rdata.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/services/network/mdns_responder.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/services/network/mdns_responder.h
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/services/network/network_context_unittest.cc
[modify] https://crrev.com/828bd3ae0caa0a409268307cd8b9a7e3da525ea0/services/network/public/cpp/host_resolver_mojom_traits.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Jan 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50d4b20d7de7763d398179ef63661433ac6319e2

commit 50d4b20d7de7763d398179ef63661433ac6319e2
Author: Eric Orth <ericorth@chromium.org>
Date: Mon Jan 14 18:38:28 2019

Expand HostResolverImpl fuzzer support

Added querying more types (including non-address, eg TXT) and more
sources (especially MDNS queries). Important because HostResolverImpl
contains some logic determining how DnsResponses (and especially their
contained rdatas) get parsed for different query types.

Bug: 846423
Change-Id: I9e5195868f5ebf2da6ad366cb4648cd0b6414331
Reviewed-on: https://chromium-review.googlesource.com/c/1356891
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622528}
[modify] https://crrev.com/50d4b20d7de7763d398179ef63661433ac6319e2/net/data/fuzzer_dictionaries/net_host_resolver_impl_fuzzer.dict
[modify] https://crrev.com/50d4b20d7de7763d398179ef63661433ac6319e2/net/dns/fuzzed_host_resolver.cc
[modify] https://crrev.com/50d4b20d7de7763d398179ef63661433ac6319e2/net/dns/host_resolver_impl_fuzzer.cc
[modify] https://crrev.com/50d4b20d7de7763d398179ef63661433ac6319e2/net/dns/host_resolver_source.h
[modify] https://crrev.com/50d4b20d7de7763d398179ef63661433ac6319e2/net/dns/public/dns_query_type.h

Blockedon: 922161
Project Member

Comment 33 by bugdroid1@chromium.org, Jan 16 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf81ba1648d01fe443212d971d610dd578266165

commit cf81ba1648d01fe443212d971d610dd578266165
Author: Eric Orth <ericorth@chromium.org>
Date: Wed Jan 16 18:56:34 2019

Network service support for non-address host resolution

Expanded the ResolveHostClient Mojo interface with additional
On...Results() methods to be called before OnComplete() when
non-address results are available.

Created a new ResolveHostClientBase abstract implementation, so client
implementations don't need to implement all these new methods if they
only expect certain result types.  Converted all the current client
implementations.

TBR=dgozman@chromium.org,alexilin@chromium.org,bbudge@chromium.org,tbarzic@chromium.org

Bug: 846423
Change-Id: Id84a1537c150a05f631545d0718a1236c6c4003e
Reviewed-on: https://chromium-review.googlesource.com/c/1378673
Commit-Queue: Eric Orth <ericorth@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623314}
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/chrome/browser/devtools/device/port_forwarding_controller.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/chrome/browser/devtools/device/tcp_device_provider.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/chrome/browser/predictors/resolve_host_client_impl.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/components/network_hints/browser/BUILD.gn
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/components/network_hints/browser/DEPS
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/components/network_hints/browser/network_hints_message_filter.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/content/browser/renderer_host/pepper/pepper_host_resolver_message_filter.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/extensions/browser/api/dns/dns_api.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/extensions/browser/api/socket/socket_api.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/host_resolver_unittest.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/network_context_unittest.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/public/cpp/BUILD.gn
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/public/cpp/host_resolver_mojom_traits.cc
[add] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/public/cpp/resolve_host_client_base.cc
[add] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/public/cpp/resolve_host_client_base.h
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/public/mojom/host_resolver.mojom
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/resolve_host_request.cc
[modify] https://crrev.com/cf81ba1648d01fe443212d971d610dd578266165/services/network/resolve_host_request.h

Sign in to add a comment