Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: components/security_interstitials/core/bad_clock_ui.cc

Issue 1772143002: Use network time for bad clock interstitial. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IOS Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/security_interstitials/core/bad_clock_ui.h" 5 #include "components/security_interstitials/core/bad_clock_ui.h"
6 6
7 #include "base/i18n/time_formatting.h" 7 #include "base/i18n/time_formatting.h"
8 #include "components/security_interstitials/core/common_string_util.h" 8 #include "components/security_interstitials/core/common_string_util.h"
9 #include "components/security_interstitials/core/metrics_helper.h" 9 #include "components/security_interstitials/core/metrics_helper.h"
10 #include "grit/components_strings.h" 10 #include "grit/components_strings.h"
11 #include "ui/base/l10n/l10n_util.h" 11 #include "ui/base/l10n/l10n_util.h"
12 12
13 namespace network_time {
14 class NetworkTimeTracker;
15 }
16
13 namespace security_interstitials { 17 namespace security_interstitials {
14 18
15 BadClockUI::BadClockUI(const GURL& request_url, 19 BadClockUI::BadClockUI(const GURL& request_url,
16 int cert_error, 20 int cert_error,
17 const net::SSLInfo& ssl_info, 21 const net::SSLInfo& ssl_info,
18 const base::Time& time_triggered, 22 const base::Time& time_triggered,
23 const network_time::NetworkTimeTracker* network_time,
19 const std::string& languages, 24 const std::string& languages,
20 ControllerClient* controller) 25 ControllerClient* controller)
21 : request_url_(request_url), 26 : request_url_(request_url),
22 cert_error_(cert_error), 27 cert_error_(cert_error),
23 ssl_info_(ssl_info), 28 ssl_info_(ssl_info),
24 time_triggered_(time_triggered), 29 time_triggered_(time_triggered),
25 languages_(languages), 30 languages_(languages),
26 controller_(controller) { 31 controller_(controller),
32 network_time_(network_time) {
27 controller_->metrics_helper()->RecordUserInteraction( 33 controller_->metrics_helper()->RecordUserInteraction(
28 security_interstitials::MetricsHelper::TOTAL_VISITS); 34 security_interstitials::MetricsHelper::TOTAL_VISITS);
29 35
30 // TODO(felt): Separate the clock statistics from the main ssl statistics. 36 // TODO(felt): Separate the clock statistics from the main ssl statistics.
31 ssl_errors::RecordUMAStatistics(false, time_triggered_, request_url_, 37 ssl_errors::RecordUMAStatistics(false, time_triggered_, network_time_,
32 cert_error_, *ssl_info_.cert.get()); 38 request_url_, cert_error_,
39 *ssl_info_.cert.get());
33 } 40 }
34 41
35 BadClockUI::~BadClockUI() { 42 BadClockUI::~BadClockUI() {
36 controller_->metrics_helper()->RecordShutdownMetrics(); 43 controller_->metrics_helper()->RecordShutdownMetrics();
37 } 44 }
38 45
39 void BadClockUI::PopulateStringsForHTML(base::DictionaryValue* load_time_data) { 46 void BadClockUI::PopulateStringsForHTML(base::DictionaryValue* load_time_data) {
40 CHECK(load_time_data); 47 CHECK(load_time_data);
41 48
42 // Shared with other SSL errors. 49 // Shared with other SSL errors.
43 common_string_util::PopulateSSLLayoutStrings(cert_error_, load_time_data); 50 common_string_util::PopulateSSLLayoutStrings(cert_error_, load_time_data);
44 common_string_util::PopulateSSLDebuggingStrings(ssl_info_, time_triggered_, 51 common_string_util::PopulateSSLDebuggingStrings(ssl_info_, time_triggered_,
45 load_time_data); 52 load_time_data);
46 53
47 // Clock-specific strings. 54 // Clock-specific strings.
48 PopulateClockStrings(load_time_data); 55 PopulateClockStrings(load_time_data);
49 load_time_data->SetString("finalParagraph", std::string()); // Placeholder. 56 load_time_data->SetString("finalParagraph", std::string()); // Placeholder.
50 } 57 }
51 58
52 void BadClockUI::PopulateClockStrings(base::DictionaryValue* load_time_data) { 59 void BadClockUI::PopulateClockStrings(base::DictionaryValue* load_time_data) {
53 load_time_data->SetBoolean("bad_clock", true); 60 load_time_data->SetBoolean("bad_clock", true);
54 load_time_data->SetBoolean("overridable", false); 61 load_time_data->SetBoolean("overridable", false);
55 load_time_data->SetBoolean("hide_primary_button", 62 load_time_data->SetBoolean("hide_primary_button",
56 !controller_->CanLaunchDateAndTimeSettings()); 63 !controller_->CanLaunchDateAndTimeSettings());
57 int heading_string = ssl_errors::IsUserClockInTheFuture(time_triggered_) 64 int heading_string = ssl_errors::IsUserClockAhead(time_triggered_,
58 ? IDS_CLOCK_ERROR_AHEAD_HEADING 65 network_time_)
59 : IDS_CLOCK_ERROR_BEHIND_HEADING; 66 ? IDS_CLOCK_ERROR_AHEAD_HEADING : IDS_CLOCK_ERROR_BEHIND_HEADING;
60 load_time_data->SetString("tabTitle", 67 load_time_data->SetString("tabTitle",
61 l10n_util::GetStringUTF16(IDS_CLOCK_ERROR_TITLE)); 68 l10n_util::GetStringUTF16(IDS_CLOCK_ERROR_TITLE));
62 load_time_data->SetString("heading", 69 load_time_data->SetString("heading",
63 l10n_util::GetStringUTF16(heading_string)); 70 l10n_util::GetStringUTF16(heading_string));
64 load_time_data->SetString( 71 load_time_data->SetString(
65 "primaryParagraph", 72 "primaryParagraph",
66 l10n_util::GetStringFUTF16( 73 l10n_util::GetStringFUTF16(
67 IDS_CLOCK_ERROR_PRIMARY_PARAGRAPH, 74 IDS_CLOCK_ERROR_PRIMARY_PARAGRAPH,
68 common_string_util::GetFormattedHostName(request_url_, languages_), 75 common_string_util::GetFormattedHostName(request_url_, languages_),
69 base::TimeFormatFriendlyDateAndTime(time_triggered_))); 76 base::TimeFormatFriendlyDateAndTime(time_triggered_)));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 NOTREACHED() << "Unsupported command: " << command; 117 NOTREACHED() << "Unsupported command: " << command;
111 case CMD_ERROR: 118 case CMD_ERROR:
112 case CMD_TEXT_FOUND: 119 case CMD_TEXT_FOUND:
113 case CMD_TEXT_NOT_FOUND: 120 case CMD_TEXT_NOT_FOUND:
114 // Commands are only for testing. 121 // Commands are only for testing.
115 NOTREACHED() << "Unexpected command: " << command; 122 NOTREACHED() << "Unexpected command: " << command;
116 } 123 }
117 } 124 }
118 125
119 } // security_interstitials 126 } // security_interstitials
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698