diff options
| author | Teddy Wing | 2021-01-20 00:51:44 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2021-01-20 00:51:44 +0100 | 
| commit | 1c06d6f0fe55768a76ce1359262dd4d245798328 (patch) | |
| tree | 30b1fca76c32d500c9689add7d12497e1a016512 | |
| parent | 555d726a59ddf6206e650b226b88f397f5f9f00a (diff) | |
| download | extreload-1c06d6f0fe55768a76ce1359262dd4d245798328.tar.bz2 | |
extreload: Try parsing `GetTargets` response
Tried to parse the response from the `GetTargets` message, but ended up
with this error:
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err`
    value: Error("unknown variant `iframe`, expected one of `page`,
    `background_page`, `service_worker`, `browser`, `other`", line: 0,
    column: 0)',
    /Users/tw/.cargo/registry/src/github.com-1ecc6299db9ec823/headless_chrome-0.9.0/src/protocol/mod.rs:90:70
Looks like the `headless_chrome` library doesn't include "iframe" as a
`TargetType`:
https://docs.rs/headless_chrome/0.9.0/headless_chrome/protocol/target/enum.TargetType.html
Will have to modify the library, use a different library, or write my
own types to serialize & deserialize.
| -rw-r--r-- | extreload/src/main.rs | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/extreload/src/main.rs b/extreload/src/main.rs index 73b26e5..d37acd8 100644 --- a/extreload/src/main.rs +++ b/extreload/src/main.rs @@ -1,5 +1,5 @@  use headless_chrome; -use headless_chrome::protocol::Method; +use headless_chrome::protocol::{Method, parse_raw_message, parse_response};  use serde_json;  use tungstenite::{connect, Message};  use url::Url; @@ -18,5 +18,15 @@ fn main() {      loop {          let msg = socket.read_message().expect("Error reading message");          println!("Received: {}", msg); + +        match parse_raw_message(&msg.into_text().unwrap()).unwrap() { +            headless_chrome::protocol::Message::Event(_event) => (), +            headless_chrome::protocol::Message::Response(response) => { +                let message: headless_chrome::protocol::target::methods::GetTargetsReturnObject = parse_response(response).unwrap(); + +                dbg!(message); +            }, +            headless_chrome::protocol::Message::ConnectionShutdown => (), +        };      }  } | 
