Add-flag-to-disable-IPv6-probes.patch 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Sun, 18 Nov 2018 13:06:49 +0100
  3. Subject: Add flag to disable IPv6 probes
  4. ---
  5. chrome/browser/about_flags.cc | 4 ++++
  6. chrome/browser/flag_descriptions.cc | 4 ++++
  7. chrome/browser/flag_descriptions.h | 3 +++
  8. components/subresource_filter/tools/BUILD.gn | 6 ++++++
  9. .../url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++-
  10. net/dns/host_resolver_manager.cc | 9 ++++++++-
  11. services/network/public/cpp/features.cc | 4 ++++
  12. services/network/public/cpp/features.h | 2 ++
  13. 8 files changed, 33 insertions(+), 2 deletions(-)
  14. diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  15. --- a/chrome/browser/about_flags.cc
  16. +++ b/chrome/browser/about_flags.cc
  17. @@ -5333,6 +5333,10 @@ const FeatureEntry kFeatureEntries[] = {
  18. {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
  19. flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
  20. FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
  21. + {"ipv6-probing",
  22. + flag_descriptions::kIPv6ProbingName,
  23. + flag_descriptions::kIPv6ProbingDescription, kOsAll,
  24. + FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
  25. #endif // BUILDFLAG(IS_ANDROID)
  26. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
  27. diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
  28. --- a/chrome/browser/flag_descriptions.cc
  29. +++ b/chrome/browser/flag_descriptions.cc
  30. @@ -3017,6 +3017,10 @@ const char kCCTResizableForThirdPartiesName[] =
  31. const char kCCTResizableForThirdPartiesDescription[] =
  32. "Enable bottom sheet Custom Tabs for third party apps.";
  33. +const char kIPv6ProbingName[] = "Enable IPv6 probing.";
  34. +const char kIPv6ProbingDescription[] =
  35. + "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
  36. +
  37. const char kChimeAlwaysShowNotificationDescription[] =
  38. "A debug flag to always show Chime notification after receiving a payload.";
  39. const char kChimeAlwaysShowNotificationName[] =
  40. diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
  41. --- a/chrome/browser/flag_descriptions.h
  42. +++ b/chrome/browser/flag_descriptions.h
  43. @@ -715,6 +715,9 @@ extern const char kEnableWasmLazyCompilationName[];
  44. extern const char kEnableWasmLazyCompilationDescription[];
  45. extern const char kEnableWasmTieringName[];
  46. +extern const char kIPv6ProbingName[];
  47. +extern const char kIPv6ProbingDescription[];
  48. +
  49. extern const char kEnableWasmTieringDescription[];
  50. extern const char kEvDetailsInPageInfoName[];
  51. diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresource_filter/tools/BUILD.gn
  52. --- a/components/subresource_filter/tools/BUILD.gn
  53. +++ b/components/subresource_filter/tools/BUILD.gn
  54. @@ -50,6 +50,8 @@ if (!is_ios) {
  55. deps = [
  56. ":tools_lib",
  57. "//base",
  58. + "//components/network_session_configurator/common",
  59. + "//services/network/public/cpp"
  60. ]
  61. }
  62. @@ -61,6 +63,8 @@ if (!is_ios) {
  63. ":tools_lib",
  64. "../core/common",
  65. "//base",
  66. + "//components/network_session_configurator/common",
  67. + "//services/network/public/cpp",
  68. ]
  69. }
  70. @@ -70,6 +74,8 @@ if (!is_ios) {
  71. "ruleset_converter:support",
  72. "//base",
  73. "//third_party/protobuf:protobuf_lite",
  74. + "//components/network_session_configurator/common",
  75. + "//services/network/public/cpp"
  76. ]
  77. }
  78. diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
  79. --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
  80. +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
  81. @@ -89,7 +89,8 @@ executable("make_top_domain_list_variables") {
  82. "//base:i18n",
  83. "//components/url_formatter/spoof_checks/common_words:common",
  84. "//third_party/icu",
  85. - "//components/network_session_configurator/common"
  86. + "//components/network_session_configurator/common",
  87. + "//services/network/public/cpp",
  88. ]
  89. if (is_ios) {
  90. frameworks = [ "UIKit.framework" ]
  91. diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
  92. --- a/net/dns/host_resolver_manager.cc
  93. +++ b/net/dns/host_resolver_manager.cc
  94. @@ -104,6 +104,7 @@
  95. #include "net/log/net_log_event_type.h"
  96. #include "net/log/net_log_source.h"
  97. #include "net/log/net_log_source_type.h"
  98. +#include "services/network/public/cpp/features.h"
  99. #include "net/log/net_log_with_source.h"
  100. #include "net/socket/client_socket_factory.h"
  101. #include "net/socket/datagram_client_socket.h"
  102. @@ -4129,8 +4130,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
  103. if (last_ipv6_probe_time_.is_null() ||
  104. (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
  105. kIPv6ProbePeriodMs) {
  106. - SetLastIPv6ProbeResult(
  107. +
  108. + if (!base::FeatureList::IsEnabled(network::features::kIPv6Probing)) {
  109. + // pretend IPv6 connectivy probe is successful when probing is disabled
  110. + SetLastIPv6ProbeResult(true);
  111. + } else {
  112. + SetLastIPv6ProbeResult(
  113. IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log));
  114. + }
  115. cached = false;
  116. }
  117. net_log.AddEvent(
  118. diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
  119. --- a/services/network/public/cpp/features.cc
  120. +++ b/services/network/public/cpp/features.cc
  121. @@ -36,6 +36,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
  122. const base::Feature kThrottleDelayable{"ThrottleDelayable",
  123. base::FEATURE_ENABLED_BY_DEFAULT};
  124. +// Enable IPv6 ping probes to RIPE DNS.
  125. +const base::Feature kIPv6Probing{"IPv6Probing",
  126. + base::FEATURE_ENABLED_BY_DEFAULT};
  127. +
  128. // When kPriorityRequestsDelayableOnSlowConnections is enabled, HTTP
  129. // requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the
  130. // ResourceScheduler just as HTTP/1.1 resources are. However, requests from such
  131. diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
  132. --- a/services/network/public/cpp/features.h
  133. +++ b/services/network/public/cpp/features.h
  134. @@ -18,6 +18,8 @@ extern const base::Feature kExpectCTReporting;
  135. COMPONENT_EXPORT(NETWORK_CPP)
  136. extern const base::Feature kNetworkErrorLogging;
  137. COMPONENT_EXPORT(NETWORK_CPP)
  138. +extern const base::Feature kIPv6Probing;
  139. +COMPONENT_EXPORT(NETWORK_CPP)
  140. extern const base::Feature kReporting;
  141. COMPONENT_EXPORT(NETWORK_CPP)
  142. extern const base::Feature kThrottleDelayable;
  143. --
  144. 2.25.1