network_diagnostics_resource_provider.cc 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/webui/network_ui/network_diagnostics_resource_provider.h"
  5. #include "ash/constants/ash_features.h"
  6. #include "chromeos/strings/grit/chromeos_strings.h"
  7. #include "content/public/browser/web_ui_data_source.h"
  8. #include "ui/base/webui/web_ui_util.h"
  9. #include "ui/resources/grit/webui_generated_resources.h"
  10. namespace ash {
  11. namespace network_diagnostics {
  12. namespace {
  13. constexpr webui::LocalizedString kLocalizedStrings[] = {
  14. // Network Diagnostics Strings
  15. {"NetworkDiagnosticsLanConnectivity",
  16. IDS_NETWORK_DIAGNOSTICS_LAN_CONNECTIVITY},
  17. {"NetworkDiagnosticsSignalStrength",
  18. IDS_NETWORK_DIAGNOSTICS_SIGNAL_STRENGTH},
  19. {"NetworkDiagnosticsGatewayCanBePinged",
  20. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED},
  21. {"NetworkDiagnosticsHasSecureWiFiConnection",
  22. IDS_NETWORK_DIAGNOSTICS_HAS_SECURE_WIFI_CONNECTION},
  23. {"NetworkDiagnosticsDnsResolverPresent",
  24. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLVER_PRESENT},
  25. {"NetworkDiagnosticsDnsLatency", IDS_NETWORK_DIAGNOSTICS_DNS_LATENCY},
  26. {"NetworkDiagnosticsDnsResolution", IDS_NETWORK_DIAGNOSTICS_DNS_RESOLUTION},
  27. {"NetworkDiagnosticsHttpFirewall", IDS_NETWORK_DIAGNOSTICS_HTTP_FIREWALL},
  28. {"NetworkDiagnosticsHttpsFirewall", IDS_NETWORK_DIAGNOSTICS_HTTPS_FIREWALL},
  29. {"NetworkDiagnosticsHttpsLatency", IDS_NETWORK_DIAGNOSTICS_HTTPS_LATENCY},
  30. {"NetworkDiagnosticsCaptivePortal", IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL},
  31. {"NetworkDiagnosticsVideoConferencing",
  32. IDS_NETWORK_DIAGNOSTICS_VIDEO_CONFERENCING},
  33. {"ArcNetworkDiagnosticsPing",
  34. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED},
  35. {"ArcNetworkDiagnosticsHttp", IDS_NETWORK_DIAGNOSTICS_ARC_HTTP_LATENCY},
  36. {"ArcNetworkDiagnosticsDnsResolution",
  37. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLUTION},
  38. {"NetworkDiagnosticsConnectionGroup",
  39. IDS_NETWORK_DIAGNOSTICS_CONNECTION_GROUP},
  40. {"NetworkDiagnosticsWifiGroup", IDS_NETWORK_DIAGNOSTICS_WIFI_GROUP},
  41. {"NetworkDiagnosticsGatewayGroup", IDS_NETWORK_DIAGNOSTICS_GATEWAY_GROUP},
  42. {"NetworkDiagnosticsFirewallGroup", IDS_NETWORK_DIAGNOSTICS_FIREWALL_GROUP},
  43. {"NetworkDiagnosticsDnsGroup", IDS_NETWORK_DIAGNOSTICS_DNS_GROUP},
  44. {"NetworkDiagnosticsGoogleServicesGroup",
  45. IDS_NETWORK_DIAGNOSTICS_GOOGLE_SERVICES_GROUP},
  46. {"NetworkDiagnosticsArcGroup", IDS_NETWORK_DIAGNOSTICS_ARC_GROUP},
  47. {"NetworkDiagnosticsPassed", IDS_NETWORK_DIAGNOSTICS_PASSED},
  48. {"NetworkDiagnosticsFailed", IDS_NETWORK_DIAGNOSTICS_FAILED},
  49. {"NetworkDiagnosticsNotRun", IDS_NETWORK_DIAGNOSTICS_NOT_RUN},
  50. {"NetworkDiagnosticsRunning", IDS_NETWORK_DIAGNOSTICS_RUNNING},
  51. {"NetworkDiagnosticsResultPlaceholder",
  52. IDS_NETWORK_DIAGNOSTICS_RESULT_PLACEHOLDER},
  53. {"NetworkDiagnosticsRun", IDS_NETWORK_DIAGNOSTICS_RUN},
  54. {"SignalStrengthProblem_Weak",
  55. IDS_NETWORK_DIAGNOSTICS_SIGNAL_STRENGTH_PROBLEM_WEAK},
  56. {"GatewayPingProblem_Unreachable",
  57. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED_PROBLEM_UNREACHABLE},
  58. {"GatewayPingProblem_NoDefaultPing",
  59. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED_PROBLEM_PING_DEFAULT_FAILED},
  60. {"GatewayPingProblem_DefaultLatency",
  61. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED_PROBLEM_DEFAULT_ABOVE_LATENCY},
  62. {"GatewayPingProblem_NoNonDefaultPing",
  63. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED_PROBLEM_PING_NON_DEFAULT_FAILED},
  64. {"GatewayPingProblem_NonDefaultLatency",
  65. IDS_NETWORK_DIAGNOSTICS_GATEWAY_CAN_BE_PINGED_PROBLEM_NON_DEFAULT_ABOVE_LATENCY},
  66. {"SecureWifiProblem_None",
  67. IDS_NETWORK_DIAGNOSTICS_SECURE_WIFI_PROBLEM_NOT_SECURE},
  68. {"SecureWifiProblem_8021x",
  69. IDS_NETWORK_DIAGNOSTICS_SECURE_WIFI_PROBLEM_WEP_8021x},
  70. {"SecureWifiProblem_PSK",
  71. IDS_NETWORK_DIAGNOSTICS_SECURE_WIFI_PROBLEM_WEP_PSK},
  72. {"SecureWifiProblem_Unknown",
  73. IDS_NETWORK_DIAGNOSTICS_SECURE_WIFI_PROBLEM_UNKNOWN},
  74. {"DnsResolverProblem_NoNameServers",
  75. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLVER_PROBLEM_NO_NAME_SERVERS},
  76. {"DnsResolverProblem_MalformedNameServers",
  77. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLVER_PROBLEM_MALFORMED_NAME_SERVERS},
  78. {"DnsResolverProblem_EmptyNameServers",
  79. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLVER_PROBLEM_EMPTY_NAME_SERVERS},
  80. {"DnsLatencyProblem_FailedResolveHosts",
  81. IDS_NETWORK_DIAGNOSTICS_DNS_LATENCY_PROBLEM_FAILED_TO_RESOLVE_ALL_HOSTS},
  82. {"DnsLatencyProblem_LatencySlightlyAbove",
  83. IDS_NETWORK_DIAGNOSTICS_DNS_LATENCY_PROBLEM_SLIGHTLY_ABOVE_THRESHOLD},
  84. {"DnsLatencyProblem_LatencySignificantlyAbove",
  85. IDS_NETWORK_DIAGNOSTICS_DNS_LATENCY_PROBLEM_SIGNIFICANTLY_ABOVE_THRESHOLD},
  86. {"DnsResolutionProblem_FailedResolve",
  87. IDS_NETWORK_DIAGNOSTICS_DNS_RESOLUTION_PROBLEM_FAILED_TO_RESOLVE_HOST},
  88. {"FirewallProblem_DnsResolutionFailureRate",
  89. IDS_NETWORK_DIAGNOSTICS_FIREWALL_PROBLEM_DNS_RESOLUTION_FAILURE_RATE},
  90. {"FirewallProblem_FirewallDetected",
  91. IDS_NETWORK_DIAGNOSTICS_FIREWALL_PROBLEM_FIREWALL_DETECTED},
  92. {"FirewallProblem_FirewallSuspected",
  93. IDS_NETWORK_DIAGNOSTICS_FIREWALL_PROBLEM_FIREWALL_SUSPECTED},
  94. {"HttpsLatencyProblem_FailedDnsResolution",
  95. IDS_NETWORK_DIAGNOSTICS_HTTPS_LATENCY_PROBLEM_FAILED_DNS_RESOLUTIONS},
  96. {"HttpsLatencyProblem_FailedHttpsRequests",
  97. IDS_NETWORK_DIAGNOSTICS_HTTPS_LATENCY_PROBLEM_FAILED_HTTPS_REQUESTS},
  98. {"HttpsLatencyProblem_HighLatency",
  99. IDS_NETWORK_DIAGNOSTICS_HTTPS_LATENCY_PROBLEM_HIGH_LATENCY},
  100. {"HttpsLatencyProblem_VeryHighLatency",
  101. IDS_NETWORK_DIAGNOSTICS_HTTPS_LATENCY_PROBLEM_VERY_HIGH_LATENCY},
  102. {"ArcHttpProblem_FailedHttpRequests",
  103. IDS_NETWORK_DIAGNOSTICS_ARC_HTTP_PROBLEM_FAILED_HTTP_REQUESTS},
  104. {"ArcHttpProblem_HighLatency",
  105. IDS_NETWORK_DIAGNOSTICS_ARC_HTTP_PROBLEM_HIGH_LATENCY},
  106. {"ArcHttpProblem_VeryHighLatency",
  107. IDS_NETWORK_DIAGNOSTICS_ARC_HTTP_PROBLEM_VERY_HIGH_LATENCY},
  108. {"ArcRoutineProblem_InternalError",
  109. IDS_NETWORK_DIAGNOSTICS_ARC_ROUTINE_PROBLEM_INTERNAL_ERROR},
  110. {"ArcRoutineProblem_ArcNotRunning",
  111. IDS_NETWORK_DIAGNOSTICS_ARC_ROUTINE_PROBLEM_ARC_NOT_RUNNING},
  112. {"CaptivePortalProblem_NoActiveNetworks",
  113. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_NO_ACTIVE_NETWORKS},
  114. {"CaptivePortalProblem_UnknownPortalState",
  115. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_UNKNOWN_PORTAL_STATE},
  116. {"CaptivePortalProblem_PortalSuspected",
  117. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_PORTAL_SUSPECTED},
  118. {"CaptivePortalProblem_Portal",
  119. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_PORTAL},
  120. {"CaptivePortalProblem_ProxyAuthRequired",
  121. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_PROXY_AUTH_REQUIRED},
  122. {"CaptivePortalProblem_NoInternet",
  123. IDS_NETWORK_DIAGNOSTICS_CAPTIVE_PORTAL_PROBLEM_NO_INTERNET},
  124. {"VideoConferencingProblem_UdpFailure",
  125. IDS_NETWORK_DIAGNOSTICS_VIDEO_CONFERENCING_PROBLEM_UPD_FAILURE},
  126. {"VideoConferencingProblem_TcpFailure",
  127. IDS_NETWORK_DIAGNOSTICS_VIDEO_CONFERENCING_PROBLEM_TCP_FAILURE},
  128. {"VideoConferencingProblem_MediaFailure",
  129. IDS_NETWORK_DIAGNOSTICS_VIDEO_CONFERENCING_PROBLEM_MEDIA_FAILURE},
  130. };
  131. struct WebUiResource {
  132. const char* name;
  133. int id;
  134. };
  135. constexpr WebUiResource kResources[] = {
  136. {"test_canceled.png",
  137. IDR_CR_COMPONENTS_CHROMEOS_NETWORK_HEALTH_TEST_CANCELED_PNG},
  138. {"test_failed.png",
  139. IDR_CR_COMPONENTS_CHROMEOS_NETWORK_HEALTH_TEST_FAILED_PNG},
  140. {"test_not_run.png",
  141. IDR_CR_COMPONENTS_CHROMEOS_NETWORK_HEALTH_TEST_NOT_RUN_PNG},
  142. {"test_passed.png",
  143. IDR_CR_COMPONENTS_CHROMEOS_NETWORK_HEALTH_TEST_PASSED_PNG},
  144. {"test_warning.png",
  145. IDR_CR_COMPONENTS_CHROMEOS_NETWORK_HEALTH_TEST_WARNING_PNG},
  146. };
  147. struct StringMap {
  148. const char* name;
  149. const char* value;
  150. };
  151. } // namespace
  152. void AddResources(content::WebUIDataSource* html_source) {
  153. html_source->AddLocalizedStrings(kLocalizedStrings);
  154. html_source->AddBoolean(
  155. "enableArcNetworkDiagnostics",
  156. ash::features::IsArcNetworkDiagnosticsButtonEnabled());
  157. for (const auto& resource : kResources)
  158. html_source->AddResourcePath(resource.name, resource.id);
  159. }
  160. } // namespace network_diagnostics
  161. } // namespace ash