On 8/30/2017 15:56, David Burns wrote:
> Do we know if the other vendors would see value in having this spec'ed properly so that we have true interop here? Reverse engineering  seems like a "fun" project but what stops people from breaking stuff without realising?

Fortunately we're not reverse engineering here (for the most part), all protocol messages are specified in a machine-readable JSON format which includes inline documentation [0] --- this is what the cdp Rust library consumes. The spec is versioned and the authors do seem to follow a proper process of introducing new features as "experimental", stabilizing mature ones, and deprecating things before they're removed.

There's the Chrome DevTools Protocol viewer which provides a human-readable view [1], or if you prefer, the Rustdoc generated from the cdp crate [2] which carries over all the same information from the specification JSON.

Exposing a typed Rust interface is intended to help us avoid "breaking stuff without realizing". Other projects like Node.js have also adopted the CDP and an ecosystem of applications have grown around it which provide a counterweight against random breakages on Chrome's end.

As far as standardization goes, I'm aware of the RemoteDebug.org [3] initiative which has been trying to standardize parts of the CDP as a cross-browser remote debugging protocol. From what I recall from conversations with others I believe Edge is also interested in this, as they're introducing their own CDP implementation/compatibility layer.

On 8/30/2017 17:20, Eric Rescorla wrote:
> I assume this is going to involve TLS (generally this is a requirement for H2). In Firefox, this is done with NSS. Does Tokio/Hyper cleanly separate out the TLS stack so that you can do that?

The Chrome DevTools Protocol actually only runs over HTTP/1.1 and WebSockets, without TLS (binding to a port on a local interface, so transport security is less of a concern). My reference to HTTP/2 concerned the possibility of Servo wanting to support that protocol, which would necessitate an upgrade to the future hyper version that will support it, which in turn would mean pulling Tokio into Servo.

On 8/30/2017 18:04, Josh Matthews wrote:
> One clarification - while all of the Servo codebase exists in mozilla-central/servo/, only the dependencies used by Stylo are vendored in third-party/rust. That means that neither hyper nor tokio are vendored in mozilla-central at the moment, or part of any mozilla-central build.

Isn't it vendored into third_party/rust/hyper [4] on mozilla-central?

-Michael

[0] https://github.com/ChromeDevTools/devtools-protocol/tree/master/json
[1] https://chromedevtools.github.io/devtools-protocol/
[2] https://www.spinda.net/files/mozilla/cdp/doc/cdp/tools/index.html
[3] https://remotedebug.org/
[4] http://searchfox.org/mozilla-central/source/third_party/rust/hyper
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to