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

Side by Side Diff: chrome/common/localized_error.cc

Issue 13270005: Display DNS probe results. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Don't break DnsProbe histograms Created 7 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/localized_error.h" 5 #include "chrome/common/localized_error.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/common/extensions/extension_constants.h" 14 #include "chrome/common/extensions/extension_constants.h"
15 #include "chrome/common/extensions/extension_icon_set.h" 15 #include "chrome/common/extensions/extension_icon_set.h"
16 #include "chrome/common/extensions/extension_set.h" 16 #include "chrome/common/extensions/extension_set.h"
17 #include "chrome/common/extensions/manifest_handlers/icons_handler.h" 17 #include "chrome/common/extensions/manifest_handlers/icons_handler.h"
18 #include "chrome/common/net/net_error_info.h"
18 #include "googleurl/src/gurl.h" 19 #include "googleurl/src/gurl.h"
19 #include "grit/chromium_strings.h" 20 #include "grit/chromium_strings.h"
20 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
21 #include "net/base/escape.h" 22 #include "net/base/escape.h"
22 #include "net/base/net_errors.h" 23 #include "net/base/net_errors.h"
23 #include "third_party/WebKit/public/platform/WebURLError.h" 24 #include "third_party/WebKit/public/platform/WebURLError.h"
24 #include "ui/base/l10n/l10n_util.h" 25 #include "ui/base/l10n/l10n_util.h"
25 #include "ui/webui/web_ui_util.h" 26 #include "ui/webui/web_ui_util.h"
26 #include "webkit/glue/webkit_glue.h" 27 #include "webkit/glue/webkit_glue.h"
27 28
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 }, 363 },
363 {505, 364 {505,
364 IDS_ERRORPAGES_TITLE_LOAD_FAILED, 365 IDS_ERRORPAGES_TITLE_LOAD_FAILED,
365 IDS_ERRORPAGES_HEADING_HTTP_SERVER_ERROR, 366 IDS_ERRORPAGES_HEADING_HTTP_SERVER_ERROR,
366 IDS_ERRORPAGES_SUMMARY_WEBSITE_CANNOT_HANDLE, 367 IDS_ERRORPAGES_SUMMARY_WEBSITE_CANNOT_HANDLE,
367 IDS_ERRORPAGES_DETAILS_HTTP_VERSION_NOT_SUPPORTED, 368 IDS_ERRORPAGES_DETAILS_HTTP_VERSION_NOT_SUPPORTED,
368 SUGGEST_NONE, 369 SUGGEST_NONE,
369 }, 370 },
370 }; 371 };
371 372
373 const LocalizedErrorMap dns_probe_error_options[] = {
374 {chrome_common_net::DNS_PROBE_POSSIBLE,
375 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
376 IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
377 IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING,
378 IDS_ERRORPAGES_DETAILS_DNS_PROBE_RUNNING,
379 SUGGEST_RELOAD,
380 },
381
382 // DNS_PROBE_NOT_RUN is not here; NetErrorHelper will restore the original
383 // error, which might be one of several DNS-related errors.
384
385 {chrome_common_net::DNS_PROBE_STARTED,
386 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
387 IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
388 IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING,
389 IDS_ERRORPAGES_DETAILS_DNS_PROBE_RUNNING,
390 // Include SUGGEST_RELOAD so the More button doesn't jump when we update.
391 SUGGEST_RELOAD,
392 },
393
394 // DNS_PROBE_FINISHED_UNKNOWN is not here; NetErrorHelper will restore the
395 // original error, which might be one of several DNS-related errors.
396
397 {chrome_common_net::DNS_PROBE_FINISHED_NO_INTERNET,
398 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
399 IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
400 IDS_ERRORPAGES_SUMMARY_INTERNET_DISCONNECTED,
401 IDS_ERRORPAGES_DETAILS_INTERNET_DISCONNECTED,
402 SUGGEST_RELOAD | SUGGEST_CHECK_CONNECTION | SUGGEST_FIREWALL_CONFIG,
403 },
404 {chrome_common_net::DNS_PROBE_FINISHED_BAD_CONFIG,
405 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
406 IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
407 IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED,
408 IDS_ERRORPAGES_DETAILS_NAME_NOT_RESOLVED,
409 SUGGEST_RELOAD | SUGGEST_DNS_CONFIG | SUGGEST_FIREWALL_CONFIG,
410 },
411 {chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN,
412 IDS_ERRORPAGES_TITLE_NOT_AVAILABLE,
413 IDS_ERRORPAGES_HEADING_NOT_AVAILABLE,
414 IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED,
415 IDS_ERRORPAGES_DETAILS_NAME_NOT_RESOLVED,
416 SUGGEST_RELOAD,
417 },
418 };
419
372 const LocalizedErrorMap* FindErrorMapInArray(const LocalizedErrorMap* maps, 420 const LocalizedErrorMap* FindErrorMapInArray(const LocalizedErrorMap* maps,
373 size_t num_maps, 421 size_t num_maps,
374 int error_code) { 422 int error_code) {
375 for (size_t i = 0; i < num_maps; ++i) { 423 for (size_t i = 0; i < num_maps; ++i) {
376 if (maps[i].error_code == error_code) 424 if (maps[i].error_code == error_code)
377 return &maps[i]; 425 return &maps[i];
378 } 426 }
379 return NULL; 427 return NULL;
380 } 428 }
381 429
382 const LocalizedErrorMap* LookupErrorMap(const std::string& error_domain, 430 const LocalizedErrorMap* LookupErrorMap(const std::string& error_domain,
383 int error_code, bool is_post) { 431 int error_code, bool is_post) {
384 if (error_domain == net::kErrorDomain) { 432 if (error_domain == net::kErrorDomain) {
385 // Display a different page in the special case of navigating through the 433 // Display a different page in the special case of navigating through the
386 // history to an uncached page created by a POST. 434 // history to an uncached page created by a POST.
387 if (is_post && error_code == net::ERR_CACHE_MISS) 435 if (is_post && error_code == net::ERR_CACHE_MISS)
388 return &repost_error; 436 return &repost_error;
389 return FindErrorMapInArray(net_error_options, 437 return FindErrorMapInArray(net_error_options,
390 arraysize(net_error_options), 438 arraysize(net_error_options),
391 error_code); 439 error_code);
392 } else if (error_domain == LocalizedError::kHttpErrorDomain) { 440 } else if (error_domain == LocalizedError::kHttpErrorDomain) {
393 return FindErrorMapInArray(http_error_options, 441 return FindErrorMapInArray(http_error_options,
394 arraysize(http_error_options), 442 arraysize(http_error_options),
395 error_code); 443 error_code);
444 } else if (error_domain == chrome_common_net::kDnsProbeErrorDomain) {
445 const LocalizedErrorMap* map =
446 FindErrorMapInArray(dns_probe_error_options,
447 arraysize(dns_probe_error_options),
448 error_code);
449 DCHECK(map);
450 return map;
396 } else { 451 } else {
397 NOTREACHED(); 452 NOTREACHED();
398 return NULL; 453 return NULL;
399 } 454 }
400 } 455 }
401 456
402 bool LocaleIsRTL() { 457 bool LocaleIsRTL() {
403 #if defined(TOOLKIT_GTK) 458 #if defined(TOOLKIT_GTK)
404 // base::i18n::IsRTL() uses the GTK text direction, which doesn't work within 459 // base::i18n::IsRTL() uses the GTK text direction, which doesn't work within
405 // the renderer sandbox. 460 // the renderer sandbox.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 "errorDetails", l10n_util::GetStringUTF16(options.details_resource_id)); 550 "errorDetails", l10n_util::GetStringUTF16(options.details_resource_id));
496 } 551 }
497 552
498 string16 error_string; 553 string16 error_string;
499 if (error_domain == net::kErrorDomain) { 554 if (error_domain == net::kErrorDomain) {
500 // Non-internationalized error string, for debugging Chrome itself. 555 // Non-internationalized error string, for debugging Chrome itself.
501 std::string ascii_error_string = net::ErrorToString(error_code); 556 std::string ascii_error_string = net::ErrorToString(error_code);
502 // Remove the leading "net::" from the returned string. 557 // Remove the leading "net::" from the returned string.
503 RemoveChars(ascii_error_string, "net:", &ascii_error_string); 558 RemoveChars(ascii_error_string, "net:", &ascii_error_string);
504 error_string = ASCIIToUTF16(ascii_error_string); 559 error_string = ASCIIToUTF16(ascii_error_string);
560 } else if (error_domain == chrome_common_net::kDnsProbeErrorDomain) {
561 std::string ascii_error_string =
562 chrome_common_net::DnsProbeStatusToString(error_code);
563 error_string = ASCIIToUTF16(ascii_error_string);
505 } else { 564 } else {
506 DCHECK_EQ(LocalizedError::kHttpErrorDomain, error_domain); 565 DCHECK_EQ(LocalizedError::kHttpErrorDomain, error_domain);
507 error_string = base::IntToString16(error_code); 566 error_string = base::IntToString16(error_code);
508 } 567 }
509 error_strings->SetString("errorCode", 568 error_strings->SetString("errorCode",
510 l10n_util::GetStringFUTF16(IDS_ERRORPAGES_ERROR_CODE, error_string)); 569 l10n_util::GetStringFUTF16(IDS_ERRORPAGES_ERROR_CODE, error_string));
511 570
512 base::ListValue* suggestions = new base::ListValue(); 571 base::ListValue* suggestions = new base::ListValue();
513 572
514 // Platform specific instructions for diagnosing network issues on OSX and 573 // Platform specific instructions for diagnosing network issues on OSX and
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 #if defined(OS_CHROMEOS) 801 #if defined(OS_CHROMEOS)
743 GURL learn_more_url(kAppWarningLearnMoreUrl); 802 GURL learn_more_url(kAppWarningLearnMoreUrl);
744 base::DictionaryValue* suggest_learn_more = new base::DictionaryValue(); 803 base::DictionaryValue* suggest_learn_more = new base::DictionaryValue();
745 suggest_learn_more->SetString("msg", 804 suggest_learn_more->SetString("msg",
746 l10n_util::GetStringUTF16( 805 l10n_util::GetStringUTF16(
747 IDS_ERRORPAGES_SUGGESTION_LEARNMORE_BODY)); 806 IDS_ERRORPAGES_SUGGESTION_LEARNMORE_BODY));
748 suggest_learn_more->SetString("learnMoreUrl", learn_more_url.spec()); 807 suggest_learn_more->SetString("learnMoreUrl", learn_more_url.spec());
749 error_strings->Set("suggestionsLearnMore", suggest_learn_more); 808 error_strings->Set("suggestionsLearnMore", suggest_learn_more);
750 #endif // defined(OS_CHROMEOS) 809 #endif // defined(OS_CHROMEOS)
751 } 810 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698