Index: components/security_interstitials/core/bad_clock_ui.cc |
diff --git a/components/security_interstitials/core/bad_clock_ui.cc b/components/security_interstitials/core/bad_clock_ui.cc |
index 7b39de7574d2a77bd92df3ed93bd7c7f978d3584..19d567ec0c84ee99bb40ac7ff095390346281471 100644 |
--- a/components/security_interstitials/core/bad_clock_ui.cc |
+++ b/components/security_interstitials/core/bad_clock_ui.cc |
@@ -10,26 +10,34 @@ |
#include "grit/components_strings.h" |
#include "ui/base/l10n/l10n_util.h" |
+namespace network_time { |
+class NetworkTimeTracker; |
+} |
+ |
namespace security_interstitials { |
-BadClockUI::BadClockUI(const GURL& request_url, |
- int cert_error, |
- const net::SSLInfo& ssl_info, |
- const base::Time& time_triggered, |
- const std::string& languages, |
- ControllerClient* controller) |
+BadClockUI::BadClockUI( |
+ const GURL& request_url, |
+ int cert_error, |
+ const net::SSLInfo& ssl_info, |
+ const base::Time& time_triggered, |
+ const network_time::NetworkTimeTracker* network_time_tracker, |
+ const std::string& languages, |
+ ControllerClient* controller) |
: request_url_(request_url), |
cert_error_(cert_error), |
ssl_info_(ssl_info), |
time_triggered_(time_triggered), |
languages_(languages), |
- controller_(controller) { |
+ controller_(controller), |
+ network_time_tracker_(network_time_tracker) { |
controller_->metrics_helper()->RecordUserInteraction( |
security_interstitials::MetricsHelper::TOTAL_VISITS); |
// TODO(felt): Separate the clock statistics from the main ssl statistics. |
- ssl_errors::RecordUMAStatistics(false, time_triggered_, request_url_, |
- cert_error_, *ssl_info_.cert.get()); |
+ ssl_errors::RecordUMAStatistics(false, time_triggered_, network_time_tracker_, |
+ request_url_, cert_error_, |
+ *ssl_info_.cert.get()); |
} |
BadClockUI::~BadClockUI() { |
@@ -54,9 +62,21 @@ void BadClockUI::PopulateClockStrings(base::DictionaryValue* load_time_data) { |
load_time_data->SetBoolean("overridable", false); |
load_time_data->SetBoolean("hide_primary_button", |
!controller_->CanLaunchDateAndTimeSettings()); |
- int heading_string = ssl_errors::IsUserClockInTheFuture(time_triggered_) |
- ? IDS_CLOCK_ERROR_AHEAD_HEADING |
- : IDS_CLOCK_ERROR_BEHIND_HEADING; |
+ int heading_string; |
+ switch (ssl_errors::GetClockState(time_triggered_, network_time_tracker_)) { |
+ case ssl_errors::CLOCK_STATE_NETWORK_FUTURE: |
+ case ssl_errors::CLOCK_STATE_BUILD_FUTURE: |
+ heading_string = IDS_CLOCK_ERROR_AHEAD_HEADING; |
+ break; |
+ case ssl_errors::CLOCK_STATE_NETWORK_PAST: |
+ case ssl_errors::CLOCK_STATE_BUILD_PAST: |
+ heading_string = IDS_CLOCK_ERROR_BEHIND_HEADING; |
+ break; |
+ case ssl_errors::CLOCK_STATE_NETWORK_OK: |
+ case ssl_errors::CLOCK_STATE_UNKNOWN: |
+ NOTREACHED(); |
+ heading_string = 0; |
estark
2016/03/11 22:00:05
It's against chromium style to handle NOTREACHED()
mab
2016/03/11 23:12:50
Done.
|
+ } |
load_time_data->SetString("tabTitle", |
l10n_util::GetStringUTF16(IDS_CLOCK_ERROR_TITLE)); |
load_time_data->SetString("heading", |