summaryrefslogtreecommitdiffstats
path: root/chrome/common/localized_error.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/localized_error.cc')
-rw-r--r--chrome/common/localized_error.cc59
1 files changed, 59 insertions, 0 deletions
diff --git a/chrome/common/localized_error.cc b/chrome/common/localized_error.cc
index d23b1b4..136607a 100644
--- a/chrome/common/localized_error.cc
+++ b/chrome/common/localized_error.cc
@@ -15,6 +15,7 @@
#include "chrome/common/extensions/extension_icon_set.h"
#include "chrome/common/extensions/extension_set.h"
#include "chrome/common/extensions/manifest_handlers/icons_handler.h"
+#include "chrome/common/net/net_error_info.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "net/base/escape.h"
@@ -369,6 +370,53 @@ const LocalizedErrorMap http_error_options[] = {
},
};
+const LocalizedErrorMap dns_probe_error_options[] = {
+ {chrome_common_net::DNS_PROBE_POSSIBLE,
+ IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
+ IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
+ IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING,
+ IDS_ERRORPAGES_DETAILS_DNS_PROBE_RUNNING,
+ SUGGEST_RELOAD,
+ },
+
+ // DNS_PROBE_NOT_RUN is not here; NetErrorHelper will restore the original
+ // error, which might be one of several DNS-related errors.
+
+ {chrome_common_net::DNS_PROBE_STARTED,
+ IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
+ IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
+ IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING,
+ IDS_ERRORPAGES_DETAILS_DNS_PROBE_RUNNING,
+ // Include SUGGEST_RELOAD so the More button doesn't jump when we update.
+ SUGGEST_RELOAD,
+ },
+
+ // DNS_PROBE_FINISHED_UNKNOWN is not here; NetErrorHelper will restore the
+ // original error, which might be one of several DNS-related errors.
+
+ {chrome_common_net::DNS_PROBE_FINISHED_NO_INTERNET,
+ IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
+ IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
+ IDS_ERRORPAGES_SUMMARY_INTERNET_DISCONNECTED,
+ IDS_ERRORPAGES_DETAILS_INTERNET_DISCONNECTED,
+ SUGGEST_RELOAD | SUGGEST_CHECK_CONNECTION | SUGGEST_FIREWALL_CONFIG,
+ },
+ {chrome_common_net::DNS_PROBE_FINISHED_BAD_CONFIG,
+ IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
+ IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
+ IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED,
+ IDS_ERRORPAGES_DETAILS_NAME_NOT_RESOLVED,
+ SUGGEST_RELOAD | SUGGEST_DNS_CONFIG | SUGGEST_FIREWALL_CONFIG,
+ },
+ {chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN,
+ IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
+ IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
+ IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED,
+ IDS_ERRORPAGES_DETAILS_NAME_NOT_RESOLVED,
+ SUGGEST_RELOAD,
+ },
+};
+
const LocalizedErrorMap* FindErrorMapInArray(const LocalizedErrorMap* maps,
size_t num_maps,
int error_code) {
@@ -393,6 +441,13 @@ const LocalizedErrorMap* LookupErrorMap(const std::string& error_domain,
return FindErrorMapInArray(http_error_options,
arraysize(http_error_options),
error_code);
+ } else if (error_domain == chrome_common_net::kDnsProbeErrorDomain) {
+ const LocalizedErrorMap* map =
+ FindErrorMapInArray(dns_probe_error_options,
+ arraysize(dns_probe_error_options),
+ error_code);
+ DCHECK(map);
+ return map;
} else {
NOTREACHED();
return NULL;
@@ -502,6 +557,10 @@ void LocalizedError::GetStrings(const WebKit::WebURLError& error,
// Remove the leading "net::" from the returned string.
RemoveChars(ascii_error_string, "net:", &ascii_error_string);
error_string = ASCIIToUTF16(ascii_error_string);
+ } else if (error_domain == chrome_common_net::kDnsProbeErrorDomain) {
+ std::string ascii_error_string =
+ chrome_common_net::DnsProbeStatusToString(error_code);
+ error_string = ASCIIToUTF16(ascii_error_string);
} else {
DCHECK_EQ(LocalizedError::kHttpErrorDomain, error_domain);
error_string = base::IntToString16(error_code);