Index: trunk/src/chrome/common/localized_error.cc |
=================================================================== |
--- trunk/src/chrome/common/localized_error.cc (revision 254240) |
+++ trunk/src/chrome/common/localized_error.cc (working copy) |
@@ -23,6 +23,7 @@ |
#include "third_party/WebKit/public/platform/WebURLError.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/webui/web_ui_util.h" |
+#include "url/gurl.h" |
#if defined(OS_WIN) |
#include "base/win/windows_version.h" |
@@ -485,66 +486,10 @@ |
return "icon-generic"; |
} |
-// Adds a suggestion to reload the page. Depending on whether the request was |
-// a post or not, either updates |error_strings| to show a reload button or |
-// |suggestions| to suggest reloading without a button. |
-void AddReloadSuggestion(const GURL& failed_url, |
- bool is_post, |
- base::DictionaryValue* error_strings, |
- base::ListValue* suggestions) { |
- if (!is_post) { |
- base::DictionaryValue* reload_button = new base::DictionaryValue; |
- reload_button->SetString("msg", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_RELOAD)); |
- reload_button->SetString("reloadUrl", failed_url.spec()); |
- error_strings->Set("reload", reload_button); |
- } else { |
- // If the page was created by a post, it can't be reloaded in the same |
- // way, so just add a suggestion instead. |
- // TODO(mmenke): Make the reload button bring up the repost confirmation |
- // dialog for pages resulting from posts. |
- base::DictionaryValue* suggest_reload_repost = new base::DictionaryValue; |
- suggest_reload_repost->SetString("header", |
- l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_HEADER)); |
- suggest_reload_repost->SetString("body", |
- l10n_util::GetStringUTF16( |
- IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_BODY)); |
- // Add at the front, so it appears before other suggestions, in the case |
- // suggestions are being overridden by |params|. |
- suggestions->Insert(0, suggest_reload_repost); |
- } |
-} |
- |
-// Updaes |error_strings| according to the information contained in |params|. |
-void ApplyParamsToErrorStrings( |
- const GURL& failed_url, |
- bool is_post, |
- scoped_ptr<LocalizedError::ErrorPageParams> params, |
- base::DictionaryValue* error_strings) { |
- base::ListValue* suggestions = params->override_suggestions.release(); |
- if (params->suggest_reload) |
- AddReloadSuggestion(failed_url, is_post, error_strings, suggestions); |
- error_strings->Set("suggestions", suggestions); |
- |
- if (params->search_url.is_valid()) { |
- error_strings->SetString("searchHeader", |
- l10n_util::GetStringUTF16(IDS_ERRORPAGES_SUGGESTION_GOOGLE_SEARCH)); |
- error_strings->SetString("searchUrl", params->search_url.spec()); |
- error_strings->SetString("searchTerms", params->search_terms); |
- } |
-} |
- |
} // namespace |
const char LocalizedError::kHttpErrorDomain[] = "http"; |
-LocalizedError::ErrorPageParams::ErrorPageParams() : suggest_reload(false) { |
-} |
- |
-LocalizedError::ErrorPageParams::~ErrorPageParams() { |
-} |
- |
void LocalizedError::GetStrings(int error_code, |
const std::string& error_domain, |
const GURL& failed_url, |
@@ -552,7 +497,6 @@ |
bool stale_copy_in_cache, |
const std::string& locale, |
const std::string& accept_languages, |
- scoped_ptr<ErrorPageParams> params, |
base::DictionaryValue* error_strings) { |
bool rtl = LocaleIsRTL(); |
error_strings->SetString("textdirection", rtl ? "rtl" : "ltr"); |
@@ -615,7 +559,13 @@ |
error_strings->SetString( |
"less", l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_LESS)); |
error_strings->Set("summary", summary); |
+ error_strings->SetBoolean("staleCopyInCache", stale_copy_in_cache); |
+#if defined(OS_CHROMEOS) |
+ error_strings->SetString( |
+ "diagnose", l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_DIAGNOSE)); |
+#endif // defined(OS_CHROMEOS) |
+ |
if (options.details_resource_id != kErrorPagesNoDetails) { |
error_strings->SetString( |
"errorDetails", l10n_util::GetStringUTF16(options.details_resource_id)); |
@@ -639,7 +589,9 @@ |
error_strings->SetString("errorCode", |
l10n_util::GetStringFUTF16(IDS_ERRORPAGES_ERROR_CODE, error_string)); |
- // Platform specific information for diagnosing network issues on OSX and |
+ base::ListValue* suggestions = new base::ListValue(); |
+ |
+ // Platform specific instructions for diagnosing network issues on OSX and |
// Windows. |
#if defined(OS_MACOSX) || defined(OS_WIN) |
if (error_domain == net::kErrorDomain && |
@@ -669,25 +621,29 @@ |
} |
#endif // defined(OS_MACOSX) || defined(OS_WIN) |
- // If there are |params|, just apply them, and there's nothing else to do. |
- if (params) { |
- ApplyParamsToErrorStrings(failed_url, is_post, params.Pass(), |
- error_strings); |
- return; |
+ if (options.suggestions & SUGGEST_RELOAD) { |
+ if (!is_post) { |
+ base::DictionaryValue* reload_button = new base::DictionaryValue; |
+ reload_button->SetString("msg", |
+ l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_RELOAD)); |
+ reload_button->SetString("reloadUrl", failed_url.spec()); |
+ error_strings->Set("reload", reload_button); |
+ } else { |
+ // If the page was created by a post, it can't be reloaded in the same |
+ // way, so just add a suggestion instead. |
+ // TODO(mmenke): Make the reload button bring up the repost confirmation |
+ // dialog for pages resulting from posts. |
+ base::DictionaryValue* suggest_reload_repost = new base::DictionaryValue; |
+ suggest_reload_repost->SetString("header", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_HEADER)); |
+ suggest_reload_repost->SetString("body", |
+ l10n_util::GetStringUTF16( |
+ IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_BODY)); |
+ suggestions->Append(suggest_reload_repost); |
+ } |
} |
- error_strings->SetBoolean("staleCopyInCache", stale_copy_in_cache); |
- |
-#if defined(OS_CHROMEOS) |
- error_strings->SetString( |
- "diagnose", l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_DIAGNOSE)); |
-#endif // defined(OS_CHROMEOS) |
- |
- base::ListValue* suggestions = new base::ListValue(); |
- |
- if (options.suggestions & SUGGEST_RELOAD) |
- AddReloadSuggestion(failed_url, is_post, error_strings, suggestions); |
- |
if (options.suggestions & SUGGEST_CHECK_CONNECTION) { |
base::DictionaryValue* suggest_check_connection = new base::DictionaryValue; |
suggest_check_connection->SetString("header", |
@@ -811,6 +767,8 @@ |
suggestions->Append(suggest_learn_more); |
} |
} |
+ |
+ error_strings->Set("suggestions", suggestions); |
} |
base::string16 LocalizedError::GetErrorDetails(const blink::WebURLError& error, |