Use http protocol for periodic connectivity check
Https is quite heavy for periodic connectivity check. Change to http
version to reduce the server load after initial https check passsed.
Bug: b/135769650
Test: Verified the check change to http one after last check succeed.
Change-Id: I73d0c9ffaa6a22d0319d6782ed17ee1152045894
Signed-off-by: Edward Wang <wangedward@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1677263
Reviewed-by: Sergey Volk <servolk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672661}
diff --git a/chromecast/net/connectivity_checker_impl.cc b/chromecast/net/connectivity_checker_impl.cc
index 1c7ce7a5..f7c02192 100644
--- a/chromecast/net/connectivity_checker_impl.cc
+++ b/chromecast/net/connectivity_checker_impl.cc
@@ -47,6 +47,10 @@
const char kDefaultConnectivityCheckUrl[] =
"https://connectivitycheck.gstatic.com/generate_204";
+// Http url for connectivity checking.
+const char kHttpConnectivityCheckUrl[] =
+ "http://connectivitycheck.gstatic.com/generate_204";
+
// Delay notification of network change events to smooth out rapid flipping.
// Histogram "Cast.Network.Down.Duration.In.Seconds" shows 40% of network
// downtime is less than 3 seconds.
@@ -119,6 +123,17 @@
base::AutoLock auto_lock(connected_lock_);
connected_ = connected;
}
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ base::CommandLine::StringType check_url_str =
+ command_line->GetSwitchValueNative(switches::kConnectivityCheckUrl);
+ if (check_url_str.empty())
+ {
+ connectivity_check_url_.reset(new GURL(
+ connected ? kHttpConnectivityCheckUrl : kDefaultConnectivityCheckUrl));
+ LOG(INFO) << "Change check url=" << *connectivity_check_url_;
+ }
+
Notify(connected);
LOG(INFO) << "Global connection is: " << (connected ? "Up" : "Down");
}