157 lines
6.3 KiB
Diff
157 lines
6.3 KiB
Diff
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|
Date: Sun, 18 Nov 2018 13:06:49 +0100
|
|
Subject: Add flag to disable IPv6 probes
|
|
|
|
---
|
|
chrome/browser/about_flags.cc | 5 +++++
|
|
chrome/browser/flag_descriptions.cc | 4 ++++
|
|
chrome/browser/flag_descriptions.h | 3 +++
|
|
components/subresource_filter/tools/BUILD.gn | 6 ++++++
|
|
.../url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++-
|
|
net/dns/host_resolver_manager.cc | 9 ++++++++-
|
|
services/network/public/cpp/features.cc | 4 ++++
|
|
services/network/public/cpp/features.h | 2 ++
|
|
8 files changed, 34 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|
--- a/chrome/browser/about_flags.cc
|
|
+++ b/chrome/browser/about_flags.cc
|
|
@@ -3334,6 +3334,11 @@ const FeatureEntry kFeatureEntries[] = {
|
|
kMarkHttpAsFeatureVariations,
|
|
"HTTPReallyBadFinal")},
|
|
|
|
+ {"ipv6-probing",
|
|
+ flag_descriptions::kIPv6ProbingName,
|
|
+ flag_descriptions::kIPv6ProbingDescription, kOsAll,
|
|
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
|
|
+
|
|
#if !defined(OS_ANDROID)
|
|
{"enable-web-authentication-testing-api",
|
|
flag_descriptions::kEnableWebAuthenticationTestingAPIName,
|
|
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
|
--- a/chrome/browser/flag_descriptions.cc
|
|
+++ b/chrome/browser/flag_descriptions.cc
|
|
@@ -2381,6 +2381,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
|
|
|
const char kContextualSearchSecondTapName[] =
|
|
"Contextual Search second tap triggering";
|
|
+const char kIPv6ProbingName[] = "Enable IPv6 probing.";
|
|
+const char kIPv6ProbingDescription[] =
|
|
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
|
|
+
|
|
const char kContextualSearchSecondTapDescription[] =
|
|
"Enables triggering on a second tap gesture even when Ranker would "
|
|
"normally suppress that tap.";
|
|
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
|
--- a/chrome/browser/flag_descriptions.h
|
|
+++ b/chrome/browser/flag_descriptions.h
|
|
@@ -528,6 +528,9 @@ extern const char kEnableWasmThreadsName[];
|
|
extern const char kEnableWasmThreadsDescription[];
|
|
|
|
extern const char kEnableWasmTieringName[];
|
|
+extern const char kIPv6ProbingName[];
|
|
+extern const char kIPv6ProbingDescription[];
|
|
+
|
|
extern const char kEnableWasmTieringDescription[];
|
|
|
|
extern const char kEvDetailsInPageInfoName[];
|
|
diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresource_filter/tools/BUILD.gn
|
|
--- a/components/subresource_filter/tools/BUILD.gn
|
|
+++ b/components/subresource_filter/tools/BUILD.gn
|
|
@@ -50,6 +50,8 @@ if (!is_ios) {
|
|
deps = [
|
|
":tools_lib",
|
|
"//base",
|
|
+ "//components/network_session_configurator/common",
|
|
+ "//services/network/public/cpp"
|
|
]
|
|
}
|
|
|
|
@@ -61,6 +63,8 @@ if (!is_ios) {
|
|
":tools_lib",
|
|
"../core/common",
|
|
"//base",
|
|
+ "//components/network_session_configurator/common",
|
|
+ "//services/network/public/cpp",
|
|
]
|
|
}
|
|
|
|
@@ -70,6 +74,8 @@ if (!is_ios) {
|
|
"ruleset_converter:support",
|
|
"//base",
|
|
"//third_party/protobuf:protobuf_lite",
|
|
+ "//components/network_session_configurator/common",
|
|
+ "//services/network/public/cpp"
|
|
]
|
|
}
|
|
|
|
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
|
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
|
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
|
@@ -73,7 +73,8 @@ executable("make_top_domain_list_variables") {
|
|
"//base",
|
|
"//base:i18n",
|
|
"//third_party/icu",
|
|
- "//components/network_session_configurator/common"
|
|
+ "//components/network_session_configurator/common",
|
|
+ "//services/network/public/cpp",
|
|
]
|
|
if (is_ios) {
|
|
libs = [ "UIKit.framework" ]
|
|
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
|
--- a/net/dns/host_resolver_manager.cc
|
|
+++ b/net/dns/host_resolver_manager.cc
|
|
@@ -92,6 +92,7 @@
|
|
#include "net/socket/client_socket_factory.h"
|
|
#include "net/socket/datagram_client_socket.h"
|
|
#include "net/url_request/url_request_context.h"
|
|
+#include "services/network/public/cpp/features.h"
|
|
#include "url/url_canon_ip.h"
|
|
|
|
#if BUILDFLAG(ENABLE_MDNS)
|
|
@@ -3593,8 +3594,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
|
bool cached = true;
|
|
if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
|
kIPv6ProbePeriodMs) {
|
|
- SetLastIPv6ProbeResult(
|
|
+
|
|
+ if (!base::FeatureList::IsEnabled(network::features::kIPv6Probing)) {
|
|
+ // pretend IPv6 connectivy probe is successful when probing is disabled
|
|
+ SetLastIPv6ProbeResult(true);
|
|
+ } else {
|
|
+ SetLastIPv6ProbeResult(
|
|
IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log));
|
|
+ }
|
|
cached = false;
|
|
}
|
|
net_log.AddEvent(
|
|
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
|
--- a/services/network/public/cpp/features.cc
|
|
+++ b/services/network/public/cpp/features.cc
|
|
@@ -52,6 +52,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
|
|
const base::Feature kThrottleDelayable{"ThrottleDelayable",
|
|
base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
+// Enable IPv6 ping probes to RIPE DNS.
|
|
+const base::Feature kIPv6Probing{"IPv6Probing",
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+
|
|
// When kPriorityRequestsDelayableOnSlowConnections is enabled, HTTP
|
|
// requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the
|
|
// ResourceScheduler just as HTTP/1.1 resources are. However, requests from such
|
|
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
|
--- a/services/network/public/cpp/features.h
|
|
+++ b/services/network/public/cpp/features.h
|
|
@@ -21,6 +21,8 @@ extern const base::Feature kNetworkErrorLogging;
|
|
COMPONENT_EXPORT(NETWORK_CPP)
|
|
extern const base::Feature kNetworkService;
|
|
COMPONENT_EXPORT(NETWORK_CPP)
|
|
+extern const base::Feature kIPv6Probing;
|
|
+COMPONENT_EXPORT(NETWORK_CPP)
|
|
extern const base::Feature kOutOfBlinkCors;
|
|
COMPONENT_EXPORT(NETWORK_CPP)
|
|
extern const base::Feature kReporting;
|
|
--
|
|
2.17.1
|
|
|