Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7622)

Unified Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 8142032: Add error description to the DidFailProvisionalLoad callback. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: rebase Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.h ('k') | chrome/renderer/localized_error.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 561574d781d6709e42d5e24451694bd928dd13df..0c1057428fb6be9a19ffb25fdda7bfcce236b0fc 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -533,47 +533,56 @@ bool ChromeContentRendererClient::HasErrorPage(int http_status_code,
return true;
}
-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) {
+ // 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) {
+ if (!extension && !is_repost)
+ *error_description = LocalizedError::GetErrorDetails(error);
+ }
}
bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() {
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.h ('k') | chrome/renderer/localized_error.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698