nsDocShellTelemetryUtils.cpp (3039B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #include "nsDocShellTelemetryUtils.h" 6 7 namespace { 8 9 struct LoadErrorTelemetryResult { 10 nsresult mValue; 11 nsLiteralCString mLabel; 12 }; 13 14 static const LoadErrorTelemetryResult sResult[] = { 15 {NS_ERROR_UNKNOWN_PROTOCOL, "UNKNOWN_PROTOCOL"_ns}, 16 {NS_ERROR_FILE_NOT_FOUND, "FILE_NOT_FOUND"_ns}, 17 {NS_ERROR_FILE_ACCESS_DENIED, "FILE_ACCESS_DENIED"_ns}, 18 {NS_ERROR_UNKNOWN_HOST, "UNKNOWN_HOST"_ns}, 19 {NS_ERROR_CONNECTION_REFUSED, "CONNECTION_REFUSED"_ns}, 20 {NS_ERROR_PROXY_BAD_GATEWAY, "PROXY_BAD_GATEWAY"_ns}, 21 {NS_ERROR_NET_INTERRUPT, "NET_INTERRUPT"_ns}, 22 {NS_ERROR_NET_TIMEOUT, "NET_TIMEOUT"_ns}, 23 {NS_ERROR_PROXY_GATEWAY_TIMEOUT, "P_GATEWAY_TIMEOUT"_ns}, 24 {NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION, "CSP_FRAME_ANCEST"_ns}, 25 {NS_ERROR_CSP_FORM_ACTION_VIOLATION, "CSP_FORM_ACTION"_ns}, 26 {NS_ERROR_XFO_VIOLATION, "XFO_VIOLATION"_ns}, 27 {NS_ERROR_PHISHING_URI, "PHISHING_URI"_ns}, 28 {NS_ERROR_MALWARE_URI, "MALWARE_URI"_ns}, 29 {NS_ERROR_UNWANTED_URI, "UNWANTED_URI"_ns}, 30 {NS_ERROR_HARMFUL_URI, "HARMFUL_URI"_ns}, 31 {NS_ERROR_CONTENT_CRASHED, "CONTENT_CRASHED"_ns}, 32 {NS_ERROR_FRAME_CRASHED, "FRAME_CRASHED"_ns}, 33 {NS_ERROR_BUILDID_MISMATCH, "BUILDID_MISMATCH"_ns}, 34 {NS_ERROR_NET_RESET, "NET_RESET"_ns}, 35 {NS_ERROR_MALFORMED_URI, "MALFORMED_URI"_ns}, 36 {NS_ERROR_REDIRECT_LOOP, "REDIRECT_LOOP"_ns}, 37 {NS_ERROR_UNKNOWN_SOCKET_TYPE, "UNKNOWN_SOCKET"_ns}, 38 {NS_ERROR_DOCUMENT_NOT_CACHED, "DOCUMENT_N_CACHED"_ns}, 39 {NS_ERROR_OFFLINE, "OFFLINE"_ns}, 40 {NS_ERROR_DOCUMENT_IS_PRINTMODE, "DOC_PRINTMODE"_ns}, 41 {NS_ERROR_PORT_ACCESS_NOT_ALLOWED, "PORT_ACCESS"_ns}, 42 {NS_ERROR_UNKNOWN_PROXY_HOST, "UNKNOWN_PROXY_HOST"_ns}, 43 {NS_ERROR_PROXY_CONNECTION_REFUSED, "PROXY_CONNECTION"_ns}, 44 {NS_ERROR_PROXY_FORBIDDEN, "PROXY_FORBIDDEN"_ns}, 45 {NS_ERROR_PROXY_NOT_IMPLEMENTED, "P_NOT_IMPLEMENTED"_ns}, 46 {NS_ERROR_PROXY_AUTHENTICATION_FAILED, "PROXY_AUTH"_ns}, 47 {NS_ERROR_PROXY_TOO_MANY_REQUESTS, "PROXY_TOO_MANY"_ns}, 48 {NS_ERROR_INVALID_CONTENT_ENCODING, "CONTENT_ENCODING"_ns}, 49 {NS_ERROR_UNSAFE_CONTENT_TYPE, "UNSAFE_CONTENT"_ns}, 50 {NS_ERROR_CORRUPTED_CONTENT, "CORRUPTED_CONTENT"_ns}, 51 {NS_ERROR_INTERCEPTION_FAILED, "INTERCEPTION_FAIL"_ns}, 52 {NS_ERROR_NET_INADEQUATE_SECURITY, "INADEQUATE_SEC"_ns}, 53 {NS_ERROR_BLOCKED_BY_POLICY, "BLOCKED_BY_POLICY"_ns}, 54 {NS_ERROR_NET_HTTP2_SENT_GOAWAY, "HTTP2_SENT_GOAWAY"_ns}, 55 {NS_ERROR_NET_HTTP3_PROTOCOL_ERROR, "HTTP3_PROTOCOL"_ns}, 56 {NS_BINDING_FAILED, "BINDING_FAILED"_ns}, 57 }; 58 } // anonymous namespace 59 60 namespace mozilla { 61 namespace dom { 62 nsLiteralCString LoadErrorToTelemetryLabel(nsresult aRv) { 63 MOZ_ASSERT(aRv != NS_OK); 64 65 for (const auto& p : sResult) { 66 if (p.mValue == aRv) { 67 return p.mLabel; 68 } 69 } 70 return "otherError"_ns; 71 } 72 } // namespace dom 73 } // namespace mozilla