Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 39a108a0ac70e38f0e06fbf5350f61ccc8d6f467..6d590d835e47cdd35bf741238355d4be59749ae1 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -530,47 +530,58 @@ void ChromeContentRendererClient::ShowErrorPage(RenderView* render_view, |
} |
} |
-std::string ChromeContentRendererClient::GetNavigationErrorHtml( |
- const WebURLRequest& failed_request, |
- const WebURLError& error) { |
- GURL failed_url = error.unreachableURL; |
- std::string html; |
+void ChromeContentRendererClient::GetNavigationErrorStrings( |
+ const WebKit::WebURLRequest& failed_request, |
+ const WebKit::WebURLError& error, |
+ std::string* error_html, |
+ string16* error_description) { |
+ const GURL failed_url = error.unreachableURL; |
const Extension* extension = NULL; |
+ const bool is_repost = |
+ error.reason == net::ERR_CACHE_MISS && |
+ error.domain == WebString::fromUTF8(net::kErrorDomain) && |
+ EqualsASCII(failed_request.httpMethod(), "POST"); |
- // Use a local error page. |
- int resource_id; |
- DictionaryValue error_strings; |
if (failed_url.is_valid() && !failed_url.SchemeIs(chrome::kExtensionScheme)) |
extension = extension_dispatcher_->extensions()->GetByURL(failed_url); |
- if (extension) { |
- LocalizedError::GetAppErrorStrings(error, failed_url, extension, |
- &error_strings); |
- // TODO(erikkay): Should we use a different template for different |
- // error messages? |
- resource_id = IDR_ERROR_APP_HTML; |
- } else { |
- if (error.domain == WebString::fromUTF8(net::kErrorDomain) && |
- error.reason == net::ERR_CACHE_MISS && |
- EqualsASCII(failed_request.httpMethod(), "POST")) { |
- LocalizedError::GetFormRepostStrings(failed_url, &error_strings); |
+ if (error_html != NULL) { |
jam
2011/10/07 16:03:28
nit: here and below, convention is to drop the "!=
mkosiba (inactive)
2011/10/07 17:54:32
Done.
|
+ // Use a local error page. |
+ int resource_id; |
+ DictionaryValue error_strings; |
+ if (extension) { |
+ LocalizedError::GetAppErrorStrings(error, failed_url, extension, |
+ &error_strings); |
+ |
+ // TODO(erikkay): Should we use a different template for different |
+ // error messages? |
+ resource_id = IDR_ERROR_APP_HTML; |
} else { |
- LocalizedError::GetStrings(error, &error_strings); |
+ if (is_repost) { |
+ LocalizedError::GetFormRepostStrings(failed_url, &error_strings); |
+ } else { |
+ LocalizedError::GetStrings(error, &error_strings); |
+ } |
+ resource_id = IDR_NET_ERROR_HTML; |
} |
- resource_id = IDR_NET_ERROR_HTML; |
- } |
- const base::StringPiece template_html( |
- ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id)); |
- if (template_html.empty()) { |
- NOTREACHED() << "unable to load template. ID: " << resource_id; |
- } else { |
- // "t" is the id of the templates root node. |
- html = jstemplate_builder::GetTemplatesHtml( |
- template_html, &error_strings, "t"); |
+ const base::StringPiece template_html( |
+ ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id)); |
+ if (template_html.empty()) { |
+ NOTREACHED() << "unable to load template. ID: " << resource_id; |
+ } else { |
+ // "t" is the id of the templates root node. |
+ *error_html = jstemplate_builder::GetTemplatesHtml( |
+ template_html, &error_strings, "t"); |
+ } |
} |
- return html; |
+ if (error_description != NULL) { |
+ if (!extension && !is_repost) |
+ *error_description = LocalizedError::GetErrorDetails(error); |
+ else |
+ *error_description = string16(); |
+ } |
} |
bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { |