File: nsDocShellTelemetryUtils.cpp

package info (click to toggle)
firefox 146.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,260 kB
  • sloc: cpp: 7,587,892; javascript: 6,509,455; ansic: 3,755,295; python: 1,410,813; xml: 629,201; asm: 438,677; java: 186,096; sh: 62,697; makefile: 18,086; objc: 13,087; perl: 12,811; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (73 lines) | stat: -rw-r--r-- 3,039 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsDocShellTelemetryUtils.h"

namespace {

struct LoadErrorTelemetryResult {
  nsresult mValue;
  nsLiteralCString mLabel;
};

static const LoadErrorTelemetryResult sResult[] = {
    {NS_ERROR_UNKNOWN_PROTOCOL, "UNKNOWN_PROTOCOL"_ns},
    {NS_ERROR_FILE_NOT_FOUND, "FILE_NOT_FOUND"_ns},
    {NS_ERROR_FILE_ACCESS_DENIED, "FILE_ACCESS_DENIED"_ns},
    {NS_ERROR_UNKNOWN_HOST, "UNKNOWN_HOST"_ns},
    {NS_ERROR_CONNECTION_REFUSED, "CONNECTION_REFUSED"_ns},
    {NS_ERROR_PROXY_BAD_GATEWAY, "PROXY_BAD_GATEWAY"_ns},
    {NS_ERROR_NET_INTERRUPT, "NET_INTERRUPT"_ns},
    {NS_ERROR_NET_TIMEOUT, "NET_TIMEOUT"_ns},
    {NS_ERROR_PROXY_GATEWAY_TIMEOUT, "P_GATEWAY_TIMEOUT"_ns},
    {NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION, "CSP_FRAME_ANCEST"_ns},
    {NS_ERROR_CSP_FORM_ACTION_VIOLATION, "CSP_FORM_ACTION"_ns},
    {NS_ERROR_XFO_VIOLATION, "XFO_VIOLATION"_ns},
    {NS_ERROR_PHISHING_URI, "PHISHING_URI"_ns},
    {NS_ERROR_MALWARE_URI, "MALWARE_URI"_ns},
    {NS_ERROR_UNWANTED_URI, "UNWANTED_URI"_ns},
    {NS_ERROR_HARMFUL_URI, "HARMFUL_URI"_ns},
    {NS_ERROR_CONTENT_CRASHED, "CONTENT_CRASHED"_ns},
    {NS_ERROR_FRAME_CRASHED, "FRAME_CRASHED"_ns},
    {NS_ERROR_BUILDID_MISMATCH, "BUILDID_MISMATCH"_ns},
    {NS_ERROR_NET_RESET, "NET_RESET"_ns},
    {NS_ERROR_MALFORMED_URI, "MALFORMED_URI"_ns},
    {NS_ERROR_REDIRECT_LOOP, "REDIRECT_LOOP"_ns},
    {NS_ERROR_UNKNOWN_SOCKET_TYPE, "UNKNOWN_SOCKET"_ns},
    {NS_ERROR_DOCUMENT_NOT_CACHED, "DOCUMENT_N_CACHED"_ns},
    {NS_ERROR_OFFLINE, "OFFLINE"_ns},
    {NS_ERROR_DOCUMENT_IS_PRINTMODE, "DOC_PRINTMODE"_ns},
    {NS_ERROR_PORT_ACCESS_NOT_ALLOWED, "PORT_ACCESS"_ns},
    {NS_ERROR_UNKNOWN_PROXY_HOST, "UNKNOWN_PROXY_HOST"_ns},
    {NS_ERROR_PROXY_CONNECTION_REFUSED, "PROXY_CONNECTION"_ns},
    {NS_ERROR_PROXY_FORBIDDEN, "PROXY_FORBIDDEN"_ns},
    {NS_ERROR_PROXY_NOT_IMPLEMENTED, "P_NOT_IMPLEMENTED"_ns},
    {NS_ERROR_PROXY_AUTHENTICATION_FAILED, "PROXY_AUTH"_ns},
    {NS_ERROR_PROXY_TOO_MANY_REQUESTS, "PROXY_TOO_MANY"_ns},
    {NS_ERROR_INVALID_CONTENT_ENCODING, "CONTENT_ENCODING"_ns},
    {NS_ERROR_UNSAFE_CONTENT_TYPE, "UNSAFE_CONTENT"_ns},
    {NS_ERROR_CORRUPTED_CONTENT, "CORRUPTED_CONTENT"_ns},
    {NS_ERROR_INTERCEPTION_FAILED, "INTERCEPTION_FAIL"_ns},
    {NS_ERROR_NET_INADEQUATE_SECURITY, "INADEQUATE_SEC"_ns},
    {NS_ERROR_BLOCKED_BY_POLICY, "BLOCKED_BY_POLICY"_ns},
    {NS_ERROR_NET_HTTP2_SENT_GOAWAY, "HTTP2_SENT_GOAWAY"_ns},
    {NS_ERROR_NET_HTTP3_PROTOCOL_ERROR, "HTTP3_PROTOCOL"_ns},
    {NS_BINDING_FAILED, "BINDING_FAILED"_ns},
};
}  // anonymous namespace

namespace mozilla {
namespace dom {
nsLiteralCString LoadErrorToTelemetryLabel(nsresult aRv) {
  MOZ_ASSERT(aRv != NS_OK);

  for (const auto& p : sResult) {
    if (p.mValue == aRv) {
      return p.mLabel;
    }
  }
  return "otherError"_ns;
}
}  // namespace dom
}  // namespace mozilla