Chromium Code Reviews| Index: chrome/browser/ssl/captive_portal_blocking_page.cc |
| diff --git a/chrome/browser/ssl/captive_portal_blocking_page.cc b/chrome/browser/ssl/captive_portal_blocking_page.cc |
| index 9467695de15947bc595a6c0c2a2e254c10144936..6c539d88efbe6743ab2acbfc765af021d9f6aa93 100644 |
| --- a/chrome/browser/ssl/captive_portal_blocking_page.cc |
| +++ b/chrome/browser/ssl/captive_portal_blocking_page.cc |
| @@ -7,12 +7,14 @@ |
| #include "base/i18n/rtl.h" |
| #include "base/metrics/histogram.h" |
| #include "base/prefs/pref_service.h" |
| +#include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/values.h" |
| #include "chrome/browser/captive_portal/captive_portal_tab_helper.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/captive_portal/captive_portal_detector.h" |
| +#include "components/wifi/wifi_service.h" |
| #include "content/public/browser/web_contents.h" |
| #include "grit/generated_resources.h" |
| #include "net/base/net_util.h" |
| @@ -47,6 +49,22 @@ bool IsWifiConnection() { |
| net::NetworkChangeNotifier::CONNECTION_WIFI; |
| } |
| +std::string GetWiFiName() { |
| + std::string ssid; |
| +#if defined(OS_WIN) || defined(OS_MACOSX) |
| + scoped_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create()); |
| + wifi_service->Initialize(NULL); |
| + std::string error; |
| + wifi_service->GetConnectedNetworkSSID(&ssid, &error); |
| + if (!error.empty()) |
| + return ""; |
| +#endif |
| + // TODO(meacer): Handle non UTF8 SSIDs. |
| + if (!base::IsStringUTF8(ssid)) |
| + return ""; |
| + return ssid; |
| +} |
| + |
| const char kOpenLoginPageCommand[] = "openLoginPage"; |
| } // namespace |
| @@ -109,12 +127,27 @@ void CaptivePortalBlockingPage::PopulateInterstitialStrings( |
| // Captive portal may intercept requests without HTTP redirects, in which |
| // case the login url would be the same as the captive portal detection url. |
| // Don't show the login url in that case. |
| - load_time_data->SetString( |
| - "primaryParagraph", |
| - l10n_util::GetStringUTF16( |
| - is_wifi_connection_ ? |
| - IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIFI : |
| - IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIRED)); |
| + if (!is_wifi_connection_) { |
|
felt
2015/01/29 22:59:57
nit: kind of a weird construction -- why not the o
meacer
2015/01/29 23:53:29
Done.
|
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringUTF16( |
| + IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIRED)); |
| + } else { |
| + if (wifi_ssid_.empty()) |
| + wifi_ssid_ = GetWiFiName(); |
| + if (!wifi_ssid_.empty()) { |
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringFUTF16( |
| + IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIFI_SSID, |
| + net::EscapeForHTML(base::UTF8ToUTF16(wifi_ssid_)))); |
| + } else { |
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringUTF16( |
| + IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIFI)); |
| + } |
| + } |
| } else { |
| std::string languages; |
| Profile* profile = Profile::FromBrowserContext( |
| @@ -125,13 +158,30 @@ void CaptivePortalBlockingPage::PopulateInterstitialStrings( |
| base::string16 login_host = net::IDNToUnicode(login_url_.host(), languages); |
| if (base::i18n::IsRTL()) |
| base::i18n::WrapStringWithLTRFormatting(&login_host); |
| - load_time_data->SetString( |
| - "primaryParagraph", |
| - l10n_util::GetStringFUTF16( |
| - is_wifi_connection_ ? |
| - IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI : |
| - IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIRED, |
| - login_host)); |
| + |
| + if (!is_wifi_connection_) { |
|
felt
2015/01/29 22:59:57
same here
|
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringFUTF16(IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIRED, |
| + login_host)); |
| + } else { |
| + if (wifi_ssid_.empty()) |
| + wifi_ssid_ = GetWiFiName(); |
| + if (!wifi_ssid_.empty()) { |
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringFUTF16( |
| + IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI_SSID, |
| + net::EscapeForHTML(base::UTF8ToUTF16(wifi_ssid_)), |
| + login_host)); |
| + } else { |
| + load_time_data->SetString( |
| + "primaryParagraph", |
| + l10n_util::GetStringFUTF16( |
| + IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI, |
| + login_host)); |
| + } |
| + } |
| } |
| // Fill the empty strings to avoid getting debug warnings. |