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