Chromium Code Reviews| 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..5815bce1a44e3e32ec2b93a70da6f92e0d977504 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 (NULL != error_html) { |
|
mmenke
2011/10/07 14:19:44
nit: Chrome style is to put the arguments in the
mkosiba (inactive)
2011/10/07 15:46:11
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 (NULL != error_description) { |
| + if (!extension && !is_repost) |
| + *error_description = LocalizedError::GetErrorDetails(error); |
| + else |
| + *error_description = string16(); |
| + } |
| } |
| bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { |