summaryrefslogtreecommitdiffstats
path: root/dom/webidl/ExtensionRuntime.webidl
blob: c60f45c8f20092896b1df887054456e741b72805 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 *  THIS IS AN AUTOGENERATED FILE.  DO NOT EDIT
 *
 *  The content of this file has been generated based on the WebExtensions API
 *  JSONSchema using the following command:
 *
 *  export SCRIPT_DIR="toolkit/components/extensions/webidl-api"
 *  mach python $SCRIPT_DIR/GenerateWebIDLBindings.py -- runtime
 *
 *  More info about generating webidl API bindings for WebExtensions API at:
 *
 *  https://firefox-source-docs.mozilla.org/toolkit/components/extensions/webextensions/webidl_bindings.html
 *
 *  A short summary of the special setup used by these WebIDL files (meant to aid
 *  webidl peers reviews and sign-offs) is available in the following section:
 *
 *  https://firefox-source-docs.mozilla.org/toolkit/components/extensions/webextensions/webidl_bindings.html#review-process-on-changes-to-webidl-definitions
 */

/* 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/.
 *
 * You are granted a license to use, reproduce and create derivative works of
 * this document.
 */

// WebIDL definition for the "runtime" WebExtensions API
[Exposed=(ServiceWorker), LegacyNoInterfaceObject]
interface ExtensionRuntime {
  // API methods.

  [Throws, WebExtensionStub="Async"]
  any openOptionsPage(optional Function callback);

  [Throws, WebExtensionStub]
  any getManifest();

  [Throws, WebExtensionStub="ReturnsString"]
  DOMString getURL(DOMString path);

  [Throws, WebExtensionStub="Async"]
  any setUninstallURL(DOMString url, optional Function callback);
  [Throws, WebExtensionStub="Async"]
  any setUninstallURL(optional Function callback);

  [Throws, WebExtensionStub="NoReturn"]
  undefined reload();

  [Throws, WebExtensionStub="ReturnsPort"]
  ExtensionPort connect(DOMString extensionId, any connectInfo);
  [Throws, WebExtensionStub="ReturnsPort"]
  ExtensionPort connect(any connectInfo);
  [Throws, WebExtensionStub="ReturnsPort"]
  ExtensionPort connect();

  [Throws, WebExtensionStub="ReturnsPort"]
  ExtensionPort connectNative(DOMString application);

  [Throws, WebExtensionStub="AsyncAmbiguous"]
  any sendMessage(any... args);

  [Throws, WebExtensionStub="Async"]
  any sendNativeMessage(DOMString application, any message, optional Function responseCallback);

  [Throws, WebExtensionStub="Async"]
  any getBrowserInfo(optional Function callback);

  [Throws, WebExtensionStub="Async"]
  any getPlatformInfo(optional Function callback);

  // API events.

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onStartup;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onInstalled;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onUpdateAvailable;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onConnect;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onConnectExternal;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onMessage;

  [Replaceable, SameObject]
  readonly attribute ExtensionEventManager onMessageExternal;

  // API properties.

  [Replaceable]
  readonly attribute any lastError;

  [Replaceable]
  readonly attribute DOMString id;
};