OLD | NEW |
---|---|
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <string> | 10 #include <string> |
11 #include <utility> | 11 #include <utility> |
12 #include <vector> | |
12 | 13 |
13 #include "base/base_paths.h" | 14 #include "base/base_paths.h" |
14 #include "base/bind.h" | 15 #include "base/bind.h" |
15 #include "base/command_line.h" | 16 #include "base/command_line.h" |
16 #include "base/location.h" | 17 #include "base/location.h" |
17 #include "base/logging.h" | 18 #include "base/logging.h" |
18 #include "base/macros.h" | 19 #include "base/macros.h" |
19 #include "base/metrics/histogram.h" | 20 #include "base/metrics/histogram.h" |
20 #include "base/process/process_info.h" | 21 #include "base/process/process_info.h" |
21 #include "base/profiler/scoped_tracker.h" | 22 #include "base/profiler/scoped_tracker.h" |
22 #include "base/single_thread_task_runner.h" | 23 #include "base/single_thread_task_runner.h" |
24 #include "base/strings/string16.h" | |
23 #include "base/strings/string_number_conversions.h" | 25 #include "base/strings/string_number_conversions.h" |
24 #include "base/strings/string_util.h" | 26 #include "base/strings/string_util.h" |
25 #include "base/strings/stringprintf.h" | 27 #include "base/strings/stringprintf.h" |
26 #include "base/strings/utf_string_conversions.h" | 28 #include "base/strings/utf_string_conversions.h" |
29 #include "base/strings/utf_string_conversions.h" | |
davidben
2016/04/11 16:47:01
Duplicate include
lgarron
2016/04/12 02:25:08
*shakes fist at C++ and shakes hand with `goimport
| |
27 #include "base/thread_task_runner_handle.h" | 30 #include "base/thread_task_runner_handle.h" |
28 #include "base/threading/thread.h" | 31 #include "base/threading/thread.h" |
29 #include "base/threading/thread_restrictions.h" | 32 #include "base/threading/thread_restrictions.h" |
30 #include "base/time/time.h" | 33 #include "base/time/time.h" |
31 #include "build/build_config.h" | 34 #include "build/build_config.h" |
32 #include "chrome/app/chrome_command_ids.h" | 35 #include "chrome/app/chrome_command_ids.h" |
33 #include "chrome/browser/app_mode/app_mode_utils.h" | 36 #include "chrome/browser/app_mode/app_mode_utils.h" |
34 #include "chrome/browser/autofill/personal_data_manager_factory.h" | 37 #include "chrome/browser/autofill/personal_data_manager_factory.h" |
35 #include "chrome/browser/background/background_contents.h" | 38 #include "chrome/browser/background/background_contents.h" |
36 #include "chrome/browser/background/background_contents_service.h" | 39 #include "chrome/browser/background/background_contents_service.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
202 #include "content/public/common/webplugininfo.h" | 205 #include "content/public/common/webplugininfo.h" |
203 #include "extensions/browser/extension_prefs.h" | 206 #include "extensions/browser/extension_prefs.h" |
204 #include "extensions/browser/extension_registry.h" | 207 #include "extensions/browser/extension_registry.h" |
205 #include "extensions/browser/extension_system.h" | 208 #include "extensions/browser/extension_system.h" |
206 #include "extensions/common/constants.h" | 209 #include "extensions/common/constants.h" |
207 #include "extensions/common/extension.h" | 210 #include "extensions/common/extension.h" |
208 #include "extensions/common/manifest_handlers/background_info.h" | 211 #include "extensions/common/manifest_handlers/background_info.h" |
209 #include "net/base/filename_util.h" | 212 #include "net/base/filename_util.h" |
210 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 213 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
211 #include "net/cookies/cookie_monster.h" | 214 #include "net/cookies/cookie_monster.h" |
215 #include "net/ssl/ssl_cipher_suite_names.h" | |
216 #include "net/ssl/ssl_connection_status_flags.h" | |
212 #include "net/url_request/url_request_context.h" | 217 #include "net/url_request/url_request_context.h" |
213 #include "third_party/WebKit/public/web/WebWindowFeatures.h" | 218 #include "third_party/WebKit/public/web/WebWindowFeatures.h" |
214 #include "ui/base/l10n/l10n_util.h" | 219 #include "ui/base/l10n/l10n_util.h" |
215 #include "ui/base/window_open_disposition.h" | 220 #include "ui/base/window_open_disposition.h" |
216 #include "ui/gfx/geometry/point.h" | 221 #include "ui/gfx/geometry/point.h" |
217 #include "ui/shell_dialogs/selected_file_info.h" | 222 #include "ui/shell_dialogs/selected_file_info.h" |
218 | 223 |
219 #if defined(OS_WIN) | 224 #if defined(OS_WIN) |
220 #include <windows.h> | 225 #include <windows.h> |
221 #include <shellapi.h> | 226 #include <shellapi.h> |
(...skipping 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1395 SecurityStateModel::NO_DEPRECATED_SHA1) { | 1400 SecurityStateModel::NO_DEPRECATED_SHA1) { |
1396 security_style_explanations->secure_explanations.push_back( | 1401 security_style_explanations->secure_explanations.push_back( |
1397 content::SecurityStyleExplanation( | 1402 content::SecurityStyleExplanation( |
1398 l10n_util::GetStringUTF8(IDS_VALID_SERVER_CERTIFICATE), | 1403 l10n_util::GetStringUTF8(IDS_VALID_SERVER_CERTIFICATE), |
1399 l10n_util::GetStringUTF8( | 1404 l10n_util::GetStringUTF8( |
1400 IDS_VALID_SERVER_CERTIFICATE_DESCRIPTION), | 1405 IDS_VALID_SERVER_CERTIFICATE_DESCRIPTION), |
1401 security_info.cert_id)); | 1406 security_info.cert_id)); |
1402 } | 1407 } |
1403 } | 1408 } |
1404 | 1409 |
1405 if (security_info.is_secure_protocol_and_ciphersuite) { | 1410 int ssl_version = |
1411 net::SSLConnectionStatusToVersion(security_info.connection_status); | |
1412 const char* protocol; | |
1413 net::SSLVersionToString(&protocol, ssl_version); | |
1414 | |
1415 const char* key_exchange; | |
1416 const char* cipher; | |
1417 const char* mac; | |
1418 bool is_aead; | |
1419 uint16_t cipher_suite = | |
1420 net::SSLConnectionStatusToCipherSuite(security_info.connection_status); | |
1421 net::SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, &is_aead, | |
1422 cipher_suite); | |
1423 | |
1424 base::string16 protocol_name = base::ASCIIToUTF16(protocol); | |
1425 base::string16 key_exchange_name = base::ASCIIToUTF16(key_exchange); | |
1426 const base::string16 cipher_suite_name = | |
1427 (mac == NULL) ? base::ASCIIToUTF16(cipher) | |
1428 : l10n_util::GetStringFUTF16(IDS_CIPHERSUITE_WITH_MAC, | |
1429 base::ASCIIToUTF16(cipher), | |
1430 base::ASCIIToUTF16(mac)); | |
1431 | |
1432 if (security_info.obsolete_ssl_status == net::OBSOLETE_SSL_NONE) { | |
1406 security_style_explanations->secure_explanations.push_back( | 1433 security_style_explanations->secure_explanations.push_back( |
1407 content::SecurityStyleExplanation( | 1434 content::SecurityStyleExplanation( |
1408 l10n_util::GetStringUTF8(IDS_SECURE_PROTOCOL_AND_CIPHERSUITE), | 1435 l10n_util::GetStringUTF8(IDS_SECURE_PROTOCOL_AND_CIPHERSUITE), |
1409 l10n_util::GetStringUTF8( | 1436 l10n_util::GetStringFUTF8( |
1410 IDS_SECURE_PROTOCOL_AND_CIPHERSUITE_DESCRIPTION))); | 1437 IDS_SECURE_PROTOCOL_AND_CIPHERSUITE_DESCRIPTION, protocol_name, |
1438 key_exchange_name, cipher_suite_name))); | |
1439 } else if (security_info.cert_id != 0) { | |
1440 std::vector<base::string16> summary_replacements; | |
1441 std::vector<base::string16> description_replacements; | |
1442 | |
1443 if (security_info.obsolete_ssl_status & net::OBSOLETE_SSL_MASK_PROTOCOL) { | |
1444 description_replacements.push_back( | |
1445 l10n_util::GetStringUTF16(IDS_SSL_AN_OBSOLETE)); | |
1446 summary_replacements.push_back( | |
1447 l10n_util::GetStringUTF16(IDS_SSL_PROTOCOL)); | |
1448 } else { | |
1449 description_replacements.push_back( | |
1450 l10n_util::GetStringUTF16(IDS_SSL_A_MODERN)); | |
1451 } | |
1452 description_replacements.push_back(protocol_name); | |
1453 | |
1454 if (security_info.obsolete_ssl_status & | |
1455 net::OBSOLETE_SSL_MASK_KEY_EXCHANGE) { | |
1456 description_replacements.push_back( | |
1457 l10n_util::GetStringUTF16(IDS_SSL_AN_OBSOLETE)); | |
1458 summary_replacements.push_back( | |
1459 l10n_util::GetStringUTF16(IDS_SSL_KEY_EXCHANGE)); | |
1460 } else { | |
1461 description_replacements.push_back( | |
1462 l10n_util::GetStringUTF16(IDS_SSL_A_MODERN)); | |
1463 } | |
1464 description_replacements.push_back(key_exchange_name); | |
1465 | |
1466 if (security_info.obsolete_ssl_status & | |
1467 net::OBSOLETE_SSL_MASK_CIPHER_SUITE) { | |
1468 description_replacements.push_back( | |
1469 l10n_util::GetStringUTF16(IDS_SSL_AN_OBSOLETE)); | |
1470 summary_replacements.push_back( | |
1471 l10n_util::GetStringUTF16(IDS_SSL_CIPHER_SUITE)); | |
1472 } else { | |
1473 description_replacements.push_back( | |
1474 l10n_util::GetStringUTF16(IDS_SSL_A_MODERN)); | |
1475 } | |
1476 description_replacements.push_back(cipher_suite_name); | |
1477 | |
1478 int summary_message_id; | |
1479 switch (summary_replacements.size()) { | |
1480 case 1: | |
1481 summary_message_id = IDS_SINGLE_OBSOLETE_TLS_SETTING; | |
1482 break; | |
1483 case 2: | |
1484 summary_message_id = IDS_TWO_OBSOLETE_TLS_SETTINGS; | |
1485 break; | |
1486 case 3: | |
1487 summary_message_id = IDS_THREE_OBSOLETE_TLS_SETTINGS; | |
1488 break; | |
1489 default: | |
1490 summary_message_id = 0; | |
1491 NOTREACHED(); | |
1492 } | |
1493 | |
1494 security_style_explanations->info_explanations.push_back( | |
1495 content::SecurityStyleExplanation( | |
1496 base::UTF16ToUTF8(l10n_util::GetStringFUTF16( | |
1497 summary_message_id, summary_replacements, nullptr)), | |
1498 base::UTF16ToUTF8(l10n_util::GetStringFUTF16( | |
1499 IDS_OBSOLETE_SSL_DESCRIPTION, description_replacements, | |
1500 nullptr)))); | |
1411 } | 1501 } |
1412 | 1502 |
1413 return security_style; | 1503 return security_style; |
1414 } | 1504 } |
1415 | 1505 |
1416 void Browser::ShowCertificateViewerInDevTools( | 1506 void Browser::ShowCertificateViewerInDevTools( |
1417 content::WebContents* web_contents, int cert_id) { | 1507 content::WebContents* web_contents, int cert_id) { |
1418 DevToolsWindow* devtools_window = | 1508 DevToolsWindow* devtools_window = |
1419 DevToolsWindow::GetInstanceForInspectedWebContents(web_contents); | 1509 DevToolsWindow::GetInstanceForInspectedWebContents(web_contents); |
1420 if (devtools_window) | 1510 if (devtools_window) |
(...skipping 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2744 if (contents && !allow_js_access) { | 2834 if (contents && !allow_js_access) { |
2745 contents->web_contents()->GetController().LoadURL( | 2835 contents->web_contents()->GetController().LoadURL( |
2746 target_url, | 2836 target_url, |
2747 content::Referrer(), | 2837 content::Referrer(), |
2748 ui::PAGE_TRANSITION_LINK, | 2838 ui::PAGE_TRANSITION_LINK, |
2749 std::string()); // No extra headers. | 2839 std::string()); // No extra headers. |
2750 } | 2840 } |
2751 | 2841 |
2752 return contents != NULL; | 2842 return contents != NULL; |
2753 } | 2843 } |
OLD | NEW |