Contributing

Consumer guides live on the other pages. This note is for claiming a new Playwright channel method when a suite or hub app needs it. Playwright pin bumps and pwBump live in the repo README.

Extending the command allowlist

Chekhov claims a curated set of channel methods. Param ADTs in Commands.scala are generated from the pinned protocol.yml. Do not edit generated field lists by hand.

  1. Confirm the method exists: ProtocolSurface.has("Channel", "method") or search protocol.yml under that channel’s commands:.

  2. Append CommandSpec("Channel", "method", "CaseClassName") to project/ProtocolCodegen.scalacommandAllowlist.

  3. Run sbt pwCodegen (also part of pwBump / pwVendor).

  4. Wire PlaywrightDriver (and the public algebra if it is user-facing).

  5. Commit the allowlist change and regenerated sources together.

The storage cluster (storageState, cookies, webStorage*) is already claimed for hub apps.

ProtocolSurface.has("BrowserContext", "storageState")
true