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 f1e19dc4cd8d6a8ad5541f963b01c2738aba108d..c7401cceec34f881af7a1371a6e50234a8a630d9 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -851,7 +851,7 @@ bool ChromeContentRendererClient::HasErrorPage(int http_status_code, |
} |
void ChromeContentRendererClient::GetNavigationErrorStrings( |
- WebKit::WebFrame* /* frame */, |
+ WebKit::WebFrame* frame, |
const WebKit::WebURLRequest& failed_request, |
const WebKit::WebURLError& error, |
std::string* error_html, |
@@ -879,11 +879,13 @@ void ChromeContentRendererClient::GetNavigationErrorStrings( |
// error messages? |
resource_id = IDR_ERROR_APP_HTML; |
} else { |
- LocalizedError::GetStrings( |
- error, |
- is_post, |
- RenderThread::Get()->GetLocale(), |
- &error_strings); |
+ const std::string locale = RenderThread::Get()->GetLocale(); |
+ if (!NetErrorHelper::GetErrorStringsForDnsProbe( |
+ frame, error, is_post, locale, &error_strings)) { |
+ // In most cases, the NetErrorHelper won't provide DNS-probe-specific |
+ // error pages, so fall back to LocalizedError. |
+ LocalizedError::GetStrings(error, is_post, locale, &error_strings); |
+ } |
resource_id = IDR_NET_ERROR_HTML; |
} |