use super::EventTarget;
use hashi::JsResult;
use js_sys::Object;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
pub type Runtime;
#[wasm_bindgen(method, getter = "id")]
pub fn id(this: &Runtime) -> String;
#[wasm_bindgen(method, getter = "lastError")]
pub fn last_error(this: &Runtime) -> Option<Object>;
#[wasm_bindgen(method, getter = "onInstalled")]
pub fn on_installed(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, getter = "onMessage")]
pub fn on_message(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, getter = "onMessageExternal")]
pub fn on_message_external(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, getter = "onStartup")]
pub fn on_startup(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, getter = "onSuspend")]
pub fn on_suspend(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, getter = "onSuspendCanceled")]
pub fn on_suspend_canceled(this: &Runtime) -> EventTarget;
#[wasm_bindgen(method, js_name = "getManifest")]
pub fn get_manifest(this: &Runtime) -> Object;
#[wasm_bindgen(method, js_name = "getPlatformInfo")]
pub async fn get_platform_info(this: &Runtime) -> PlatformInfo;
#[wasm_bindgen(method, js_name = "getURL")]
pub fn get_url(this: &Runtime, path: &str) -> String;
#[wasm_bindgen(method, catch, js_name = "openOptionsPage")]
pub async fn open_options_page(this: &Runtime) -> JsResult<()>;
#[wasm_bindgen(method, js_name = "reload")]
pub fn reload(this: &Runtime);
#[wasm_bindgen(method, catch, js_name = "requestUpdateCheck")]
pub async fn request_update_check(this: &Runtime) -> JsResult<Object>;
#[wasm_bindgen(method, js_name = "restart")]
pub fn restart(this: &Runtime);
#[wasm_bindgen(method, catch, js_name = "restartAfterDelay")]
pub async fn restart_after_delay(this: &Runtime, seconds: u32) -> JsResult<()>;
#[wasm_bindgen(method, catch, js_name = "sendMessage")]
pub async fn send_message(
this: &Runtime,
extension_id: Option<&str>,
message: &JsValue,
options: Option<&Object>,
) -> JsResult<JsValue>;
#[wasm_bindgen(method, catch, js_name = "sendNativeMessage")]
pub async fn send_native_message(
this: &Runtime,
application: &str,
message: &JsValue,
) -> JsResult<JsValue>;
#[wasm_bindgen(method, catch, js_name = "setUninstallURL")]
pub async fn set_uninstall_url(this: &Runtime, url: &str) -> JsResult<()>;
}
#[wasm_bindgen]
extern "C" {
pub type PlatformInfo;
#[wasm_bindgen(method, getter = "arch")]
pub fn arch(this: &PlatformInfo) -> PlatformArch;
#[wasm_bindgen(method, getter = "nacl_arch")]
pub fn nacl_arch(this: &PlatformInfo) -> PlatformNaclArch;
#[wasm_bindgen(method, getter = "os")]
pub fn os(this: &PlatformInfo) -> PlatformOs;
}
#[wasm_bindgen]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PlatformArch {
Arm = "arm",
Arm64 = "arm64",
X86_32 = "x86-32",
X86_64 = "x86-64",
Mips = "mips",
Mips64 = "mips64",
Riscv64 = "riscv64",
}
#[wasm_bindgen]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PlatformNaclArch {
Arm = "arm",
X86_32 = "x86-32",
X86_64 = "x86-64",
Mips = "mips",
Mips64 = "mips64",
}
#[wasm_bindgen]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PlatformOs {
Mac = "mac",
Windows = "win",
Android = "android",
Chrome = "cros",
Linux = "linux",
OpenBSD = "openbsd",
}