tree: de3d79a6ca37fbae6db302375a1ff1b1869e07cb [path history] [tgz]
  1. go/
  2. modules/
  3. pages/
  4. static/
  5. .gitignore
  6. build_release
  7. Dockerfile
  8. favicon.png
  9. karma.conf.ts
  10. Makefile
  11. package-lock.json
  12. package.json
  13. README.md
  14. tsconfig.json
  15. webpack.config.ts
debugger-app/README.md

Skia Debugger

A web-based tool for viewing and inspecting SKP and MSKP files (recorded SkPictures)

The debugger consists of one-page app that that loads a wasm module loosely based on canvaskit the wasm module draws SKP file being inspected to the canvas in the center of the page. Source for this wasm module is in the skia repository at //experimental/wasm-skp-debugger

Running locally

Once, after a clean checkout, run the following

cd ../infra-sk
npm ci
cd ../puppeteer-tests/
npm ci
cd ../debugger-app
npm ci

Obtain the debugger wasm binary. You can either download the production version with

make wasm_libs

Or build it locally in the skia repo. (This also copies it to the correct dir)

cd experimental/wasm-skp-debugger
make local-debug

Start serving the application locally. (from this dir)

make serve

The application can now be loaded at http://localhost:8080/dist/main.html

Live reloading is enabled and will catch any change in typescript, javascript, css, or static files including changes to the wasm binary from make local-debug in the skia repo which copies the .wasm file here. Note that live reloading will not catch changes to webpack.config.ts

Webpack will show typescript compilation errors in the javascript console of the page and in the terminal.

Production deployment

There is an talk_driver that will deploy this application at ToT configured in infra/bots/task_drivers/push_apps_from_skia_wasm_images/push_apps_from_skia_wasm_images.go It is running make release_ci which in turn runs the build_release script in this directory.

In production, the app is served from go/debugger-app/main.go. See https://skia-review.googlesource.com/c/buildbot/+/334818 for the initial deployment.