blob: 5fa52e08f21096544a46eed41c757f04f09c1545 [file] [log] [blame] [view]
# Skia Debugger
A web-based tool for viewing and inspecting SKP and MSKP files (recorded SkPictures)
The debugger consists of one-page app that uses a build of CanvasKit with extra bindings.
The wasm module draws the SKP file being inspected to the canvas in the center of the page.
Source for this wasm module is in the Skia repository at //modules/canvaskit/debugger_bindings.cpp
## Running locally
Run the following to run the debugger instance locally using the version built from ToT.
Talk to the Skia Infra team if you have permission issues that need to be sorted out.
```
make run-local-instance
```
To run debugger locally with a custom build of debugger, run the following in the Skia repo.
```
make -C modules/canvaskit with_debugger
```
This should copy the canvaskit.js, canvaskit.wasm, and canvaskit.d.ts to
`//debugger-app/wasm_libs/local_build`, assuming you have the `SKIA_INFRA_ROOT` environment
variable set. Then, you can run (in this repo)
```
make run-with-custom
```
Do not check in those files that were copied.
The application can now be loaded at http://localhost:8000/
The port can be changed via an environment variable, e.g.
```
DEBUGGER_LOCAL_PORT=:8123 make run-with-custom
```
## Production deployment
There are two Louhi flows that work to build this application.
`debugger-app-base` runs `//debugger-app:debugger_container-base` which creates
the application Docker image (minus CanvasKit). `debugger-app` runs
`//infra/debugger-app:debugger_container` (in the Skia repo), which injects
CanvasKit to create the final Docker image. Both of these flows are defined
in
[templates/config.yml](https://louhi-config-internal.googlesource.com/skia-infra/+/refs/heads/master/templates/config.yml).