blob: 716f1bb9199de170d1dae3b978b4a8eaea570b2b [file] [log] [blame] [view] [edit]
# Chrome Debugging Protocol
We keep multiple versions of the protocol in the tree in order to allow us to generate bindings as
needed.
They are typically downloaded from the [devtools source][]
Fortunately both Chrome and Edge are based off Chromium releases and those are OSS. In order to get
the versions of the protocol spoken by particular releases of Chrome:
* Find out the latest version of [Stable Channel Update for Desktop][] (e.g., `96.0.4664.45`).
* Create a `vXX` directory under `//common/devtools/chromium` (e.g. `v96` for `96.0.4664.45`)
* Copy the `BUILD.bazel` file from the `vXX-1` directory.
* Navigate to the [Chromium source][] and open the tag matching the release number.
* Find `//third_party/blink/public/devtools_protocol/browser_protocol.pdl` and download the file
to `//common/devtools/chromium/vXX`.
* (Quick link:
`https://raw.githubusercontent.com/chromium/chromium/<LATEST_VERSION_NUMBER>/third_party/blink/public/devtools_protocol/browser_protocol.pdl`)
* Now figure out the version of v8 used by the version of Chromium. In Chromium's source, navigate
to `//:DEPS` and search for `v8_revision`
* (Quick
link: `https://github.com/chromium/chromium/blob/<LATEST_VERSION_NUMBER>/DEPS#:~:text=the%20commit%20queue%20can%20handle%20cls%20rolling%20v8`)
* Head over to the [v8 source](https://github.com/v8/v8) and switch to the indicated revision
* (e.g., `451d38b60be0a0f692b11815289cf8cbc9b1dc98`)
* Find `//include/js_protocol.pdl` and download the file to `//common/devtools/chromium/vXX`.
(Quick link: `https://github.com/v8/v8/raw/<V8_REVISION_NUMBER>/include/js_protocol.pdl`)
You may also find the same information at the [OmahaProxy CSV Viewer][]
We have a modified form of the scripts used by Chromium to generate the protocol files. The
originals were in:
https://github.com/chromium/chromium/blob/master/third_party/inspector_protocol/convert_protocol_to_json.py
[devtools source]: https://github.com/ChromeDevTools/devtools-protocol/tree/master/json
[Stable Channel Update for Desktop]: https://chromereleases.googleblog.com/search/label/Stable%20updates
[Chromium source]: https://github.com/chromium/chromium/
[OmahaProxy CSV Viewer]: https://omahaproxy.appspot.com