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

Side by Side Diff: chrome/browser/page_info_model.cc

Issue 3367007: Page info model now shows red skull and crossbones on SECURITY_STYLE_AUTHENTI... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/page_info_model.h ('k') | chrome/browser/views/page_info_bubble_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/page_info_model.h" 5 #include "chrome/browser/page_info_model.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); 87 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY));
88 } else { 88 } else {
89 description.assign(l10n_util::GetStringFUTF16( 89 description.assign(l10n_util::GetStringFUTF16(
90 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name)); 90 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name));
91 } 91 }
92 } 92 }
93 } else { 93 } else {
94 // HTTP or bad HTTPS. 94 // HTTP or bad HTTPS.
95 description.assign(l10n_util::GetStringUTF16( 95 description.assign(l10n_util::GetStringUTF16(
96 IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY)); 96 IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY));
97 state = SECTION_STATE_ERROR; 97 state = ssl.security_style() == SECURITY_STYLE_UNAUTHENTICATED ?
98 SECTION_STATE_WARNING_MAJOR : SECTION_STATE_ERROR;
98 } 99 }
99 sections_.push_back(SectionInfo( 100 sections_.push_back(SectionInfo(
100 state, 101 state,
101 l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_IDENTITY_TITLE), 102 l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_IDENTITY_TITLE),
102 headline, 103 headline,
103 description, 104 description,
104 SECTION_INFO_IDENTITY)); 105 SECTION_INFO_IDENTITY));
105 106
106 // Connection section. 107 // Connection section.
107 // We consider anything less than 80 bits encryption to be weak encryption. 108 // We consider anything less than 80 bits encryption to be weak encryption.
108 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and 109 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and
109 // weakly encrypted connections. 110 // weakly encrypted connections.
110 state = SECTION_STATE_OK; 111 state = SECTION_STATE_OK;
111 headline.clear(); 112 headline.clear();
112 description.clear(); 113 description.clear();
113 if (ssl.security_bits() < 0) { 114 if (ssl.security_bits() < 0) {
114 // Security strength is unknown. Say nothing. 115 // Security strength is unknown. Say nothing.
115 state = SECTION_STATE_ERROR; 116 state = SECTION_STATE_ERROR;
116 } else if (ssl.security_bits() == 0) { 117 } else if (ssl.security_bits() == 0) {
117 state = SECTION_STATE_ERROR; 118 state = ssl.security_style() == SECURITY_STYLE_UNAUTHENTICATED ?
119 SECTION_STATE_WARNING_MAJOR : SECTION_STATE_ERROR;
118 description.assign(l10n_util::GetStringFUTF16( 120 description.assign(l10n_util::GetStringFUTF16(
119 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT, 121 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT,
120 subject_name)); 122 subject_name));
121 } else if (ssl.security_bits() < 80) { 123 } else if (ssl.security_bits() < 80) {
122 state = SECTION_STATE_ERROR; 124 state = SECTION_STATE_ERROR;
123 description.assign(l10n_util::GetStringFUTF16( 125 description.assign(l10n_util::GetStringFUTF16(
124 IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT, 126 IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT,
125 subject_name)); 127 subject_name));
126 } else { 128 } else {
127 description.assign(l10n_util::GetStringFUTF16( 129 description.assign(l10n_util::GetStringFUTF16(
128 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT, 130 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT,
129 subject_name, 131 subject_name,
130 base::IntToString16(ssl.security_bits()))); 132 base::IntToString16(ssl.security_bits())));
131 if (ssl.displayed_insecure_content() || ssl.ran_insecure_content()) { 133 if (ssl.displayed_insecure_content() || ssl.ran_insecure_content()) {
134 // The old SSL dialog only had good and bad state, so for the old
135 // implementation we raise an error on finding mixed content. The new
136 // SSL info bubble has a warning state for displaying insecure content,
137 // so we check. The command line check will go away once we eliminate
138 // the old dialogs.
132 const CommandLine* command_line(CommandLine::ForCurrentProcess()); 139 const CommandLine* command_line(CommandLine::ForCurrentProcess());
133 if (command_line->HasSwitch(switches::kEnableNewPageInfoBubble)) 140 if (command_line->HasSwitch(switches::kEnableNewPageInfoBubble) &&
134 state = SECTION_STATE_WARNING; 141 !ssl.ran_insecure_content()) {
135 else 142 state = SECTION_STATE_WARNING_MINOR;
143 } else {
136 state = SECTION_STATE_ERROR; 144 state = SECTION_STATE_ERROR;
145 }
137 description.assign(l10n_util::GetStringFUTF16( 146 description.assign(l10n_util::GetStringFUTF16(
138 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK, 147 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK,
139 description, 148 description,
140 l10n_util::GetStringUTF16(ssl.ran_insecure_content() ? 149 l10n_util::GetStringUTF16(ssl.ran_insecure_content() ?
141 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR : 150 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR :
142 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING))); 151 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING)));
143 } 152 }
144 } 153 }
145 154
146 uint16 cipher_suite = 155 uint16 cipher_suite =
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 return; 237 return;
229 } 238 }
230 239
231 bool visited_before_today = false; 240 bool visited_before_today = false;
232 if (count) { 241 if (count) {
233 base::Time today = base::Time::Now().LocalMidnight(); 242 base::Time today = base::Time::Now().LocalMidnight();
234 base::Time first_visit_midnight = first_visit.LocalMidnight(); 243 base::Time first_visit_midnight = first_visit.LocalMidnight();
235 visited_before_today = (first_visit_midnight < today); 244 visited_before_today = (first_visit_midnight < today);
236 } 245 }
237 246
247 // We only show the Site Information heading for the new dialogs.
248 string16 title;
249 const CommandLine* command_line(CommandLine::ForCurrentProcess());
250 if (command_line->HasSwitch(switches::kEnableNewPageInfoBubble))
251 title = l10n_util::GetStringUTF16(IDS_PAGE_INFO_SITE_INFO_TITLE);
252
238 if (!visited_before_today) { 253 if (!visited_before_today) {
239 sections_.push_back(SectionInfo( 254 sections_.push_back(SectionInfo(
240 SECTION_STATE_ERROR, 255 SECTION_STATE_ERROR,
241 l10n_util::GetStringUTF16( 256 l10n_util::GetStringUTF16(
242 IDS_PAGE_INFO_SECURITY_TAB_PERSONAL_HISTORY_TITLE), 257 IDS_PAGE_INFO_SECURITY_TAB_PERSONAL_HISTORY_TITLE),
243 string16(), 258 title,
244 l10n_util::GetStringUTF16( 259 l10n_util::GetStringUTF16(
245 IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY), 260 IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY),
246 SECTION_INFO_FIRST_VISIT)); 261 SECTION_INFO_FIRST_VISIT));
247 } else { 262 } else {
248 sections_.push_back(SectionInfo( 263 sections_.push_back(SectionInfo(
249 SECTION_STATE_OK, 264 SECTION_STATE_OK,
250 l10n_util::GetStringUTF16( 265 l10n_util::GetStringUTF16(
251 IDS_PAGE_INFO_SECURITY_TAB_PERSONAL_HISTORY_TITLE), 266 IDS_PAGE_INFO_SECURITY_TAB_PERSONAL_HISTORY_TITLE),
252 string16(), 267 title,
253 l10n_util::GetStringFUTF16( 268 l10n_util::GetStringFUTF16(
254 IDS_PAGE_INFO_SECURITY_TAB_VISITED_BEFORE_TODAY, 269 IDS_PAGE_INFO_SECURITY_TAB_VISITED_BEFORE_TODAY,
255 WideToUTF16(base::TimeFormatShortDate(first_visit))), 270 WideToUTF16(base::TimeFormatShortDate(first_visit))),
256 SECTION_INFO_FIRST_VISIT)); 271 SECTION_INFO_FIRST_VISIT));
257 } 272 }
258 observer_->ModelChanged(); 273 observer_->ModelChanged();
259 } 274 }
260 275
261 // static 276 // static
262 void PageInfoModel::RegisterPrefs(PrefService* prefs) { 277 void PageInfoModel::RegisterPrefs(PrefService* prefs) {
263 prefs->RegisterDictionaryPref(prefs::kPageInfoWindowPlacement); 278 prefs->RegisterDictionaryPref(prefs::kPageInfoWindowPlacement);
264 } 279 }
265 280
266 PageInfoModel::PageInfoModel() { 281 PageInfoModel::PageInfoModel() {
267 } 282 }
OLDNEW
« no previous file with comments | « chrome/browser/page_info_model.h ('k') | chrome/browser/views/page_info_bubble_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698