DoH-improvements.patch 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Sat, 26 Sep 2020 14:23:19 +0100
  3. Subject: DoH improvements
  4. Enable secure mode by default
  5. Always enforce DoH even with inconsistent system DNS configuration
  6. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  7. ---
  8. .../browser/net/stub_resolver_config_reader.cc | 17 +----------------
  9. net/dns/dns_client.cc | 11 ++++++++---
  10. net/dns/host_resolver_manager.cc | 1 +
  11. 3 files changed, 10 insertions(+), 19 deletions(-)
  12. diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
  13. --- a/chrome/browser/net/stub_resolver_config_reader.cc
  14. +++ b/chrome/browser/net/stub_resolver_config_reader.cc
  15. @@ -155,7 +155,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
  16. if (entries.count("dns-over-https@1")) {
  17. // The user has "Enabled" selected.
  18. local_state_->SetString(prefs::kDnsOverHttpsMode,
  19. - SecureDnsConfig::kModeAutomatic);
  20. + SecureDnsConfig::kModeSecure);
  21. } else if (entries.count("dns-over-https@2")) {
  22. // The user has "Disabled" selected.
  23. local_state_->SetString(prefs::kDnsOverHttpsMode,
  24. @@ -338,22 +338,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
  25. check_parental_controls = false;
  26. }
  27. - // Check parental controls last because it can be expensive and should only be
  28. - // checked if necessary for the otherwise-determined mode.
  29. if (check_parental_controls) {
  30. - if (ShouldDisableDohForParentalControls()) {
  31. - forced_management_mode =
  32. - SecureDnsConfig::ManagementMode::kDisabledParentalControls;
  33. - secure_dns_mode = net::SecureDnsMode::kOff;
  34. - mode_details =
  35. - SecureDnsModeDetailsForHistogram::kOffByDetectedParentalControls;
  36. -
  37. - // If parental controls had not previously been checked, need to update
  38. - // network service.
  39. - if (!parental_controls_checked_)
  40. - update_network_service = true;
  41. - }
  42. -
  43. parental_controls_checked_ = true;
  44. }
  45. diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
  46. --- a/net/dns/dns_client.cc
  47. +++ b/net/dns/dns_client.cc
  48. @@ -245,11 +245,14 @@ class DnsClientImpl : public DnsClient {
  49. private:
  50. absl::optional<DnsConfig> BuildEffectiveConfig() const {
  51. DnsConfig config;
  52. - if (config_overrides_.OverridesEverything()) {
  53. + // in Bromite it is sufficient to have secure DoH enabled to give the overrides priority
  54. + if (config_overrides_.dns_over_https_config && config_overrides_.secure_dns_mode) {
  55. config = config_overrides_.ApplyOverrides(DnsConfig());
  56. } else {
  57. - if (!system_config_)
  58. + if (!system_config_) {
  59. + LOG(WARNING) << "BuildEffectiveConfig(): no system configuration";
  60. return absl::nullopt;
  61. + }
  62. config = config_overrides_.ApplyOverrides(system_config_.value());
  63. }
  64. @@ -264,8 +267,10 @@ class DnsClientImpl : public DnsClient {
  65. if (config.unhandled_options)
  66. config.nameservers.clear();
  67. - if (!config.IsValid())
  68. + if (!config.IsValid()) {
  69. + LOG(WARNING) << "BuildEffectiveConfig(): invalid configuration";
  70. return absl::nullopt;
  71. + }
  72. return config;
  73. }
  74. diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
  75. --- a/net/dns/host_resolver_manager.cc
  76. +++ b/net/dns/host_resolver_manager.cc
  77. @@ -3313,6 +3313,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
  78. bool changed = dns_client_->SetConfigOverrides(std::move(overrides));
  79. if (changed) {
  80. + LOG(INFO) << "triggering non-system DNS change";
  81. NetworkChangeNotifier::TriggerNonSystemDnsChange();
  82. // Only invalidate cache if new overrides have resulted in a config change.
  83. --
  84. 2.25.1