Specification for the DevTools Core Protocol.
This is a proposal to introduce a DevTools Core Protocol Specification based on common and public API's that exposed by Chromium. These API's already are used and deployed on a broad variety of devices, and should give new implementors (ex: Microsoft, Mozilla, Facebook) a stable set of API's as an implemetation target. While giving existing implementors (Google, Apple) a head-start without pushing additional commitments on their shoulders, as the API's already committed to through their public and non-experimental nature.
This proposal is more casual in it's current state, but I imagine a traditional non normative W3C-style document could be written up over time.
This specification contains a protocol.json
generated by the generate-core-protocol script which grabs the Chrome's CDP 1.2 protocol.json files, and generates the command, event and type objects which are marked as non deprecared
or experimental
.
The proposal is to use the output as the starting point for this DevTools Core Protocol Specification.
The intent here is to establish a DevTools Core Protocol Specification, that serves as the minimim implementation, where addtional specifications can be added on top. Think of a similar model as the CSS Specifications with CSS level 1, CSS level 2, etc.
In the future specifications like "DevTools Time Travel Debugging" could be imagined.
We should adapt a simiar approach to how the Service Worker specification came to life, by using GitHub to manage issues, commits and revisions of the specification.
The RemoteDebug DevTools Core Protocol is based on JSON-RPC as the underlaying protocol, and the protocol is in it's nature transport agnostic, but WebSockets are widly used in today's implementations.
The current protocol.json
file can be viewed via the RemoteDebug Compatibility Tables, where it can be browsed and compared to other runtimes.