web_extensions_sys/
port.rs

1use crate::{EventTarget, Tab};
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5extern "C" {
6    #[derive(Debug, Clone)]
7    pub type MessageSender;
8
9    #[wasm_bindgen(method, getter)]
10    pub fn tab(this: &MessageSender) -> Option<Tab>;
11
12    // TODO is this correct ?
13    #[wasm_bindgen(method, getter, js_name = frameId)]
14    pub fn frame_id(this: &MessageSender) -> Option<u32>;
15
16    #[wasm_bindgen(method, getter)]
17    pub fn id(this: &MessageSender) -> Option<String>;
18
19    #[wasm_bindgen(method, getter)]
20    pub fn url(this: &MessageSender) -> Option<String>;
21
22    #[wasm_bindgen(method, getter, js_name = tlsChannelId)]
23    pub fn tls_channel_id(this: &MessageSender) -> Option<String>;
24}
25
26#[wasm_bindgen]
27extern "C" {
28    #[derive(Debug, Clone, PartialEq)]
29    pub type Port;
30
31    #[wasm_bindgen(method, getter)]
32    pub fn name(this: &Port) -> String;
33
34    // TODO is this correct ?
35    #[wasm_bindgen(method, getter)]
36    pub fn error(this: &Port) -> js_sys::Error;
37
38    #[wasm_bindgen(method)]
39    pub fn disconnect(this: &Port);
40
41    #[wasm_bindgen(method, getter, js_name = onDisconnect)]
42    pub fn on_disconnect(this: &Port) -> EventTarget;
43
44    #[wasm_bindgen(method, getter, js_name = onMessage)]
45    pub fn on_message(this: &Port) -> EventTarget;
46
47    #[wasm_bindgen(method, js_name = postMessage)]
48    pub fn post_message(this: &Port, value: &JsValue);
49
50    #[wasm_bindgen(method, getter)]
51    pub fn sender(this: &Port) -> Option<MessageSender>;
52}