On 31/08/17 02:14, Michael Smith wrote:
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.
I think that the reverse engineering part is not the wire protocol,
which is usually the most trivial part, but the associated semantics. It
doesn't seem that useful to support the protocol unless we behave in the
same way as Chrome in response to the messages. It's the specification
of that behaviour which is — as far as I can tell — missing, and which
seems likely to involve reverse engineering.
In general it seems unfortunate if we are deciding to implement a
proprietary protocol rather than opting to either extend something that
is already a standard (e.g. WebDriver) or perform standardisation work
alongside the implementation. What alternatives have we considered here?
Is it possible to extend existing standards with missing features? Or
are the current tools using the protocol so valuable that we don't have
any choice but to support them on their terms? If it's the latter, or we
just think the Chrome protocol is so technically superior to the other
options that we would be foolish to ignore it, can we work with Google
to get it standardised? I think some meaningful attempt at
standardisation should be a prerequisite to this kind of protocol
implementation shipping in Firefox.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform