Index: components/network_time/network_time_tracker.cc |
diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc |
index b5d8ccb853831daf89f93e1282e7386cd454ed17..56331529789d5286c5ca1a49158f3bf14160cef9 100644 |
--- a/components/network_time/network_time_tracker.cc |
+++ b/components/network_time/network_time_tracker.cc |
@@ -191,6 +191,7 @@ void RecordFetchValidHistogram(bool valid) { |
void NetworkTimeTracker::RegisterPrefs(PrefRegistrySimple* registry) { |
registry->RegisterDictionaryPref(prefs::kNetworkTimeMapping, |
base::MakeUnique<base::DictionaryValue>()); |
+ registry->RegisterBooleanPref(prefs::kNetworkTimeQueriesEnabled, true); |
} |
NetworkTimeTracker::NetworkTimeTracker( |
@@ -478,7 +479,11 @@ void NetworkTimeTracker::CheckTime() { |
policy { |
cookies_allowed: false |
setting: "This feature cannot be disabled by settings." |
- policy_exception_justification: "Not implemented." |
+ chrome_policy { |
+ NetworkTimeQueriesEnabled { |
+ NetworkTimeQueriesEnabled: false |
+ } |
+ } |
})"); |
// This cancels any outstanding fetch. |
time_fetcher_ = net::URLFetcher::Create(url, net::URLFetcher::GET, this, |
@@ -621,6 +626,11 @@ bool NetworkTimeTracker::ShouldIssueTimeQuery() { |
return false; |
} |
+ // Do not query the time service if queries are disabled by policy. |
+ if (!pref_service_->GetBoolean(prefs::kNetworkTimeQueriesEnabled)) { |
+ return false; |
+ } |
+ |
// If GetNetworkTime() does not return NETWORK_TIME_AVAILABLE, |
// synchronization has been lost and a query is needed. |
base::Time network_time; |