web_extensions_sys/
runtime.rs

1use crate::{EventTarget, Port};
2use js_sys::Object;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6extern "C" {
7    pub type Runtime;
8
9    #[wasm_bindgen(catch, method, js_name = sendMessage)]
10    pub async fn send_message(
11        this: &Runtime,
12        extension_id: Option<&str>,
13        message: &JsValue,
14        options: Option<&Object>,
15    ) -> Result<JsValue, JsValue>;
16
17    #[wasm_bindgen(catch, method, js_name = sendNativeMessage)]
18    pub async fn send_native_message(
19        this: &Runtime,
20        application: &str,
21        message: &Object,
22    ) -> Result<JsValue, JsValue>;
23
24    #[wasm_bindgen(method)]
25    pub fn connect(this: &Runtime, extension_id: Option<&str>, connect_info: &Object) -> Port;
26
27    #[wasm_bindgen(method, getter, js_name = onMessage)]
28    pub fn on_message(this: &Runtime) -> EventTarget;
29
30    #[wasm_bindgen(method, getter, js_name = onConnect)]
31    pub fn on_connect(this: &Runtime) -> EventTarget;
32
33    #[wasm_bindgen(method, getter, js_name = onInstalled)]
34    pub fn on_installed(this: &Runtime) -> EventTarget;
35
36    #[wasm_bindgen(method, js_name = setUninstallURL)]
37    pub fn set_uninstall_url(this: &Runtime, url: &str);
38
39    #[wasm_bindgen(method, js_name = openOptionsPage)]
40    pub fn open_options_page(this: &Runtime);
41
42    #[wasm_bindgen(method, getter, js_name = lastError)]
43    pub fn last_error(this: &Runtime) -> Option<js_sys::Error>;
44}