Building

  • With dart2js:
dart run build_runner build web -o build -r

This will build to the /web directory.

  • With DDC:
dart run build_runner build web -o build

This will build to the /build/web directory.

Local Development

Update manifest.json:

  • Change the default_icon in manifest.json to dart_dev.png (Note: this is not strictly necessary, but will help you to distinguish your local version of the extension from the published version)
  • [For Googlers] The developer key is needed for local development and testing. Add one of the whitelisted keys to web/manifest.json. IMPORTANT: DO NOT COMMIT THE KEY.
{
    "name": "Dart Debug Extension",
    "key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    ...
}

Build and upload your local extension

  • Build the extension following the instructions above
  • Visit chrome://extensions
  • Toggle “Developer mode” on
  • Click the “Load unpacked” button
  • Select the extension directory: /dwds/debug_extension/web

Debug your local extension

  • Click the Extensions puzzle piece, and pin the Dart Debug Extension with the dev icon (unpin the published version so you don't confuse them)
  • You can now use the extension normally by clicking it when a local Dart web application has loaded in a Chrome tab
  • To debug, visit chrome://extensions and click “Inspect view on background page” to open Chrome DevTools for the extension
  • More debugging information can be found in the Chrome Developers documentation

Release process

  1. Update the version in web/manifest.json, pubspec.yaml, and in the CHANGELOG.
  2. Build dart2js: pub run build_runner build web -o build -r

At this point, you should manually verify that everything is working by following the steps in Local Development.

  1. Open a PR to submit the version and build changes.
  2. Once submitted, pull the changes down to your local branch, and create a zip of the debug_extension/web directory (NOT debug_extension/build/web).
  3. Rename the zip version_XX.XX.XX.zip (eg, version_1.24.0.zip) and add it to the go/dart-debug-extension-zips folder

You must be a Googler to do this. Ask for help if not.

  1. Go to the Chrome Web Store Developer Dashboard.
  2. At the top-right, under Publisher, select dart-bat.

If you don’t see dart-bat as an option, you will need someone on the Dart team to add you to the dart-bat Google group.

  1. Under Items, select the “Dart Debug Extension”.
  2. Go to “Package” then select “Upload new package”.

The first time you do this, you will be asked to pay a $5 registration fee. The registration fee can be expensed.

  1. Upload the zip file you created in step 4.
  2. Save as draft, and verify that the new version is correct.
  3. Publish. The extension will be published immediately after going through the review process.

Rollback process

The Chrome Web Store Developer Dashboard does not support rollbacks. Instead you must re-publish an earlier version. This means that the extension will still have to go through the review process, which can take anywhere from a few hours (most common) to a few days.

  1. Find the previous version you want to rollback to in the go/dart-debug-extension-zips folder.

You must be a Googler to do this. Ask for help if not.

  1. Unzip the version you have chosen, and in manifest.json edit the version number to be the next sequential version after the current “bad” version (eg, the bad version is 1.28.0 and you are rolling back to version 1.27.0. Therefore you change 1.27.0 to 1.29.0).
  2. Re-zip the directory and rename it to the new version number. Add it to the go/dart-debug-extension-zips folder.
  3. Now, follow steps 6 - 11 in Release process.