Skip to content

Latest commit

 

History

History
33 lines (17 loc) · 2.37 KB

README.md

File metadata and controls

33 lines (17 loc) · 2.37 KB

DevTools Core Protocol Specification

Specification for the DevTools Core Protocol.

The proposal

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.

The API starting point

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.

Core Protocol

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.

Proposing new APIs and changes

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.

Protocol & transport

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.

Documentation

The current protocol.json file can be viewed via the RemoteDebug Compatibility Tables, where it can be browsed and compared to other runtimes.