Index: chrome/common/localized_error.cc |
=================================================================== |
--- chrome/common/localized_error.cc (revision 192546) |
+++ chrome/common/localized_error.cc (working copy) |
@@ -50,15 +50,14 @@ |
enum NAV_SUGGESTIONS { |
SUGGEST_NONE = 0, |
SUGGEST_RELOAD = 1 << 0, |
- SUGGEST_HOSTNAME = 1 << 1, |
- SUGGEST_CHECK_CONNECTION = 1 << 2, |
- SUGGEST_DNS_CONFIG = 1 << 3, |
- SUGGEST_FIREWALL_CONFIG = 1 << 4, |
- SUGGEST_PROXY_CONFIG = 1 << 5, |
- SUGGEST_DISABLE_EXTENSION = 1 << 6, |
- SUGGEST_LEARNMORE = 1 << 7, |
- SUGGEST_VIEW_POLICIES = 1 << 8, |
- SUGGEST_CONTACT_ADMINISTRATOR = 1 << 9, |
+ SUGGEST_CHECK_CONNECTION = 1 << 1, |
+ SUGGEST_DNS_CONFIG = 1 << 2, |
+ SUGGEST_FIREWALL_CONFIG = 1 << 3, |
+ SUGGEST_PROXY_CONFIG = 1 << 4, |
+ SUGGEST_DISABLE_EXTENSION = 1 << 5, |
+ SUGGEST_LEARNMORE = 1 << 6, |
+ SUGGEST_VIEW_POLICIES = 1 << 7, |
+ SUGGEST_CONTACT_ADMINISTRATOR = 1 << 8, |
}; |
struct LocalizedErrorMap { |
@@ -277,7 +276,7 @@ |
IDS_ERRORPAGES_HEADING_BLOCKED, |
IDS_ERRORPAGES_SUMMARY_BLOCKED, |
IDS_ERRORPAGES_DETAILS_BLOCKED, |
- SUGGEST_DISABLE_EXTENSION, |
+ SUGGEST_RELOAD | SUGGEST_DISABLE_EXTENSION, |
}, |
{net::ERR_NETWORK_CHANGED, |
IDS_ERRORPAGES_TITLE_LOAD_FAILED, |
@@ -446,14 +445,6 @@ |
options.suggestions = SUGGEST_NONE; |
} |
- // If there are any suggestions other than reload, populate the suggestion |
- // heading (reload has a button, rather than a suggestion in the list). |
- if ((options.suggestions & ~SUGGEST_RELOAD) != SUGGEST_NONE) { |
- error_strings->SetString( |
- "suggestionsHeading", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_HEADING)); |
- } |
- |
string16 failed_url_string(UTF8ToUTF16(failed_url.spec())); |
// URLs are always LTR. |
if (rtl) |
@@ -498,6 +489,8 @@ |
error_strings->SetString("errorCode", |
l10n_util::GetStringFUTF16(IDS_ERRORPAGES_ERROR_CODE, error_string)); |
+ base::ListValue* suggestions = new base::ListValue(); |
+ |
// Platform specific instructions for diagnosing network issues on OSX and |
// Windows. |
#if defined(OS_MACOSX) || defined(OS_WIN) |
@@ -536,55 +529,50 @@ |
error_strings->Set("reload", reload_button); |
} |
- if (options.suggestions & SUGGEST_HOSTNAME) { |
- // Only show the "Go to hostname" suggestion if the failed_url has a path. |
- if (std::string() == failed_url.path()) { |
- DictionaryValue* suggest_home_page = new DictionaryValue; |
- suggest_home_page->SetString("suggestionsHomepageMsg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_HOMEPAGE)); |
- string16 homepage(ASCIIToUTF16(failed_url.GetWithEmptyPath().spec())); |
- // URLs are always LTR. |
- if (rtl) |
- base::i18n::WrapStringWithLTRFormatting(&homepage); |
- suggest_home_page->SetString("homePage", homepage); |
- // TODO(tc): we actually want the unicode hostname |
- suggest_home_page->SetString("hostName", failed_url.host()); |
- error_strings->Set("suggestionsHomepage", suggest_home_page); |
- } |
- } |
- |
if (options.suggestions & SUGGEST_CHECK_CONNECTION) { |
DictionaryValue* suggest_check_connection = new DictionaryValue; |
- suggest_check_connection->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION)); |
- error_strings->Set("suggestionsCheckConnection", suggest_check_connection); |
+ suggest_check_connection->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_HEADER)); |
+ suggest_check_connection->SetString("body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_BODY)); |
+ suggestions->Append(suggest_check_connection); |
} |
if (options.suggestions & SUGGEST_DNS_CONFIG) { |
DictionaryValue* suggest_dns_config = new DictionaryValue; |
- suggest_dns_config->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG)); |
- error_strings->Set("suggestionsDNSConfig", suggest_dns_config); |
+ suggest_dns_config->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_HEADER)); |
+ suggest_dns_config->SetString("body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_BODY)); |
+ suggestions->Append(suggest_dns_config); |
DictionaryValue* suggest_network_prediction = GetStandardMenuItemsText(); |
- suggest_network_prediction->SetString("msg", |
+ suggest_network_prediction->SetString("header", |
l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION)); |
+ IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_HEADER)); |
+ suggest_network_prediction->SetString("body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_BODY)); |
suggest_network_prediction->SetString( |
"noNetworkPredictionTitle", |
l10n_util::GetStringUTF16( |
IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION)); |
- error_strings->Set("suggestionsDisableNetworkPrediction", |
- suggest_network_prediction); |
+ suggestions->Append(suggest_network_prediction); |
} |
if (options.suggestions & SUGGEST_FIREWALL_CONFIG) { |
DictionaryValue* suggest_firewall_config = new DictionaryValue; |
- suggest_firewall_config->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG)); |
- suggest_firewall_config->SetString("productName", |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); |
- error_strings->Set("suggestionsFirewallConfig", suggest_firewall_config); |
+ suggest_firewall_config->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_HEADER)); |
+ suggest_firewall_config->SetString("body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_BODY)); |
+ suggestions->Append(suggest_firewall_config); |
} |
if (options.suggestions & SUGGEST_PROXY_CONFIG) { |
@@ -593,8 +581,11 @@ |
#else |
DictionaryValue* suggest_proxy_config = GetStandardMenuItemsText(); |
#endif // defined(OS_CHROMEOS) |
- suggest_proxy_config->SetString("msg", |
- l10n_util::GetStringFUTF16(IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG, |
+ suggest_proxy_config->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_HEADER)); |
+ suggest_proxy_config->SetString("body", |
+ l10n_util::GetStringFUTF16(IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_BODY, |
l10n_util::GetStringUTF16( |
IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM))); |
#if defined(OS_CHROMEOS) |
@@ -613,17 +604,41 @@ |
suggest_proxy_config->SetString("proxyTitle", |
l10n_util::GetStringUTF16(IDS_OPTIONS_PROXIES_CONFIGURE_BUTTON)); |
#endif // defined(OS_CHROMEOS) |
- error_strings->Set("suggestionsProxyConfig", suggest_proxy_config); |
+ |
+ suggestions->Append(suggest_proxy_config); |
} |
if (options.suggestions & SUGGEST_DISABLE_EXTENSION) { |
- DictionaryValue* suggestion = new DictionaryValue; |
- suggestion->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_DISABLE_EXTENSION)); |
- suggestion->SetString("reloadUrl", failed_url_string); |
- error_strings->Set("suggestionsDisableExtension", suggestion); |
+ DictionaryValue* suggest_disable_extension = new DictionaryValue; |
+ // There's only a header for this suggestion. |
+ suggest_disable_extension->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_DISABLE_EXTENSION_HEADER)); |
+ suggestions->Append(suggest_disable_extension); |
} |
+ if (options.suggestions & SUGGEST_VIEW_POLICIES) { |
+ DictionaryValue* suggest_view_policies = new DictionaryValue; |
+ suggest_view_policies->SetString( |
+ "header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_HEADER)); |
+ suggest_view_policies->SetString( |
+ "body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_BODY)); |
+ suggestions->Append(suggest_view_policies); |
+ } |
+ |
+ if (options.suggestions & SUGGEST_CONTACT_ADMINISTRATOR) { |
+ DictionaryValue* suggest_contant_administrator = new DictionaryValue; |
+ suggest_contant_administrator->SetString( |
+ "body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMINISTRATOR_BODY)); |
+ suggestions->Append(suggest_contant_administrator); |
+ } |
+ |
if (options.suggestions & SUGGEST_LEARNMORE) { |
GURL learn_more_url; |
switch (options.error_code) { |
@@ -645,28 +660,15 @@ |
learn_more_url = learn_more_url.ReplaceComponents(repl); |
DictionaryValue* suggest_learn_more = new DictionaryValue; |
- suggest_learn_more->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_LEARNMORE)); |
+ // There's only a body for this suggestion. |
+ suggest_learn_more->SetString("body", |
+ l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_LEARNMORE_BODY)); |
suggest_learn_more->SetString("learnMoreUrl", learn_more_url.spec()); |
- error_strings->Set("suggestionsLearnMore", suggest_learn_more); |
+ suggestions->Append(suggest_learn_more); |
} |
} |
- if (options.suggestions & SUGGEST_VIEW_POLICIES) { |
- DictionaryValue* suggestion = new DictionaryValue; |
- suggestion->SetString("msg", |
- l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES)); |
- error_strings->Set("suggestionsViewPolicies", suggestion); |
- } |
- |
- if (options.suggestions & SUGGEST_CONTACT_ADMINISTRATOR) { |
- DictionaryValue* suggestion = new DictionaryValue; |
- suggestion->SetString("msg", |
- l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMINISTRATOR)); |
- error_strings->Set("suggestionsContactAdministrator", suggestion); |
- } |
+ error_strings->Set("suggestions", suggestions); |
} |
string16 LocalizedError::GetErrorDetails(const WebKit::WebURLError& error) { |
@@ -738,7 +740,7 @@ |
DictionaryValue* suggest_learn_more = new DictionaryValue(); |
suggest_learn_more->SetString("msg", |
l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_LEARNMORE)); |
+ IDS_ERRORPAGES_SUGGESTION_LEARNMORE_BODY)); |
suggest_learn_more->SetString("learnMoreUrl", learn_more_url.spec()); |
error_strings->Set("suggestionsLearnMore", suggest_learn_more); |
#endif // defined(OS_CHROMEOS) |