summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/schemas/extension_protocol_handlers.json
blob: 8fa20fb598a4733b53add08bc2014d3f3231d51c (plain)
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
[
  {
    "namespace": "manifest",
    "types": [
      {
        "id": "ProtocolHandler",
        "type": "object",
        "description": "Represents a protocol handler definition.",
        "properties": {
          "name": {
            "description": "A user-readable title string for the protocol handler. This will be displayed to the user in interface objects as needed.",
            "type": "string"
          },
          "protocol": {
            "description": "The protocol the site wishes to handle, specified as a string. For example, you can register to handle SMS text message links by registering to handle the \"sms\" scheme.",
            "choices": [{
              "type": "string",
              "enum": [
                "bitcoin", "dat", "dweb", "geo", "gopher", "im", "ipfs", "ipns", "irc", "ircs", "magnet",
                "mailto", "mms", "news", "nntp", "sip", "sms", "smsto", "ssb", "ssh",
                "tel", "urn", "webcal", "wtai", "xmpp"
              ]
            }, {
              "type": "string",
              "pattern": "^(ext|web)\\+[a-z0-9.+-]+$"
            }]
          },
          "uriTemplate": {
            "description": "The URL of the handler, as a string. This string should include \"%s\" as a placeholder which will be replaced with the escaped URL of the document to be handled. This URL might be a true URL, or it could be a phone number, email address, or so forth.",
            "preprocess": "localize",
            "choices": [
              {"$ref": "ExtensionURL"},
              {"$ref": "HttpURL"}
            ]
          }
        }
      },
      {
        "$extend": "WebExtensionManifest",
        "properties": {
          "protocol_handlers": {
            "description": "A list of protocol handler definitions.",
            "optional": true,
            "type": "array",
            "items": {"$ref": "ProtocolHandler"}
          }
        }
      }
    ]
  }
]