diff options
author | Teddy Wing | 2021-01-17 18:32:24 +0100 |
---|---|---|
committer | Teddy Wing | 2021-01-17 18:32:24 +0100 |
commit | 19cf4f757250f92da5a4249c20781401c1750327 (patch) | |
tree | 4b3570630c5628c0608c6b60543e27ef72f67747 | |
parent | 2a504ce2a50f381a54562979eebf8e08a55e0786 (diff) | |
download | extreload-19cf4f757250f92da5a4249c20781401c1750327.tar.bz2 |
extreload: Send extension IDs to extension
Send hard-coded extension IDs to the companion extension to tell it to
reload them. Start an event loop to keep the native host running
indefinitely.
We'll then be able to send extension IDs from a command line client to
the native host over a Unix domain socket IPC.
-rw-r--r-- | extreload/Cargo.lock | 120 | ||||
-rw-r--r-- | extreload/Cargo.toml | 2 | ||||
-rw-r--r-- | extreload/src/main.rs | 23 |
3 files changed, 144 insertions, 1 deletions
diff --git a/extreload/Cargo.lock b/extreload/Cargo.lock index fb2639e..baccb45 100644 --- a/extreload/Cargo.lock +++ b/extreload/Cargo.lock @@ -1,5 +1,125 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] +name = "byteorder" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" + +[[package]] +name = "chrome_native_messaging" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1aae81d5bec9e77da011beafb9b15af3895ea6d42e87d2f2f9af4f11013dcdc" +dependencies = [ + "byteorder", + "serde", + "serde_json", + "thiserror", +] + +[[package]] name = "extreload" version = "0.0.1" +dependencies = [ + "chrome_native_messaging", + "serde", +] + +[[package]] +name = "itoa" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" + +[[package]] +name = "proc-macro2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "serde" +version = "1.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "syn" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "thiserror" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" diff --git a/extreload/Cargo.toml b/extreload/Cargo.toml index 7bc9ee3..c5a64b7 100644 --- a/extreload/Cargo.toml +++ b/extreload/Cargo.toml @@ -4,3 +4,5 @@ version = "0.0.1" edition = "2018" [dependencies] +chrome_native_messaging = "0.2.0" +serde = "1.0.119" diff --git a/extreload/src/main.rs b/extreload/src/main.rs index e7a11a9..2d98de8 100644 --- a/extreload/src/main.rs +++ b/extreload/src/main.rs @@ -1,3 +1,24 @@ +use chrome_native_messaging; +use serde::Serialize; + +use std::io; + +#[derive(Serialize)] +struct ExtensionIdMessage<'a> { + ids: &'a[&'a str] +} + fn main() { - println!("Hello, world!"); + let ids = vec!["extension_id"]; + + chrome_native_messaging::send_message( + io::stdout(), + &ExtensionIdMessage { ids: &ids } + ).expect("TODO: handle error"); + + chrome_native_messaging::event_loop(|value| -> Result<(), &str> { + match value { + _ => Ok(()), + } + }); } |