use js_sys::Function;
use wasm_bindgen::{JsThreadLocal, prelude::wasm_bindgen};
pub use crate::extension_sys::storage::{Storage, StorageArea};
mod storage;
pub fn browser() -> &'static JsThreadLocal<Browser> {
&BROWSER
}
#[wasm_bindgen]
extern "C" {
pub type Browser;
#[cfg(feature = "firefox")]
#[wasm_bindgen(thread_local_v2, js_name = browser)]
static BROWSER: Browser;
#[wasm_bindgen(method, getter)]
pub fn storage(this: &Browser) -> Storage;
}
#[wasm_bindgen]
extern "C" {
pub type EventTarget;
#[wasm_bindgen(method, js_name = addListener)]
pub fn add_listener(this: &EventTarget, listener: &Function);
#[wasm_bindgen(method, js_name = removeListener)]
pub fn remove_listener(this: &EventTarget, listener: &Function);
#[wasm_bindgen(method, js_name = hasListener)]
pub fn has_listener(this: &EventTarget, listener: &Function) -> bool;
}