diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 9aaa148..826dee2 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -28,6 +28,11 @@ jobs: build_3d_viewer: "ON" run_tests: true upload_output: true + secrets: + # Read-only R2 pair so the screenshot drift report runs on staging builds + # too (baselines live in R2 now; without these the fetch/compare steps skip). + CI_SCREENSHOTS_S3_ACCESS_KEY_ID: ${{ secrets.CI_SCREENSHOTS_S3_ACCESS_KEY_ID }} + CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY: ${{ secrets.CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY }} publish-and-deploy: needs: build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 713c930..5364e1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -77,6 +77,11 @@ jobs: build_3d_viewer: "ON" run_tests: true upload_output: true + secrets: + # Read-only R2 pair so the screenshot drift report runs on tag builds too + # (baselines live in R2 now; without these the fetch/compare steps skip). + CI_SCREENSHOTS_S3_ACCESS_KEY_ID: ${{ secrets.CI_SCREENSHOTS_S3_ACCESS_KEY_ID }} + CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY: ${{ secrets.CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY }} # 2) Publish the build to the CDN (content-addressed; unchanged tools reuse) # and write manifest-.json. The slow step is brotli-q11 over ~300MB of diff --git a/.github/workflows/screenshot-changelog.yml b/.github/workflows/screenshot-changelog.yml index 76bfabd..b93c784 100644 --- a/.github/workflows/screenshot-changelog.yml +++ b/.github/workflows/screenshot-changelog.yml @@ -1,17 +1,19 @@ name: screenshot-changelog -# Discord trigger B: when a push to main changes committed baseline PNGs, post an -# old | new+boxes | heatmap triptych per changed baseline (ADDED image / REMOVED -# title too). No build, no GPU — it only diffs two git revisions of PNGs that are -# already CI-rendered, so it runs in ~30s. Complements the re-render drift gate in -# wasm-build.yml (which catches un-blessed renders); this is the human-facing feed -# of intentional baseline updates as they land. +# Discord trigger B: when a push to main changes the screenshot manifest (the +# committed pin of every R2-stored baseline), post an old | new+boxes | heatmap +# triptych per changed baseline (ADDED image / REMOVED title too). No build, no +# GPU — it diffs two git revisions of the manifest and fetches the PNG bytes +# from the R2 CAS bucket (immutable objects, so the old rev's hashes always +# resolve), so it runs in ~30s. Complements the re-render drift gate in +# wasm-build.yml (which catches un-blessed renders); this is the human-facing +# feed of intentional baseline updates as they land. on: push: branches: [main] paths: - - 'tests/baseline-screenshots/**.png' + - 'tests/screenshot-manifest.json' concurrency: group: screenshot-changelog-${{ github.ref }} @@ -23,7 +25,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - # HEAD^ is needed to diff the tip commit's baseline changes. (A push of + # HEAD^ is needed to diff the tip commit's manifest changes. (A push of # multiple commits reports only the tip commit's baseline diff — fine for # a changelog; baseline refreshes are single commits in practice.) fetch-depth: 2 @@ -37,4 +39,7 @@ jobs: working-directory: tests env: DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} + CI_SCREENSHOTS_S3_ENDPOINT: ${{ vars.CI_SCREENSHOTS_S3_ENDPOINT }} + CI_SCREENSHOTS_S3_ACCESS_KEY_ID: ${{ secrets.CI_SCREENSHOTS_S3_ACCESS_KEY_ID }} + CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY: ${{ secrets.CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY }} run: npm run screenshots:changelog diff --git a/.github/workflows/wasm-build.yml b/.github/workflows/wasm-build.yml index 28d1f3c..52785de 100644 --- a/.github/workflows/wasm-build.yml +++ b/.github/workflows/wasm-build.yml @@ -43,6 +43,13 @@ on: # screenshot/perf report step just no-ops there. DISCORD_WEBHOOK_URL: required: false + # Read-only S3 keypair for the private R2 screenshot-baseline bucket + # (pcbjam-ci-screenshots). Optional for the same reason: without them the + # baseline fetch skips and the compare gate no-ops (report-only pipeline). + CI_SCREENSHOTS_S3_ACCESS_KEY_ID: + required: false + CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY: + required: false jobs: build-and-test: @@ -304,10 +311,36 @@ jobs: working-directory: tests run: npm ci + # Baseline screenshots live in a private R2 bucket, pinned by the committed + # manifest; this cache keyed on the manifest hash makes most fetches a + # no-op (r2-sync hash-verifies every restored file, so a stale restore + # costs only the changed downloads). + - name: Cache screenshot baselines + if: inputs.run_tests + uses: actions/cache@v4 + with: + path: tests/baseline-screenshots + key: baselines-${{ hashFiles('tests/screenshot-manifest.json') }} + + # continue-on-error: the screenshot pipeline is deliberately report-only + # (see the report step) — an R2 outage must not fail the build. Without + # credentials (release.yml, fork PRs) r2-sync skips with a warning and + # compare.ts later no-ops for the same reason. + - name: Fetch screenshot baselines from R2 + if: inputs.run_tests + continue-on-error: true + working-directory: tests + env: + CI_SCREENSHOTS_S3_ENDPOINT: ${{ vars.CI_SCREENSHOTS_S3_ENDPOINT }} + CI_SCREENSHOTS_S3_ACCESS_KEY_ID: ${{ secrets.CI_SCREENSHOTS_S3_ACCESS_KEY_ID }} + CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY: ${{ secrets.CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY }} + run: npm run screenshots:fetch + # Cheap hygiene gates (no build needed): the determinism lint keeps the - # banned flake patterns out of the specs, the manifest check keeps - # screenshot-manifest.json in lockstep with the committed baselines - # (a stale manifest silently disables removed-screenshot detection), and + # banned flake patterns out of the specs, the manifest check validates + # screenshot-manifest.json (v2 schema, sorted/unique hashes) and fails if + # baseline PNGs are ever re-committed to git (credential-free — it never + # touches R2, so it gates secretless callers identically), and # the CI-coverage lint proves every spec file on disk is reachable from # the npm scripts THIS workflow invokes (a spec/project that CI never # runs is how the web suite once rotted unnoticed). diff --git a/.gitignore b/.gitignore index 04d37c5..4985320 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,11 @@ wxwidgets-clean/ /tests/node_modules/ /tests/playwright-report/ /tests/test-results/ +# Baseline screenshots are a local cache fetched from R2 (tests/tools/screenshots/r2-sync.ts); +# only tests/screenshot-manifest.json is committed. The .env holds a dev's +# R2 keypair (r2-store.ts auto-loads it) — never commit it. +/tests/baseline-screenshots/ +/tests/.env /tests/bench-results/ /tests/pw-artifacts/ /tests/.test-port diff --git a/CLAUDE.md b/CLAUDE.md index 8c96da3..38da11d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -7,8 +7,8 @@ The e2e tests are in /tests, with a README and WHATWORKS md files Test determinism rules (no blind sleeps/ifs, `stableShot` screenshots, retries:0) are in tests/TESTING.md, enforced by `npm run lint:determinism`. The e2e tests are separated per feature Wxwidgets wasm port has hooks for finding positions of UI elements, tests use that -The test screenshots are tracked with git, per engine (tests/baseline-screenshots/{chromium,firefox}/); CI's Linux render is the source of truth (tooling: tests/tools/screenshots/, see its README). -To update baselines, promote a CI run's render (churn-free — only meaningfully-changed images restage): `cd tests && npm run screenshots:promote -- --run `, then commit. `npm run screenshots:check` is the local gate; on each main push CI posts a screenshot-diff + runtime-perf report to Discord. +The test screenshot baselines live in a private R2 bucket (content-addressed by sha256), pinned per engine by the committed tests/screenshot-manifest.json; tests/baseline-screenshots/{chromium,firefox}/ is a gitignored local cache — `cd tests && npm run screenshots:fetch` materializes it (needs the R2 credentials in tests/tools/screenshots/README.md). CI's Linux render is the source of truth (tooling: tests/tools/screenshots/, see its README). +To update baselines, promote a CI run's render (churn-free — only meaningfully-changed images re-upload): `cd tests && npm run screenshots:promote -- --run ` (needs the read-write R2 credentials), then commit the manifest diff — never commit PNGs. `npm run screenshots:check` is the local gate (fetch first); on each main push CI posts a screenshot-diff + runtime-perf report to Discord. The tests have log files in tests/logs/{wxwidgets/kicad}/{test-name} after each run where the js console and cpp logs are visible Always check screenshots for validating tests Run e2e tests from /tests folder: `npm run test:e2e` (full CI project set, one merged playwright.config.ts) or `npm run test:kicad` (firefox shortcut) — not playwright directly. One spec/engine: `npx playwright test --project=kicad-firefox kicad/pcbnew.spec.ts`. Web-app suite: `npm run test:web`. diff --git a/tests/.gitignore b/tests/.gitignore index f8324d6..c96ffd2 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,6 +1,8 @@ # Screenshot model: specs capture via stableShot() → page.screenshot into test-results/, which is -# transient and gitignored at the repo root (/tests/test-results/). The committed baselines live in -# tests/baseline-screenshots/ (+ 3d-regression/, gal-regression/), authored from CI's deterministic -# Linux render and diffed OFFLINE by tools/screenshots. There are no Playwright-native -# *-snapshots/ baselines — Playwright does no inline screenshot comparison. +# transient and gitignored at the repo root (/tests/test-results/). Baselines live in a private R2 +# bucket, content-addressed by sha256 and pinned by the committed screenshot-manifest.json; +# tests/baseline-screenshots/ is a gitignored local cache (`npm run screenshots:fetch`), authored +# from CI's deterministic Linux render and diffed OFFLINE by tools/screenshots. (3d-regression/ and +# gal-regression/ baselines are still committed.) There are no Playwright-native *-snapshots/ +# baselines — Playwright does no inline screenshot comparison. logs/ diff --git a/tests/baseline-screenshots/chromium/01-loading.png b/tests/baseline-screenshots/chromium/01-loading.png deleted file mode 100644 index a808b2c..0000000 Binary files a/tests/baseline-screenshots/chromium/01-loading.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/03-after-load.png b/tests/baseline-screenshots/chromium/03-after-load.png deleted file mode 100644 index f83862e..0000000 Binary files a/tests/baseline-screenshots/chromium/03-after-load.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/04-controls-tab.png b/tests/baseline-screenshots/chromium/04-controls-tab.png deleted file mode 100644 index 17e9be1..0000000 Binary files a/tests/baseline-screenshots/chromium/04-controls-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/05-text-input-tab.png b/tests/baseline-screenshots/chromium/05-text-input-tab.png deleted file mode 100644 index 5e87b6b..0000000 Binary files a/tests/baseline-screenshots/chromium/05-text-input-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/06-text-input-typed.png b/tests/baseline-screenshots/chromium/06-text-input-typed.png deleted file mode 100644 index deced9e..0000000 Binary files a/tests/baseline-screenshots/chromium/06-text-input-typed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/07-drawing-tab.png b/tests/baseline-screenshots/chromium/07-drawing-tab.png deleted file mode 100644 index 7574a4f..0000000 Binary files a/tests/baseline-screenshots/chromium/07-drawing-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/08-drawing-done.png b/tests/baseline-screenshots/chromium/08-drawing-done.png deleted file mode 100644 index 1f235d2..0000000 Binary files a/tests/baseline-screenshots/chromium/08-drawing-done.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/09-lists-tab.png b/tests/baseline-screenshots/chromium/09-lists-tab.png deleted file mode 100644 index ed8891d..0000000 Binary files a/tests/baseline-screenshots/chromium/09-lists-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/10-lists-clicked.png b/tests/baseline-screenshots/chromium/10-lists-clicked.png deleted file mode 100644 index ed8891d..0000000 Binary files a/tests/baseline-screenshots/chromium/10-lists-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/10b-choice-selected.png b/tests/baseline-screenshots/chromium/10b-choice-selected.png deleted file mode 100644 index 741c1ef..0000000 Binary files a/tests/baseline-screenshots/chromium/10b-choice-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/11-file-menu.png b/tests/baseline-screenshots/chromium/11-file-menu.png deleted file mode 100644 index 72b06d7..0000000 Binary files a/tests/baseline-screenshots/chromium/11-file-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/12-help-menu.png b/tests/baseline-screenshots/chromium/12-help-menu.png deleted file mode 100644 index 741c1ef..0000000 Binary files a/tests/baseline-screenshots/chromium/12-help-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/13-final.png b/tests/baseline-screenshots/chromium/13-final.png deleted file mode 100644 index 722ef16..0000000 Binary files a/tests/baseline-screenshots/chromium/13-final.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-00-board-loaded.png b/tests/baseline-screenshots/chromium/3d-viewer-00-board-loaded.png deleted file mode 100644 index efdef2b..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-00-board-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer-render.png b/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer-render.png deleted file mode 100644 index cd3df55..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer-render.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer.png b/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer.png deleted file mode 100644 index e68e621..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-models-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer-render.png b/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer-render.png deleted file mode 100644 index 27596f7..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer-render.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer.png b/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer.png deleted file mode 100644 index d204461..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/3d-viewer-titlebar.png b/tests/baseline-screenshots/chromium/3d-viewer-titlebar.png deleted file mode 100644 index 2cff496..0000000 Binary files a/tests/baseline-screenshots/chromium/3d-viewer-titlebar.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-00-layers.png b/tests/baseline-screenshots/chromium/appearance-00-layers.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-00-layers.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-01-objects.png b/tests/baseline-screenshots/chromium/appearance-01-objects.png deleted file mode 100644 index 25eaf9d..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-01-objects.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-02-nets.png b/tests/baseline-screenshots/chromium/appearance-02-nets.png deleted file mode 100644 index 036c5bb..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-02-nets.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-03-layers-again.png b/tests/baseline-screenshots/chromium/appearance-03-layers-again.png deleted file mode 100644 index 92db055..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-03-layers-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-10-layers-scrolled.png b/tests/baseline-screenshots/chromium/appearance-10-layers-scrolled.png deleted file mode 100644 index 27ee520..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-10-layers-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-11-layers-scrolled-back.png b/tests/baseline-screenshots/chromium/appearance-11-layers-scrolled-back.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-11-layers-scrolled-back.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/appearance-20-objects-scrolled.png b/tests/baseline-screenshots/chromium/appearance-20-objects-scrolled.png deleted file mode 100644 index 9a47d96..0000000 Binary files a/tests/baseline-screenshots/chromium/appearance-20-objects-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-01-loaded.png b/tests/baseline-screenshots/chromium/aui-01-loaded.png deleted file mode 100644 index a17d1d5..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-02-panels.png b/tests/baseline-screenshots/chromium/aui-02-panels.png deleted file mode 100644 index a17d1d5..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-02-panels.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-03-close-clicked.png b/tests/baseline-screenshots/chromium/aui-03-close-clicked.png deleted file mode 100644 index a17d1d5..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-03-close-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-04-dragged.png b/tests/baseline-screenshots/chromium/aui-04-dragged.png deleted file mode 100644 index d12e8d6..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-04-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-05-multi-panel.png b/tests/baseline-screenshots/chromium/aui-05-multi-panel.png deleted file mode 100644 index 8e213a7..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-05-multi-panel.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-resize-01-hover.png b/tests/baseline-screenshots/chromium/aui-resize-01-hover.png deleted file mode 100644 index a17d1d5..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-resize-01-hover.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-resize-02-mid-drag-live.png b/tests/baseline-screenshots/chromium/aui-resize-02-mid-drag-live.png deleted file mode 100644 index 2ff28d4..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-resize-02-mid-drag-live.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-resize-03-mid-drag.png b/tests/baseline-screenshots/chromium/aui-resize-03-mid-drag.png deleted file mode 100644 index dd49351..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-resize-03-mid-drag.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/aui-resize-04-after.png b/tests/baseline-screenshots/chromium/aui-resize-04-after.png deleted file mode 100644 index 1e8c747..0000000 Binary files a/tests/baseline-screenshots/chromium/aui-resize-04-after.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/auinotebook-01-loaded.png b/tests/baseline-screenshots/chromium/auinotebook-01-loaded.png deleted file mode 100644 index bee80e0..0000000 Binary files a/tests/baseline-screenshots/chromium/auinotebook-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/auinotebook-02-tab-switch.png b/tests/baseline-screenshots/chromium/auinotebook-02-tab-switch.png deleted file mode 100644 index 0114b99..0000000 Binary files a/tests/baseline-screenshots/chromium/auinotebook-02-tab-switch.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/auinotebook-03-add-tab.png b/tests/baseline-screenshots/chromium/auinotebook-03-add-tab.png deleted file mode 100644 index 8a3b622..0000000 Binary files a/tests/baseline-screenshots/chromium/auinotebook-03-add-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/auinotebook-04-remove-tab.png b/tests/baseline-screenshots/chromium/auinotebook-04-remove-tab.png deleted file mode 100644 index defdf96..0000000 Binary files a/tests/baseline-screenshots/chromium/auinotebook-04-remove-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/auinotebook-05-tab-style.png b/tests/baseline-screenshots/chromium/auinotebook-05-tab-style.png deleted file mode 100644 index 32b9e25..0000000 Binary files a/tests/baseline-screenshots/chromium/auinotebook-05-tab-style.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-01-loaded.png b/tests/baseline-screenshots/chromium/bitmapbuttons-01-loaded.png deleted file mode 100644 index 636dfc2..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-02-toolbar-click.png b/tests/baseline-screenshots/chromium/bitmapbuttons-02-toolbar-click.png deleted file mode 100644 index 8007ed8..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-02-toolbar-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-03-toggle.png b/tests/baseline-screenshots/chromium/bitmapbuttons-03-toggle.png deleted file mode 100644 index 58e906b..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-03-toggle.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-04-multi-toggle.png b/tests/baseline-screenshots/chromium/bitmapbuttons-04-multi-toggle.png deleted file mode 100644 index 7e051ca..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-04-multi-toggle.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-05-enable-toggle.png b/tests/baseline-screenshots/chromium/bitmapbuttons-05-enable-toggle.png deleted file mode 100644 index 146f6e8..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-05-enable-toggle.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-06-shapes.png b/tests/baseline-screenshots/chromium/bitmapbuttons-06-shapes.png deleted file mode 100644 index d5c0892..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-06-shapes.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmapbuttons-07-artprovider.png b/tests/baseline-screenshots/chromium/bitmapbuttons-07-artprovider.png deleted file mode 100644 index a2a53ae..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmapbuttons-07-artprovider.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/bitmask.png b/tests/baseline-screenshots/chromium/bitmask.png deleted file mode 100644 index 0f0810e..0000000 Binary files a/tests/baseline-screenshots/chromium/bitmask.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calculator-before-switch.png b/tests/baseline-screenshots/chromium/calculator-before-switch.png deleted file mode 100644 index c7cc0bc..0000000 Binary files a/tests/baseline-screenshots/chromium/calculator-before-switch.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calculator-color-code.png b/tests/baseline-screenshots/chromium/calculator-color-code.png deleted file mode 100644 index a5035e3..0000000 Binary files a/tests/baseline-screenshots/chromium/calculator-color-code.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calculator-loaded.png b/tests/baseline-screenshots/chromium/calculator-loaded.png deleted file mode 100644 index c7cc0bc..0000000 Binary files a/tests/baseline-screenshots/chromium/calculator-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calendar-01-loaded.png b/tests/baseline-screenshots/chromium/calendar-01-loaded.png deleted file mode 100644 index 61e6d22..0000000 Binary files a/tests/baseline-screenshots/chromium/calendar-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calendar-02-select-date.png b/tests/baseline-screenshots/chromium/calendar-02-select-date.png deleted file mode 100644 index 440af12..0000000 Binary files a/tests/baseline-screenshots/chromium/calendar-02-select-date.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calendar-03-next-month.png b/tests/baseline-screenshots/chromium/calendar-03-next-month.png deleted file mode 100644 index a388ffa..0000000 Binary files a/tests/baseline-screenshots/chromium/calendar-03-next-month.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calendar-04-prev-month.png b/tests/baseline-screenshots/chromium/calendar-04-prev-month.png deleted file mode 100644 index e1db8f9..0000000 Binary files a/tests/baseline-screenshots/chromium/calendar-04-prev-month.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/calendar-05-today.png b/tests/baseline-screenshots/chromium/calendar-05-today.png deleted file mode 100644 index a95e0e9..0000000 Binary files a/tests/baseline-screenshots/chromium/calendar-05-today.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-01-loaded.png b/tests/baseline-screenshots/chromium/clipboard-01-loaded.png deleted file mode 100644 index 5e8cc85..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-02-copy-clicked.png b/tests/baseline-screenshots/chromium/clipboard-02-copy-clicked.png deleted file mode 100644 index 5f3a618..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-02-copy-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-03-paste-clicked.png b/tests/baseline-screenshots/chromium/clipboard-03-paste-clicked.png deleted file mode 100644 index cf60711..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-03-paste-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-04-check-clicked.png b/tests/baseline-screenshots/chromium/clipboard-04-check-clicked.png deleted file mode 100644 index b603818..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-04-check-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-05-clear-clicked.png b/tests/baseline-screenshots/chromium/clipboard-05-clear-clicked.png deleted file mode 100644 index 733dcf8..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-05-clear-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/clipboard-06-full-flow.png b/tests/baseline-screenshots/chromium/clipboard-06-full-flow.png deleted file mode 100644 index 60d3719..0000000 Binary files a/tests/baseline-screenshots/chromium/clipboard-06-full-flow.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapse-relayout-01-loaded.png b/tests/baseline-screenshots/chromium/collapse-relayout-01-loaded.png deleted file mode 100644 index aae63d6..0000000 Binary files a/tests/baseline-screenshots/chromium/collapse-relayout-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapse-relayout-02-expanded.png b/tests/baseline-screenshots/chromium/collapse-relayout-02-expanded.png deleted file mode 100644 index ff0107b..0000000 Binary files a/tests/baseline-screenshots/chromium/collapse-relayout-02-expanded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapsible-01-loaded.png b/tests/baseline-screenshots/chromium/collapsible-01-loaded.png deleted file mode 100644 index ce9ff02..0000000 Binary files a/tests/baseline-screenshots/chromium/collapsible-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapsible-02-panes.png b/tests/baseline-screenshots/chromium/collapsible-02-panes.png deleted file mode 100644 index ce9ff02..0000000 Binary files a/tests/baseline-screenshots/chromium/collapsible-02-panes.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapsible-03-expanded.png b/tests/baseline-screenshots/chromium/collapsible-03-expanded.png deleted file mode 100644 index ce9ff02..0000000 Binary files a/tests/baseline-screenshots/chromium/collapsible-03-expanded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapsible-04-expand-all.png b/tests/baseline-screenshots/chromium/collapsible-04-expand-all.png deleted file mode 100644 index 5bdbf1e..0000000 Binary files a/tests/baseline-screenshots/chromium/collapsible-04-expand-all.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/collapsible-05-collapse-all.png b/tests/baseline-screenshots/chromium/collapsible-05-collapse-all.png deleted file mode 100644 index de37b0f..0000000 Binary files a/tests/baseline-screenshots/chromium/collapsible-05-collapse-all.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/contextmenu-01-open.png b/tests/baseline-screenshots/chromium/contextmenu-01-open.png deleted file mode 100644 index 20ada86..0000000 Binary files a/tests/baseline-screenshots/chromium/contextmenu-01-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/coroutine-01-loaded.png b/tests/baseline-screenshots/chromium/coroutine-01-loaded.png deleted file mode 100644 index 1369059..0000000 Binary files a/tests/baseline-screenshots/chromium/coroutine-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/coroutine-02-summary.png b/tests/baseline-screenshots/chromium/coroutine-02-summary.png deleted file mode 100644 index 1369059..0000000 Binary files a/tests/baseline-screenshots/chromium/coroutine-02-summary.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/coroutine-nested-01-loaded.png b/tests/baseline-screenshots/chromium/coroutine-nested-01-loaded.png deleted file mode 100644 index e1a46c6..0000000 Binary files a/tests/baseline-screenshots/chromium/coroutine-nested-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/coroutine-nested-02-summary.png b/tests/baseline-screenshots/chromium/coroutine-nested-02-summary.png deleted file mode 100644 index e1a46c6..0000000 Binary files a/tests/baseline-screenshots/chromium/coroutine-nested-02-summary.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-01-loaded.png b/tests/baseline-screenshots/chromium/dataview-01-loaded.png deleted file mode 100644 index 9f1fc34..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-02-list-populated.png b/tests/baseline-screenshots/chromium/dataview-02-list-populated.png deleted file mode 100644 index 9f1fc34..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-02-list-populated.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-03-list-selected.png b/tests/baseline-screenshots/chromium/dataview-03-list-selected.png deleted file mode 100644 index b6acf0a..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-03-list-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-04-list-add.png b/tests/baseline-screenshots/chromium/dataview-04-list-add.png deleted file mode 100644 index f3b8198..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-04-list-add.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-05-tree-tab.png b/tests/baseline-screenshots/chromium/dataview-05-tree-tab.png deleted file mode 100644 index aaebb13..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-05-tree-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-06-tree-selected.png b/tests/baseline-screenshots/chromium/dataview-06-tree-selected.png deleted file mode 100644 index 3c028a8..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-06-tree-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-07-tree-expanded.png b/tests/baseline-screenshots/chromium/dataview-07-tree-expanded.png deleted file mode 100644 index 0a4fb08..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-07-tree-expanded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-08-tree-collapsed.png b/tests/baseline-screenshots/chromium/dataview-08-tree-collapsed.png deleted file mode 100644 index 53be3e5..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-08-tree-collapsed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-09-column-click.png b/tests/baseline-screenshots/chromium/dataview-09-column-click.png deleted file mode 100644 index deed499..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-09-column-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataview-10-scrolled.png b/tests/baseline-screenshots/chromium/dataview-10-scrolled.png deleted file mode 100644 index 838c1de..0000000 Binary files a/tests/baseline-screenshots/chromium/dataview-10-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataviewvirtual-01-loaded.png b/tests/baseline-screenshots/chromium/dataviewvirtual-01-loaded.png deleted file mode 100644 index 80d2a6e..0000000 Binary files a/tests/baseline-screenshots/chromium/dataviewvirtual-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataviewvirtual-02-large-dataset.png b/tests/baseline-screenshots/chromium/dataviewvirtual-02-large-dataset.png deleted file mode 100644 index 80d2a6e..0000000 Binary files a/tests/baseline-screenshots/chromium/dataviewvirtual-02-large-dataset.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataviewvirtual-03-scroll.png b/tests/baseline-screenshots/chromium/dataviewvirtual-03-scroll.png deleted file mode 100644 index 6c35f80..0000000 Binary files a/tests/baseline-screenshots/chromium/dataviewvirtual-03-scroll.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataviewvirtual-04-selection.png b/tests/baseline-screenshots/chromium/dataviewvirtual-04-selection.png deleted file mode 100644 index 80d2a6e..0000000 Binary files a/tests/baseline-screenshots/chromium/dataviewvirtual-04-selection.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dataviewvirtual-05-zone-manager.png b/tests/baseline-screenshots/chromium/dataviewvirtual-05-zone-manager.png deleted file mode 100644 index 80d2a6e..0000000 Binary files a/tests/baseline-screenshots/chromium/dataviewvirtual-05-zone-manager.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialog-01-loaded.png b/tests/baseline-screenshots/chromium/dialog-01-loaded.png deleted file mode 100644 index dedeeda..0000000 Binary files a/tests/baseline-screenshots/chromium/dialog-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialog-02-info-clicked.png b/tests/baseline-screenshots/chromium/dialog-02-info-clicked.png deleted file mode 100644 index 42bc0db..0000000 Binary files a/tests/baseline-screenshots/chromium/dialog-02-info-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialog-03-yesno-clicked.png b/tests/baseline-screenshots/chromium/dialog-03-yesno-clicked.png deleted file mode 100644 index 3daf0a2..0000000 Binary files a/tests/baseline-screenshots/chromium/dialog-03-yesno-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialog-04-error-clicked.png b/tests/baseline-screenshots/chromium/dialog-04-error-clicked.png deleted file mode 100644 index 947167f..0000000 Binary files a/tests/baseline-screenshots/chromium/dialog-04-error-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialog-05-custom-clicked.png b/tests/baseline-screenshots/chromium/dialog-05-custom-clicked.png deleted file mode 100644 index 6639699..0000000 Binary files a/tests/baseline-screenshots/chromium/dialog-05-custom-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-00-initial.png b/tests/baseline-screenshots/chromium/dialogs-00-initial.png deleted file mode 100644 index f95befb..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-00-initial.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-01-tab-selected.png b/tests/baseline-screenshots/chromium/dialogs-01-tab-selected.png deleted file mode 100644 index ab31afa..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-01-tab-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-custom-closed.png b/tests/baseline-screenshots/chromium/dialogs-custom-closed.png deleted file mode 100644 index bffc1b1..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-custom-closed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-custom-open.png b/tests/baseline-screenshots/chromium/dialogs-custom-open.png deleted file mode 100644 index 00da1cb..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-custom-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-full-flow.png b/tests/baseline-screenshots/chromium/dialogs-full-flow.png deleted file mode 100644 index 7fde189..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-full-flow.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-error-closed.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-error-closed.png deleted file mode 100644 index 7ba2ee9..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-error-closed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-error-open.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-error-open.png deleted file mode 100644 index d494e46..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-error-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-info-closed.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-info-closed.png deleted file mode 100644 index a55b038..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-info-closed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-info-open.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-info-open.png deleted file mode 100644 index a97ca38..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-info-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-closed.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-closed.png deleted file mode 100644 index 4b4fb0c..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-closed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-open.png b/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-open.png deleted file mode 100644 index a580703..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-msgbox-yesno-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-timer-initial.png b/tests/baseline-screenshots/chromium/dialogs-timer-initial.png deleted file mode 100644 index 7c308af..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-timer-initial.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-timer-multiple.png b/tests/baseline-screenshots/chromium/dialogs-timer-multiple.png deleted file mode 100644 index 2122c87..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-timer-multiple.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-timer-running.png b/tests/baseline-screenshots/chromium/dialogs-timer-running.png deleted file mode 100644 index b5e9efe..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-timer-running.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-timer-started.png b/tests/baseline-screenshots/chromium/dialogs-timer-started.png deleted file mode 100644 index 73d6475..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-timer-started.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dialogs-timer-stopped.png b/tests/baseline-screenshots/chromium/dialogs-timer-stopped.png deleted file mode 100644 index 9aa877a..0000000 Binary files a/tests/baseline-screenshots/chromium/dialogs-timer-stopped.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-01-loaded.png b/tests/baseline-screenshots/chromium/dnd-01-loaded.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-02-handlers.png b/tests/baseline-screenshots/chromium/dnd-02-handlers.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-02-handlers.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-03-dragenter.png b/tests/baseline-screenshots/chromium/dnd-03-dragenter.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-03-dragenter.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-04-dragleave.png b/tests/baseline-screenshots/chromium/dnd-04-dragleave.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-04-dragleave.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-05-drop.png b/tests/baseline-screenshots/chromium/dnd-05-drop.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-05-drop.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-06-file-written.png b/tests/baseline-screenshots/chromium/dnd-06-file-written.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-06-file-written.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-07-event-fired.png b/tests/baseline-screenshots/chromium/dnd-07-event-fired.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-07-event-fired.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-08-multiple-files.png b/tests/baseline-screenshots/chromium/dnd-08-multiple-files.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-08-multiple-files.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/dnd-09-with-file.png b/tests/baseline-screenshots/chromium/dnd-09-with-file.png deleted file mode 100644 index de7115d..0000000 Binary files a/tests/baseline-screenshots/chromium/dnd-09-with-file.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/earlysize-01-loaded.png b/tests/baseline-screenshots/chromium/earlysize-01-loaded.png deleted file mode 100644 index 6840c8b..0000000 Binary files a/tests/baseline-screenshots/chromium/earlysize-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/earlysize-02-result.png b/tests/baseline-screenshots/chromium/earlysize-02-result.png deleted file mode 100644 index 6840c8b..0000000 Binary files a/tests/baseline-screenshots/chromium/earlysize-02-result.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eefpsel-01-boot.png b/tests/baseline-screenshots/chromium/eefpsel-01-boot.png deleted file mode 100644 index 038f002..0000000 Binary files a/tests/baseline-screenshots/chromium/eefpsel-01-boot.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-crosshair-00-small.png b/tests/baseline-screenshots/chromium/eeschema-crosshair-00-small.png deleted file mode 100644 index 9ab9c6f..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-crosshair-00-small.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-crosshair-01-full.png b/tests/baseline-screenshots/chromium/eeschema-crosshair-01-full.png deleted file mode 100644 index 6cb6bce..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-crosshair-01-full.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-crosshair-02-45.png b/tests/baseline-screenshots/chromium/eeschema-crosshair-02-45.png deleted file mode 100644 index 1307812..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-crosshair-02-45.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-crosshair-03-small-again.png b/tests/baseline-screenshots/chromium/eeschema-crosshair-03-small-again.png deleted file mode 100644 index 9ab9c6f..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-crosshair-03-small-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-draw-wires-00-before-tool-click.png b/tests/baseline-screenshots/chromium/eeschema-draw-wires-00-before-tool-click.png deleted file mode 100644 index 25ad2d0..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-draw-wires-00-before-tool-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-draw-wires-01-after-click.png b/tests/baseline-screenshots/chromium/eeschema-draw-wires-01-after-click.png deleted file mode 100644 index b03909a..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-draw-wires-01-after-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-draw-wires-02-after-drawing.png b/tests/baseline-screenshots/chromium/eeschema-draw-wires-02-after-drawing.png deleted file mode 100644 index ae20689..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-draw-wires-02-after-drawing.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-load-rendered.png b/tests/baseline-screenshots/chromium/eeschema-load-rendered.png deleted file mode 100644 index 4c98c06..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-load-rendered.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-loaded-css.png b/tests/baseline-screenshots/chromium/eeschema-loaded-css.png deleted file mode 100644 index 25ad2d0..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-loaded-css.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-loaded.png b/tests/baseline-screenshots/chromium/eeschema-loaded.png deleted file mode 100644 index 25ad2d0..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-sim-frame.png b/tests/baseline-screenshots/chromium/eeschema-sim-frame.png deleted file mode 100644 index 1dfe71a..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-sim-frame.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-sim-plot.png b/tests/baseline-screenshots/chromium/eeschema-sim-plot.png deleted file mode 100644 index 71839cb..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-sim-plot.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/eeschema-url-regex.png b/tests/baseline-screenshots/chromium/eeschema-url-regex.png deleted file mode 100644 index 93653ed..0000000 Binary files a/tests/baseline-screenshots/chromium/eeschema-url-regex.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedialog-01-loaded.png b/tests/baseline-screenshots/chromium/filedialog-01-loaded.png deleted file mode 100644 index 6e8624c..0000000 Binary files a/tests/baseline-screenshots/chromium/filedialog-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedialog-02-open-clicked.png b/tests/baseline-screenshots/chromium/filedialog-02-open-clicked.png deleted file mode 100644 index c8241f6..0000000 Binary files a/tests/baseline-screenshots/chromium/filedialog-02-open-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedialog-03-save-clicked.png b/tests/baseline-screenshots/chromium/filedialog-03-save-clicked.png deleted file mode 100644 index 0c8237c..0000000 Binary files a/tests/baseline-screenshots/chromium/filedialog-03-save-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedialog-04-multiple-clicked.png b/tests/baseline-screenshots/chromium/filedialog-04-multiple-clicked.png deleted file mode 100644 index a685a40..0000000 Binary files a/tests/baseline-screenshots/chromium/filedialog-04-multiple-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedialog-05-all-buttons.png b/tests/baseline-screenshots/chromium/filedialog-05-all-buttons.png deleted file mode 100644 index bc9a7f5..0000000 Binary files a/tests/baseline-screenshots/chromium/filedialog-05-all-buttons.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/filedlg-folder-nav.png b/tests/baseline-screenshots/chromium/filedlg-folder-nav.png deleted file mode 100644 index 2d09ace..0000000 Binary files a/tests/baseline-screenshots/chromium/filedlg-folder-nav.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/fontenum.png b/tests/baseline-screenshots/chromium/fontenum.png deleted file mode 100644 index be76752..0000000 Binary files a/tests/baseline-screenshots/chromium/fontenum.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/frame-runtime-eeschema.html.png b/tests/baseline-screenshots/chromium/frame-runtime-eeschema.html.png deleted file mode 100644 index 25ad2d0..0000000 Binary files a/tests/baseline-screenshots/chromium/frame-runtime-eeschema.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/frame-runtime-footprint_editor.html.png b/tests/baseline-screenshots/chromium/frame-runtime-footprint_editor.html.png deleted file mode 100644 index 0ed07a9..0000000 Binary files a/tests/baseline-screenshots/chromium/frame-runtime-footprint_editor.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/frame-runtime-pcbnew.html.png b/tests/baseline-screenshots/chromium/frame-runtime-pcbnew.html.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/frame-runtime-pcbnew.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/frame-runtime-symbol_editor.html.png b/tests/baseline-screenshots/chromium/frame-runtime-symbol_editor.html.png deleted file mode 100644 index 0a0bf60..0000000 Binary files a/tests/baseline-screenshots/chromium/frame-runtime-symbol_editor.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gerbview-01-loaded.png b/tests/baseline-screenshots/chromium/gerbview-01-loaded.png deleted file mode 100644 index d790784..0000000 Binary files a/tests/baseline-screenshots/chromium/gerbview-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gerbview-02-metrics.png b/tests/baseline-screenshots/chromium/gerbview-02-metrics.png deleted file mode 100644 index d790784..0000000 Binary files a/tests/baseline-screenshots/chromium/gerbview-02-metrics.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gerbview-print-00-loaded.png b/tests/baseline-screenshots/chromium/gerbview-print-00-loaded.png deleted file mode 100644 index 851ebe2..0000000 Binary files a/tests/baseline-screenshots/chromium/gerbview-print-00-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gerbview-print-01-dialog.png b/tests/baseline-screenshots/chromium/gerbview-print-01-dialog.png deleted file mode 100644 index e93e747..0000000 Binary files a/tests/baseline-screenshots/chromium/gerbview-print-01-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gerbview-print-02-reopened.png b/tests/baseline-screenshots/chromium/gerbview-print-02-reopened.png deleted file mode 100644 index d12ee7c..0000000 Binary files a/tests/baseline-screenshots/chromium/gerbview-print-02-reopened.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/grid-tab-final.png b/tests/baseline-screenshots/chromium/grid-tab-final.png deleted file mode 100644 index 5f6d3ba..0000000 Binary files a/tests/baseline-screenshots/chromium/grid-tab-final.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridedit-01-loaded.png b/tests/baseline-screenshots/chromium/gridedit-01-loaded.png deleted file mode 100644 index 3ca66f1..0000000 Binary files a/tests/baseline-screenshots/chromium/gridedit-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridedit-02-select-cell.png b/tests/baseline-screenshots/chromium/gridedit-02-select-cell.png deleted file mode 100644 index 8839154..0000000 Binary files a/tests/baseline-screenshots/chromium/gridedit-02-select-cell.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridedit-03-edit-cell.png b/tests/baseline-screenshots/chromium/gridedit-03-edit-cell.png deleted file mode 100644 index dbee022..0000000 Binary files a/tests/baseline-screenshots/chromium/gridedit-03-edit-cell.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridedit-04-add-row.png b/tests/baseline-screenshots/chromium/gridedit-04-add-row.png deleted file mode 100644 index a4337aa..0000000 Binary files a/tests/baseline-screenshots/chromium/gridedit-04-add-row.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridedit-05-delete-row.png b/tests/baseline-screenshots/chromium/gridedit-05-delete-row.png deleted file mode 100644 index f55cefc..0000000 Binary files a/tests/baseline-screenshots/chromium/gridedit-05-delete-row.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridrenderers-01-loaded.png b/tests/baseline-screenshots/chromium/gridrenderers-01-loaded.png deleted file mode 100644 index 6db24df..0000000 Binary files a/tests/baseline-screenshots/chromium/gridrenderers-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridrenderers-02-color-cells.png b/tests/baseline-screenshots/chromium/gridrenderers-02-color-cells.png deleted file mode 100644 index 6db24df..0000000 Binary files a/tests/baseline-screenshots/chromium/gridrenderers-02-color-cells.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridrenderers-03-icon-text.png b/tests/baseline-screenshots/chromium/gridrenderers-03-icon-text.png deleted file mode 100644 index a4a2239..0000000 Binary files a/tests/baseline-screenshots/chromium/gridrenderers-03-icon-text.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridrenderers-04-striped.png b/tests/baseline-screenshots/chromium/gridrenderers-04-striped.png deleted file mode 100644 index 8ffc8ca..0000000 Binary files a/tests/baseline-screenshots/chromium/gridrenderers-04-striped.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/gridrenderers-05-checkbox-toggle.png b/tests/baseline-screenshots/chromium/gridrenderers-05-checkbox-toggle.png deleted file mode 100644 index a3cf514..0000000 Binary files a/tests/baseline-screenshots/chromium/gridrenderers-05-checkbox-toggle.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-01-loaded.png b/tests/baseline-screenshots/chromium/htmlwin-01-loaded.png deleted file mode 100644 index 75e657a..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-02-basic-content.png b/tests/baseline-screenshots/chromium/htmlwin-02-basic-content.png deleted file mode 100644 index 75e657a..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-02-basic-content.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-03-tables.png b/tests/baseline-screenshots/chromium/htmlwin-03-tables.png deleted file mode 100644 index 67559cf..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-03-tables.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-04-long-content.png b/tests/baseline-screenshots/chromium/htmlwin-04-long-content.png deleted file mode 100644 index 6f9c39b..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-04-long-content.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-05-kicad-about.png b/tests/baseline-screenshots/chromium/htmlwin-05-kicad-about.png deleted file mode 100644 index a11a1eb..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-05-kicad-about.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-06-link-clicked.png b/tests/baseline-screenshots/chromium/htmlwin-06-link-clicked.png deleted file mode 100644 index 43dee85..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-06-link-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-07-scrolled.png b/tests/baseline-screenshots/chromium/htmlwin-07-scrolled.png deleted file mode 100644 index 9bfd8c8..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-07-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-08a-basic.png b/tests/baseline-screenshots/chromium/htmlwin-08a-basic.png deleted file mode 100644 index 2aa3c49..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-08a-basic.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-08b-tables.png b/tests/baseline-screenshots/chromium/htmlwin-08b-tables.png deleted file mode 100644 index f88102f..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-08b-tables.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/htmlwin-08c-about.png b/tests/baseline-screenshots/chromium/htmlwin-08c-about.png deleted file mode 100644 index 9f65852..0000000 Binary files a/tests/baseline-screenshots/chromium/htmlwin-08c-about.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/import-settings-modal-stack.png b/tests/baseline-screenshots/chromium/import-settings-modal-stack.png deleted file mode 100644 index ed43707..0000000 Binary files a/tests/baseline-screenshots/chromium/import-settings-modal-stack.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/infobar-01-loaded.png b/tests/baseline-screenshots/chromium/infobar-01-loaded.png deleted file mode 100644 index 4018eb0..0000000 Binary files a/tests/baseline-screenshots/chromium/infobar-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/infobar-02-info.png b/tests/baseline-screenshots/chromium/infobar-02-info.png deleted file mode 100644 index 2e14263..0000000 Binary files a/tests/baseline-screenshots/chromium/infobar-02-info.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/infobar-03-warning.png b/tests/baseline-screenshots/chromium/infobar-03-warning.png deleted file mode 100644 index f690e55..0000000 Binary files a/tests/baseline-screenshots/chromium/infobar-03-warning.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/infobar-04-error.png b/tests/baseline-screenshots/chromium/infobar-04-error.png deleted file mode 100644 index 4398142..0000000 Binary files a/tests/baseline-screenshots/chromium/infobar-04-error.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/infobar-05-dismiss.png b/tests/baseline-screenshots/chromium/infobar-05-dismiss.png deleted file mode 100644 index b189428..0000000 Binary files a/tests/baseline-screenshots/chromium/infobar-05-dismiss.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-01-loaded.png b/tests/baseline-screenshots/chromium/layout-01-loaded.png deleted file mode 100644 index 176bc31..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-02-splitter.png b/tests/baseline-screenshots/chromium/layout-02-splitter.png deleted file mode 100644 index 176bc31..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-02-splitter.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-03-sash-dragged.png b/tests/baseline-screenshots/chromium/layout-03-sash-dragged.png deleted file mode 100644 index 3616af8..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-03-sash-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-04-scrolled-left.png b/tests/baseline-screenshots/chromium/layout-04-scrolled-left.png deleted file mode 100644 index 176bc31..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-04-scrolled-left.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-05-scrolled-right.png b/tests/baseline-screenshots/chromium/layout-05-scrolled-right.png deleted file mode 100644 index 176bc31..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-05-scrolled-right.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/layout-06-combined.png b/tests/baseline-screenshots/chromium/layout-06-combined.png deleted file mode 100644 index 3616af8..0000000 Binary files a/tests/baseline-screenshots/chromium/layout-06-combined.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/listctrl-01-loaded.png b/tests/baseline-screenshots/chromium/listctrl-01-loaded.png deleted file mode 100644 index 425d935..0000000 Binary files a/tests/baseline-screenshots/chromium/listctrl-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/listctrl-02-virtual.png b/tests/baseline-screenshots/chromium/listctrl-02-virtual.png deleted file mode 100644 index 425d935..0000000 Binary files a/tests/baseline-screenshots/chromium/listctrl-02-virtual.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/listctrl-03-columns.png b/tests/baseline-screenshots/chromium/listctrl-03-columns.png deleted file mode 100644 index 425d935..0000000 Binary files a/tests/baseline-screenshots/chromium/listctrl-03-columns.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/listctrl-04-selected.png b/tests/baseline-screenshots/chromium/listctrl-04-selected.png deleted file mode 100644 index f8b2f6a..0000000 Binary files a/tests/baseline-screenshots/chromium/listctrl-04-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/listctrl-05-scrolled.png b/tests/baseline-screenshots/chromium/listctrl-05-scrolled.png deleted file mode 100644 index 99e7bf5..0000000 Binary files a/tests/baseline-screenshots/chromium/listctrl-05-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-microwave-00-pcbnew-ready.png b/tests/baseline-screenshots/chromium/load-pcb-microwave-00-pcbnew-ready.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-microwave-00-pcbnew-ready.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-microwave-01-dialog-open.png b/tests/baseline-screenshots/chromium/load-pcb-microwave-01-dialog-open.png deleted file mode 100644 index 76d00a8..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-microwave-01-dialog-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-microwave.png b/tests/baseline-screenshots/chromium/load-pcb-microwave.png deleted file mode 100644 index 8f33eed..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-microwave.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-00-pcbnew-ready.png b/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-00-pcbnew-ready.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-00-pcbnew-ready.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-01-dialog-open.png b/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-01-dialog-open.png deleted file mode 100644 index 67e8ba6..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer-01-dialog-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer.png b/tests/baseline-screenshots/chromium/load-pcb-pic_programmer.png deleted file mode 100644 index efdef2b..0000000 Binary files a/tests/baseline-screenshots/chromium/load-pcb-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/logerror-01-initial.png b/tests/baseline-screenshots/chromium/logerror-01-initial.png deleted file mode 100644 index 497dbc0..0000000 Binary files a/tests/baseline-screenshots/chromium/logerror-01-initial.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/logerror-02-before-error.png b/tests/baseline-screenshots/chromium/logerror-02-before-error.png deleted file mode 100644 index 497dbc0..0000000 Binary files a/tests/baseline-screenshots/chromium/logerror-02-before-error.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/logerror-03-single-error-dialog.png b/tests/baseline-screenshots/chromium/logerror-03-single-error-dialog.png deleted file mode 100644 index add0303..0000000 Binary files a/tests/baseline-screenshots/chromium/logerror-03-single-error-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/logerror-04-multiple-errors-dialog.png b/tests/baseline-screenshots/chromium/logerror-04-multiple-errors-dialog.png deleted file mode 100644 index bc54ea4..0000000 Binary files a/tests/baseline-screenshots/chromium/logerror-04-multiple-errors-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/logerror-05-mixed-levels.png b/tests/baseline-screenshots/chromium/logerror-05-mixed-levels.png deleted file mode 100644 index 835fa62..0000000 Binary files a/tests/baseline-screenshots/chromium/logerror-05-mixed-levels.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/maximize-01-loaded.png b/tests/baseline-screenshots/chromium/maximize-01-loaded.png deleted file mode 100644 index 2bfc6d3..0000000 Binary files a/tests/baseline-screenshots/chromium/maximize-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/maximize-02-fullscreen.png b/tests/baseline-screenshots/chromium/maximize-02-fullscreen.png deleted file mode 100644 index 2bfc6d3..0000000 Binary files a/tests/baseline-screenshots/chromium/maximize-02-fullscreen.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/maximize-03-canvas.png b/tests/baseline-screenshots/chromium/maximize-03-canvas.png deleted file mode 100644 index 2bfc6d3..0000000 Binary files a/tests/baseline-screenshots/chromium/maximize-03-canvas.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/menu-01-loaded.png b/tests/baseline-screenshots/chromium/menu-01-loaded.png deleted file mode 100644 index 5b8dd5d..0000000 Binary files a/tests/baseline-screenshots/chromium/menu-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/menu-02-menubar.png b/tests/baseline-screenshots/chromium/menu-02-menubar.png deleted file mode 100644 index 5b8dd5d..0000000 Binary files a/tests/baseline-screenshots/chromium/menu-02-menubar.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/menu-03-file-clicked.png b/tests/baseline-screenshots/chromium/menu-03-file-clicked.png deleted file mode 100644 index 75d02de..0000000 Binary files a/tests/baseline-screenshots/chromium/menu-03-file-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/menu-04-edit-clicked.png b/tests/baseline-screenshots/chromium/menu-04-edit-clicked.png deleted file mode 100644 index 00289e6..0000000 Binary files a/tests/baseline-screenshots/chromium/menu-04-edit-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/menu-05-all-menus.png b/tests/baseline-screenshots/chromium/menu-05-all-menus.png deleted file mode 100644 index 625e6c4..0000000 Binary files a/tests/baseline-screenshots/chromium/menu-05-all-menus.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-chrome.png b/tests/baseline-screenshots/chromium/mobile-chrome.png deleted file mode 100644 index 197ff01..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-chrome.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pan-00-base.png b/tests/baseline-screenshots/chromium/mobile-pan-00-base.png deleted file mode 100644 index caaa415..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pan-00-base.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pan-01-panned.png b/tests/baseline-screenshots/chromium/mobile-pan-01-panned.png deleted file mode 100644 index 0e4abbe..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pan-01-panned.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pan-02-restored.png b/tests/baseline-screenshots/chromium/mobile-pan-02-restored.png deleted file mode 100644 index 197ff01..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pan-02-restored.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pinch-00-base.png b/tests/baseline-screenshots/chromium/mobile-pinch-00-base.png deleted file mode 100644 index 7901be2..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pinch-00-base.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pinch-01-zoomed.png b/tests/baseline-screenshots/chromium/mobile-pinch-01-zoomed.png deleted file mode 100644 index 3e2da8a..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pinch-01-zoomed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-pinch-02-restored.png b/tests/baseline-screenshots/chromium/mobile-pinch-02-restored.png deleted file mode 100644 index caaa415..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-pinch-02-restored.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-toggle-rehidden.png b/tests/baseline-screenshots/chromium/mobile-toggle-rehidden.png deleted file mode 100644 index 7291463..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-toggle-rehidden.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/mobile-toggle-shown.png b/tests/baseline-screenshots/chromium/mobile-toggle-shown.png deleted file mode 100644 index 184b8ad..0000000 Binary files a/tests/baseline-screenshots/chromium/mobile-toggle-shown.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/modal-01-border.png b/tests/baseline-screenshots/chromium/modal-01-border.png deleted file mode 100644 index 6639699..0000000 Binary files a/tests/baseline-screenshots/chromium/modal-01-border.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/modal-02-before-drag.png b/tests/baseline-screenshots/chromium/modal-02-before-drag.png deleted file mode 100644 index 83358e4..0000000 Binary files a/tests/baseline-screenshots/chromium/modal-02-before-drag.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/modal-03-after-drag.png b/tests/baseline-screenshots/chromium/modal-03-after-drag.png deleted file mode 100644 index cd0fbb5..0000000 Binary files a/tests/baseline-screenshots/chromium/modal-03-after-drag.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/modal-04-before-resize.png b/tests/baseline-screenshots/chromium/modal-04-before-resize.png deleted file mode 100644 index 83358e4..0000000 Binary files a/tests/baseline-screenshots/chromium/modal-04-before-resize.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/modal-05-after-resize.png b/tests/baseline-screenshots/chromium/modal-05-after-resize.png deleted file mode 100644 index f171fa5..0000000 Binary files a/tests/baseline-screenshots/chromium/modal-05-after-resize.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/notebook-01-scrolled.png b/tests/baseline-screenshots/chromium/notebook-01-scrolled.png deleted file mode 100644 index 63d7c1e..0000000 Binary files a/tests/baseline-screenshots/chromium/notebook-01-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/notebook-02-scrolled-again.png b/tests/baseline-screenshots/chromium/notebook-02-scrolled-again.png deleted file mode 100644 index 63d7c1e..0000000 Binary files a/tests/baseline-screenshots/chromium/notebook-02-scrolled-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/occ-export-dialog.png b/tests/baseline-screenshots/chromium/occ-export-dialog.png deleted file mode 100644 index 688fe3c..0000000 Binary files a/tests/baseline-screenshots/chromium/occ-export-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/occ-export-done.png b/tests/baseline-screenshots/chromium/occ-export-done.png deleted file mode 100644 index 04aa569..0000000 Binary files a/tests/baseline-screenshots/chromium/occ-export-done.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/occ-probe-done.png b/tests/baseline-screenshots/chromium/occ-probe-done.png deleted file mode 100644 index d2c187d..0000000 Binary files a/tests/baseline-screenshots/chromium/occ-probe-done.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/ownerdrawn-01-loaded.png b/tests/baseline-screenshots/chromium/ownerdrawn-01-loaded.png deleted file mode 100644 index 19a2f85..0000000 Binary files a/tests/baseline-screenshots/chromium/ownerdrawn-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/ownerdrawn-02-layer.png b/tests/baseline-screenshots/chromium/ownerdrawn-02-layer.png deleted file mode 100644 index 19a2f85..0000000 Binary files a/tests/baseline-screenshots/chromium/ownerdrawn-02-layer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/ownerdrawn-03-font.png b/tests/baseline-screenshots/chromium/ownerdrawn-03-font.png deleted file mode 100644 index 19a2f85..0000000 Binary files a/tests/baseline-screenshots/chromium/ownerdrawn-03-font.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/ownerdrawn-04-icon.png b/tests/baseline-screenshots/chromium/ownerdrawn-04-icon.png deleted file mode 100644 index 19a2f85..0000000 Binary files a/tests/baseline-screenshots/chromium/ownerdrawn-04-icon.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/ownerdrawn-05-log.png b/tests/baseline-screenshots/chromium/ownerdrawn-05-log.png deleted file mode 100644 index 19a2f85..0000000 Binary files a/tests/baseline-screenshots/chromium/ownerdrawn-05-log.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-context-menu.png b/tests/baseline-screenshots/chromium/pcbnew-context-menu.png deleted file mode 100644 index cf11c95..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-context-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-context-submenu.png b/tests/baseline-screenshots/chromium/pcbnew-context-submenu.png deleted file mode 100644 index b9840a3..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-context-submenu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-dark-mode-loaded.png b/tests/baseline-screenshots/chromium/pcbnew-dark-mode-loaded.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-dark-mode-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-00-before-tool-click.png b/tests/baseline-screenshots/chromium/pcbnew-draw-lines-00-before-tool-click.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-00-before-tool-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-01-after-click.png b/tests/baseline-screenshots/chromium/pcbnew-draw-lines-01-after-click.png deleted file mode 100644 index ba5140b..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-01-after-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-02-after-drawing.png b/tests/baseline-screenshots/chromium/pcbnew-draw-lines-02-after-drawing.png deleted file mode 100644 index c73dbb7..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-draw-lines-02-after-drawing.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-loaded-css.png b/tests/baseline-screenshots/chromium/pcbnew-loaded-css.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-loaded-css.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-loaded.png b/tests/baseline-screenshots/chromium/pcbnew-loaded.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-move-00-before.png b/tests/baseline-screenshots/chromium/pcbnew-move-00-before.png deleted file mode 100644 index 8d47cac..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-move-00-before.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-move-01-after.png b/tests/baseline-screenshots/chromium/pcbnew-move-01-after.png deleted file mode 100644 index 5c84d70..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-move-01-after.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar-dragged.png b/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar-dragged.png deleted file mode 100644 index 3c69390..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar.png b/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/pcbnew-sidebar-scrollbar.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pickers-01-loaded.png b/tests/baseline-screenshots/chromium/pickers-01-loaded.png deleted file mode 100644 index 4a35041..0000000 Binary files a/tests/baseline-screenshots/chromium/pickers-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pickers-02-colors.png b/tests/baseline-screenshots/chromium/pickers-02-colors.png deleted file mode 100644 index 4a35041..0000000 Binary files a/tests/baseline-screenshots/chromium/pickers-02-colors.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pickers-03-font.png b/tests/baseline-screenshots/chromium/pickers-03-font.png deleted file mode 100644 index 4a35041..0000000 Binary files a/tests/baseline-screenshots/chromium/pickers-03-font.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pickers-04-preview.png b/tests/baseline-screenshots/chromium/pickers-04-preview.png deleted file mode 100644 index 4a35041..0000000 Binary files a/tests/baseline-screenshots/chromium/pickers-04-preview.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-01-loaded.png b/tests/baseline-screenshots/chromium/pl_editor-01-loaded.png deleted file mode 100644 index e40f36f..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-02-no-wizard.png b/tests/baseline-screenshots/chromium/pl_editor-02-no-wizard.png deleted file mode 100644 index e40f36f..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-02-no-wizard.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-03-file-menu.png b/tests/baseline-screenshots/chromium/pl_editor-03-file-menu.png deleted file mode 100644 index 0fbd4eb..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-03-file-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-04-save-as-dialog.png b/tests/baseline-screenshots/chromium/pl_editor-04-save-as-dialog.png deleted file mode 100644 index 81ee1ec..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-04-save-as-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-04b-after-enter.png b/tests/baseline-screenshots/chromium/pl_editor-04b-after-enter.png deleted file mode 100644 index 81ee1ec..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-04b-after-enter.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-context-menu.png b/tests/baseline-screenshots/chromium/pl_editor-context-menu.png deleted file mode 100644 index 0dcd2c7..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-context-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-load-rendered.png b/tests/baseline-screenshots/chromium/pl_editor-load-rendered.png deleted file mode 100644 index 1e0d946..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-load-rendered.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-scrollbar-dragged.png b/tests/baseline-screenshots/chromium/pl_editor-scrollbar-dragged.png deleted file mode 100644 index b3e68d3..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-scrollbar-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/pl_editor-scrollbar.png b/tests/baseline-screenshots/chromium/pl_editor-scrollbar.png deleted file mode 100644 index ee56bcd..0000000 Binary files a/tests/baseline-screenshots/chromium/pl_editor-scrollbar.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-01-loaded.png b/tests/baseline-screenshots/chromium/popup-01-loaded.png deleted file mode 100644 index 46cc5dc..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-02-status.png b/tests/baseline-screenshots/chromium/popup-02-status.png deleted file mode 100644 index 46cc5dc..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-02-status.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-03-palette-dismissed.png b/tests/baseline-screenshots/chromium/popup-03-palette-dismissed.png deleted file mode 100644 index 686cb41..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-03-palette-dismissed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-03-palette-open.png b/tests/baseline-screenshots/chromium/popup-03-palette-open.png deleted file mode 100644 index d3710da..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-03-palette-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-04-color.png b/tests/baseline-screenshots/chromium/popup-04-color.png deleted file mode 100644 index 46cc5dc..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-04-color.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-05-positioning.png b/tests/baseline-screenshots/chromium/popup-05-positioning.png deleted file mode 100644 index 46cc5dc..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-05-positioning.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/popup-06-log.png b/tests/baseline-screenshots/chromium/popup-06-log.png deleted file mode 100644 index 46cc5dc..0000000 Binary files a/tests/baseline-screenshots/chromium/popup-06-log.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-01-loaded.png b/tests/baseline-screenshots/chromium/print-01-loaded.png deleted file mode 100644 index 7ce084b..0000000 Binary files a/tests/baseline-screenshots/chromium/print-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-02-preview-panel.png b/tests/baseline-screenshots/chromium/print-02-preview-panel.png deleted file mode 100644 index 7ce084b..0000000 Binary files a/tests/baseline-screenshots/chromium/print-02-preview-panel.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-03-browser-print-clicked.png b/tests/baseline-screenshots/chromium/print-03-browser-print-clicked.png deleted file mode 100644 index e4cac05..0000000 Binary files a/tests/baseline-screenshots/chromium/print-03-browser-print-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-04-preview-clicked.png b/tests/baseline-screenshots/chromium/print-04-preview-clicked.png deleted file mode 100644 index 4923a30..0000000 Binary files a/tests/baseline-screenshots/chromium/print-04-preview-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-05-page-setup-clicked.png b/tests/baseline-screenshots/chromium/print-05-page-setup-clicked.png deleted file mode 100644 index 7d72caf..0000000 Binary files a/tests/baseline-screenshots/chromium/print-05-page-setup-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-06-print-clicked.png b/tests/baseline-screenshots/chromium/print-06-print-clicked.png deleted file mode 100644 index aff9216..0000000 Binary files a/tests/baseline-screenshots/chromium/print-06-print-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-07-callbacks.png b/tests/baseline-screenshots/chromium/print-07-callbacks.png deleted file mode 100644 index 4923a30..0000000 Binary files a/tests/baseline-screenshots/chromium/print-07-callbacks.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/print-08-all-buttons.png b/tests/baseline-screenshots/chromium/print-08-all-buttons.png deleted file mode 100644 index 5cf2a14..0000000 Binary files a/tests/baseline-screenshots/chromium/print-08-all-buttons.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/printpreview-01-loaded.png b/tests/baseline-screenshots/chromium/printpreview-01-loaded.png deleted file mode 100644 index 12085af..0000000 Binary files a/tests/baseline-screenshots/chromium/printpreview-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/printpreview-02-preview-area.png b/tests/baseline-screenshots/chromium/printpreview-02-preview-area.png deleted file mode 100644 index 12085af..0000000 Binary files a/tests/baseline-screenshots/chromium/printpreview-02-preview-area.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/printpreview-03-preview-frame.png b/tests/baseline-screenshots/chromium/printpreview-03-preview-frame.png deleted file mode 100644 index 747add0..0000000 Binary files a/tests/baseline-screenshots/chromium/printpreview-03-preview-frame.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/printpreview-04-page-setup.png b/tests/baseline-screenshots/chromium/printpreview-04-page-setup.png deleted file mode 100644 index 3dc0892..0000000 Binary files a/tests/baseline-screenshots/chromium/printpreview-04-page-setup.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/printpreview-05-settings.png b/tests/baseline-screenshots/chromium/printpreview-05-settings.png deleted file mode 100644 index 12085af..0000000 Binary files a/tests/baseline-screenshots/chromium/printpreview-05-settings.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/probe-00-after-wizard.png b/tests/baseline-screenshots/chromium/probe-00-after-wizard.png deleted file mode 100644 index 379e046..0000000 Binary files a/tests/baseline-screenshots/chromium/probe-00-after-wizard.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/probe-01-file-menu-open.png b/tests/baseline-screenshots/chromium/probe-01-file-menu-open.png deleted file mode 100644 index 47c4b94..0000000 Binary files a/tests/baseline-screenshots/chromium/probe-01-file-menu-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/probe-02-after-open-click.png b/tests/baseline-screenshots/chromium/probe-02-after-open-click.png deleted file mode 100644 index 703c172..0000000 Binary files a/tests/baseline-screenshots/chromium/probe-02-after-open-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/probe-03-late.png b/tests/baseline-screenshots/chromium/probe-03-late.png deleted file mode 100644 index 703c172..0000000 Binary files a/tests/baseline-screenshots/chromium/probe-03-late.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/project-sync-00-board-open.png b/tests/baseline-screenshots/chromium/project-sync-00-board-open.png deleted file mode 100644 index eff999b..0000000 Binary files a/tests/baseline-screenshots/chromium/project-sync-00-board-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/project-sync-01-update-dialog.png b/tests/baseline-screenshots/chromium/project-sync-01-update-dialog.png deleted file mode 100644 index 7c2e66c..0000000 Binary files a/tests/baseline-screenshots/chromium/project-sync-01-update-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/project-sync-02-resync-first-R777.png b/tests/baseline-screenshots/chromium/project-sync-02-resync-first-R777.png deleted file mode 100644 index d84d0f0..0000000 Binary files a/tests/baseline-screenshots/chromium/project-sync-02-resync-first-R777.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/project-sync-03-resync-second-R888.png b/tests/baseline-screenshots/chromium/project-sync-03-resync-second-R888.png deleted file mode 100644 index 699bf57..0000000 Binary files a/tests/baseline-screenshots/chromium/project-sync-03-resync-second-R888.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/propgrid-01-loaded.png b/tests/baseline-screenshots/chromium/propgrid-01-loaded.png deleted file mode 100644 index ef4c590..0000000 Binary files a/tests/baseline-screenshots/chromium/propgrid-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/propgrid-02-categories.png b/tests/baseline-screenshots/chromium/propgrid-02-categories.png deleted file mode 100644 index ef4c590..0000000 Binary files a/tests/baseline-screenshots/chromium/propgrid-02-categories.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/propgrid-03-selected.png b/tests/baseline-screenshots/chromium/propgrid-03-selected.png deleted file mode 100644 index 0bdfe02..0000000 Binary files a/tests/baseline-screenshots/chromium/propgrid-03-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/propgrid-04-manager.png b/tests/baseline-screenshots/chromium/propgrid-04-manager.png deleted file mode 100644 index ef4c590..0000000 Binary files a/tests/baseline-screenshots/chromium/propgrid-04-manager.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/radiogroups-01-loaded.png b/tests/baseline-screenshots/chromium/radiogroups-01-loaded.png deleted file mode 100644 index 9b6b1eb..0000000 Binary files a/tests/baseline-screenshots/chromium/radiogroups-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/radiogroups-02-selections.png b/tests/baseline-screenshots/chromium/radiogroups-02-selections.png deleted file mode 100644 index 7f7593d..0000000 Binary files a/tests/baseline-screenshots/chromium/radiogroups-02-selections.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/regions.png b/tests/baseline-screenshots/chromium/regions.png deleted file mode 100644 index 32e902a..0000000 Binary files a/tests/baseline-screenshots/chromium/regions.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/scrollbar-01-loaded.png b/tests/baseline-screenshots/chromium/scrollbar-01-loaded.png deleted file mode 100644 index 5ce7403..0000000 Binary files a/tests/baseline-screenshots/chromium/scrollbar-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/scrollbar-02-dragged.png b/tests/baseline-screenshots/chromium/scrollbar-02-dragged.png deleted file mode 100644 index d92766b..0000000 Binary files a/tests/baseline-screenshots/chromium/scrollbar-02-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/searchctrl-01-visible.png b/tests/baseline-screenshots/chromium/searchctrl-01-visible.png deleted file mode 100644 index 07cea2e..0000000 Binary files a/tests/baseline-screenshots/chromium/searchctrl-01-visible.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/searchctrl-02-typing.png b/tests/baseline-screenshots/chromium/searchctrl-02-typing.png deleted file mode 100644 index e4a8549..0000000 Binary files a/tests/baseline-screenshots/chromium/searchctrl-02-typing.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/searchctrl-03-after-enter.png b/tests/baseline-screenshots/chromium/searchctrl-03-after-enter.png deleted file mode 100644 index e4a8549..0000000 Binary files a/tests/baseline-screenshots/chromium/searchctrl-03-after-enter.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/selectheight-01-loaded.png b/tests/baseline-screenshots/chromium/selectheight-01-loaded.png deleted file mode 100644 index ce3666a..0000000 Binary files a/tests/baseline-screenshots/chromium/selectheight-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/selectheight-02-result.png b/tests/baseline-screenshots/chromium/selectheight-02-result.png deleted file mode 100644 index ce3666a..0000000 Binary files a/tests/baseline-screenshots/chromium/selectheight-02-result.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-01-loaded.png b/tests/baseline-screenshots/chromium/specialized-01-loaded.png deleted file mode 100644 index 835c214..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-02-treebook-initial.png b/tests/baseline-screenshots/chromium/specialized-02-treebook-initial.png deleted file mode 100644 index 835c214..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-02-treebook-initial.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-03-treebook-subpage.png b/tests/baseline-screenshots/chromium/specialized-03-treebook-subpage.png deleted file mode 100644 index f449880..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-03-treebook-subpage.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-04-treebook-expand.png b/tests/baseline-screenshots/chromium/specialized-04-treebook-expand.png deleted file mode 100644 index 31452b7..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-04-treebook-expand.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-05-bitmapcombo-dropdown.png b/tests/baseline-screenshots/chromium/specialized-05-bitmapcombo-dropdown.png deleted file mode 100644 index f8d40ed..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-05-bitmapcombo-dropdown.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-06-bitmapcombo-select.png b/tests/baseline-screenshots/chromium/specialized-06-bitmapcombo-select.png deleted file mode 100644 index 87f7bb4..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-06-bitmapcombo-select.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-07-rearrange-list.png b/tests/baseline-screenshots/chromium/specialized-07-rearrange-list.png deleted file mode 100644 index 835c214..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-07-rearrange-list.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/specialized-08-get-order.png b/tests/baseline-screenshots/chromium/specialized-08-get-order.png deleted file mode 100644 index 679217c..0000000 Binary files a/tests/baseline-screenshots/chromium/specialized-08-get-order.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/spinctrl-01-visible.png b/tests/baseline-screenshots/chromium/spinctrl-01-visible.png deleted file mode 100644 index 07cea2e..0000000 Binary files a/tests/baseline-screenshots/chromium/spinctrl-01-visible.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/spinctrl-02-after-click.png b/tests/baseline-screenshots/chromium/spinctrl-02-after-click.png deleted file mode 100644 index 07cea2e..0000000 Binary files a/tests/baseline-screenshots/chromium/spinctrl-02-after-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-01-loaded.png b/tests/baseline-screenshots/chromium/stc-01-loaded.png deleted file mode 100644 index 4d13682..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-02-python-default.png b/tests/baseline-screenshots/chromium/stc-02-python-default.png deleted file mode 100644 index 4d13682..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-02-python-default.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-03-drc-mode.png b/tests/baseline-screenshots/chromium/stc-03-drc-mode.png deleted file mode 100644 index 6f5c332..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-03-drc-mode.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-04-plain-mode.png b/tests/baseline-screenshots/chromium/stc-04-plain-mode.png deleted file mode 100644 index 8f19528..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-04-plain-mode.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-05-insert-sample.png b/tests/baseline-screenshots/chromium/stc-05-insert-sample.png deleted file mode 100644 index 4a97461..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-05-insert-sample.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-06-cleared.png b/tests/baseline-screenshots/chromium/stc-06-cleared.png deleted file mode 100644 index 8c92c04..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-06-cleared.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-07-line-numbers-toggle.png b/tests/baseline-screenshots/chromium/stc-07-line-numbers-toggle.png deleted file mode 100644 index 9367cd5..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-07-line-numbers-toggle.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-08-folded.png b/tests/baseline-screenshots/chromium/stc-08-folded.png deleted file mode 100644 index 4e00e81..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-08-folded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-09-typed.png b/tests/baseline-screenshots/chromium/stc-09-typed.png deleted file mode 100644 index 385feee..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-09-typed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-10a-python.png b/tests/baseline-screenshots/chromium/stc-10a-python.png deleted file mode 100644 index 4d13682..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-10a-python.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-10b-drc.png b/tests/baseline-screenshots/chromium/stc-10b-drc.png deleted file mode 100644 index 6f5c332..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-10b-drc.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/stc-10c-python-again.png b/tests/baseline-screenshots/chromium/stc-10c-python-again.png deleted file mode 100644 index f4479ac..0000000 Binary files a/tests/baseline-screenshots/chromium/stc-10c-python-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/symbol_editor-01-loaded.png b/tests/baseline-screenshots/chromium/symbol_editor-01-loaded.png deleted file mode 100644 index 0a0bf60..0000000 Binary files a/tests/baseline-screenshots/chromium/symbol_editor-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/symbol_editor-02-metrics.png b/tests/baseline-screenshots/chromium/symbol_editor-02-metrics.png deleted file mode 100644 index 0a0bf60..0000000 Binary files a/tests/baseline-screenshots/chromium/symbol_editor-02-metrics.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/textdecor.png b/tests/baseline-screenshots/chromium/textdecor.png deleted file mode 100644 index ba9aadb..0000000 Binary files a/tests/baseline-screenshots/chromium/textdecor.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/threadpool-01-loaded.png b/tests/baseline-screenshots/chromium/threadpool-01-loaded.png deleted file mode 100644 index 667c9da..0000000 Binary files a/tests/baseline-screenshots/chromium/threadpool-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-01-loaded.png b/tests/baseline-screenshots/chromium/timer-01-loaded.png deleted file mode 100644 index 7437337..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-02-started.png b/tests/baseline-screenshots/chromium/timer-02-started.png deleted file mode 100644 index dd8500d..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-02-started.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-03-ticked.png b/tests/baseline-screenshots/chromium/timer-03-ticked.png deleted file mode 100644 index e49bc15..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-03-ticked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-04-stopped.png b/tests/baseline-screenshots/chromium/timer-04-stopped.png deleted file mode 100644 index ee0e860..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-04-stopped.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-05-fast-started.png b/tests/baseline-screenshots/chromium/timer-05-fast-started.png deleted file mode 100644 index 94bf233..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-05-fast-started.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-06-fast-running.png b/tests/baseline-screenshots/chromium/timer-06-fast-running.png deleted file mode 100644 index 8a4acb1..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-06-fast-running.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-07-fast-stopped.png b/tests/baseline-screenshots/chromium/timer-07-fast-stopped.png deleted file mode 100644 index 7fb66d9..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-07-fast-stopped.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/timer-08-reset.png b/tests/baseline-screenshots/chromium/timer-08-reset.png deleted file mode 100644 index f5f2a04..0000000 Binary files a/tests/baseline-screenshots/chromium/timer-08-reset.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-01-loaded.png b/tests/baseline-screenshots/chromium/toolbar-01-loaded.png deleted file mode 100644 index d3e3c03..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-02-buttons.png b/tests/baseline-screenshots/chromium/toolbar-02-buttons.png deleted file mode 100644 index d3e3c03..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-02-buttons.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-03-new-clicked.png b/tests/baseline-screenshots/chromium/toolbar-03-new-clicked.png deleted file mode 100644 index a51852b..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-03-new-clicked.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-04-zoom.png b/tests/baseline-screenshots/chromium/toolbar-04-zoom.png deleted file mode 100644 index d4492fc..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-04-zoom.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-05-toggle-on.png b/tests/baseline-screenshots/chromium/toolbar-05-toggle-on.png deleted file mode 100644 index 0e84261..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-05-toggle-on.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-06-toggle-off.png b/tests/baseline-screenshots/chromium/toolbar-06-toggle-off.png deleted file mode 100644 index 2ea7fbb..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-06-toggle-off.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-07-statusbar.png b/tests/baseline-screenshots/chromium/toolbar-07-statusbar.png deleted file mode 100644 index d3e3c03..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-07-statusbar.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/toolbar-08-all-buttons.png b/tests/baseline-screenshots/chromium/toolbar-08-all-buttons.png deleted file mode 100644 index 67929b8..0000000 Binary files a/tests/baseline-screenshots/chromium/toolbar-08-all-buttons.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-01-loaded.png b/tests/baseline-screenshots/chromium/tree-01-loaded.png deleted file mode 100644 index 2a76ea8..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-02-hierarchy.png b/tests/baseline-screenshots/chromium/tree-02-hierarchy.png deleted file mode 100644 index 2a76ea8..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-02-hierarchy.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-03-selected.png b/tests/baseline-screenshots/chromium/tree-03-selected.png deleted file mode 100644 index 4d18b4c..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-03-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-04-expanded.png b/tests/baseline-screenshots/chromium/tree-04-expanded.png deleted file mode 100644 index de1159d..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-04-expanded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-05-collapsed.png b/tests/baseline-screenshots/chromium/tree-05-collapsed.png deleted file mode 100644 index 8485ce8..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-05-collapsed.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-06-added.png b/tests/baseline-screenshots/chromium/tree-06-added.png deleted file mode 100644 index 8eda15b..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-06-added.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/tree-07-deleted.png b/tests/baseline-screenshots/chromium/tree-07-deleted.png deleted file mode 100644 index 0a344b3..0000000 Binary files a/tests/baseline-screenshots/chromium/tree-07-deleted.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-01-loaded.png b/tests/baseline-screenshots/chromium/validators-01-loaded.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-02-text.png b/tests/baseline-screenshots/chromium/validators-02-text.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-02-text.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-03-integer.png b/tests/baseline-screenshots/chromium/validators-03-integer.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-03-integer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-04-float.png b/tests/baseline-screenshots/chromium/validators-04-float.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-04-float.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-05-netname.png b/tests/baseline-screenshots/chromium/validators-05-netname.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-05-netname.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/validators-06-button.png b/tests/baseline-screenshots/chromium/validators-06-button.png deleted file mode 100644 index ab8be52..0000000 Binary files a/tests/baseline-screenshots/chromium/validators-06-button.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-01-loaded.png b/tests/baseline-screenshots/chromium/wasmedge-01-loaded.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-02-filesystem.png b/tests/baseline-screenshots/chromium/wasmedge-02-filesystem.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-02-filesystem.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-03-threading.png b/tests/baseline-screenshots/chromium/wasmedge-03-threading.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-03-threading.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-04-fonts.png b/tests/baseline-screenshots/chromium/wasmedge-04-fonts.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-04-fonts.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-05-clipboard.png b/tests/baseline-screenshots/chromium/wasmedge-05-clipboard.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-05-clipboard.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-06-memory.png b/tests/baseline-screenshots/chromium/wasmedge-06-memory.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-06-memory.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-07-runall.png b/tests/baseline-screenshots/chromium/wasmedge-07-runall.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-07-runall.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wasmedge-08-log.png b/tests/baseline-screenshots/chromium/wasmedge-08-log.png deleted file mode 100644 index a290dea..0000000 Binary files a/tests/baseline-screenshots/chromium/wasmedge-08-log.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-calculator.png b/tests/baseline-screenshots/chromium/web-calculator.png deleted file mode 100644 index 11fe929..0000000 Binary files a/tests/baseline-screenshots/chromium/web-calculator.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-chrome-hidden.png b/tests/baseline-screenshots/chromium/web-chrome-hidden.png deleted file mode 100644 index cce7da2..0000000 Binary files a/tests/baseline-screenshots/chromium/web-chrome-hidden.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-chrome-restored.png b/tests/baseline-screenshots/chromium/web-chrome-restored.png deleted file mode 100644 index 32fbcfb..0000000 Binary files a/tests/baseline-screenshots/chromium/web-chrome-restored.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-eeschema.png b/tests/baseline-screenshots/chromium/web-eeschema.png deleted file mode 100644 index 1cf385c..0000000 Binary files a/tests/baseline-screenshots/chromium/web-eeschema.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-footprint_editor.png b/tests/baseline-screenshots/chromium/web-footprint_editor.png deleted file mode 100644 index 42a3daf..0000000 Binary files a/tests/baseline-screenshots/chromium/web-footprint_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-gerbview.png b/tests/baseline-screenshots/chromium/web-gerbview.png deleted file mode 100644 index 2e13b86..0000000 Binary files a/tests/baseline-screenshots/chromium/web-gerbview.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-pcbnew.png b/tests/baseline-screenshots/chromium/web-pcbnew.png deleted file mode 100644 index 3e195d6..0000000 Binary files a/tests/baseline-screenshots/chromium/web-pcbnew.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-pl_editor.png b/tests/baseline-screenshots/chromium/web-pl_editor.png deleted file mode 100644 index d467cdb..0000000 Binary files a/tests/baseline-screenshots/chromium/web-pl_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-read-only-viewer.png b/tests/baseline-screenshots/chromium/web-read-only-viewer.png deleted file mode 100644 index 7e490b3..0000000 Binary files a/tests/baseline-screenshots/chromium/web-read-only-viewer.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-switch-missing-pcb-created.png b/tests/baseline-screenshots/chromium/web-switch-missing-pcb-created.png deleted file mode 100644 index 511c6c2..0000000 Binary files a/tests/baseline-screenshots/chromium/web-switch-missing-pcb-created.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-switch-pcb-to-sch.png b/tests/baseline-screenshots/chromium/web-switch-pcb-to-sch.png deleted file mode 100644 index 9414895..0000000 Binary files a/tests/baseline-screenshots/chromium/web-switch-pcb-to-sch.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-switch-sch-to-pcb.png b/tests/baseline-screenshots/chromium/web-switch-sch-to-pcb.png deleted file mode 100644 index c5ff3c1..0000000 Binary files a/tests/baseline-screenshots/chromium/web-switch-sch-to-pcb.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/web-symbol_editor.png b/tests/baseline-screenshots/chromium/web-symbol_editor.png deleted file mode 100644 index 7f58562..0000000 Binary files a/tests/baseline-screenshots/chromium/web-symbol_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wizard-01-loaded.png b/tests/baseline-screenshots/chromium/wizard-01-loaded.png deleted file mode 100644 index 1730b93..0000000 Binary files a/tests/baseline-screenshots/chromium/wizard-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wizard-02-launch.png b/tests/baseline-screenshots/chromium/wizard-02-launch.png deleted file mode 100644 index 49c7045..0000000 Binary files a/tests/baseline-screenshots/chromium/wizard-02-launch.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wizard-03-next-page.png b/tests/baseline-screenshots/chromium/wizard-03-next-page.png deleted file mode 100644 index 743e2dc..0000000 Binary files a/tests/baseline-screenshots/chromium/wizard-03-next-page.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wizard-04-back-page.png b/tests/baseline-screenshots/chromium/wizard-04-back-page.png deleted file mode 100644 index 743e2dc..0000000 Binary files a/tests/baseline-screenshots/chromium/wizard-04-back-page.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wizard-05-cancel.png b/tests/baseline-screenshots/chromium/wizard-05-cancel.png deleted file mode 100644 index dfa0bf6..0000000 Binary files a/tests/baseline-screenshots/chromium/wizard-05-cancel.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wxgrid-01-tab.png b/tests/baseline-screenshots/chromium/wxgrid-01-tab.png deleted file mode 100644 index 07cea2e..0000000 Binary files a/tests/baseline-screenshots/chromium/wxgrid-01-tab.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wxgrid-02-selection.png b/tests/baseline-screenshots/chromium/wxgrid-02-selection.png deleted file mode 100644 index 8ff1189..0000000 Binary files a/tests/baseline-screenshots/chromium/wxgrid-02-selection.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wxgrid-03-editing.png b/tests/baseline-screenshots/chromium/wxgrid-03-editing.png deleted file mode 100644 index 8ff1189..0000000 Binary files a/tests/baseline-screenshots/chromium/wxgrid-03-editing.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wxgrid-controls.png b/tests/baseline-screenshots/chromium/wxgrid-controls.png deleted file mode 100644 index b459e6d..0000000 Binary files a/tests/baseline-screenshots/chromium/wxgrid-controls.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/wxgrid-dedicated-page.png b/tests/baseline-screenshots/chromium/wxgrid-dedicated-page.png deleted file mode 100644 index b459e6d..0000000 Binary files a/tests/baseline-screenshots/chromium/wxgrid-dedicated-page.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xface-preferences.png b/tests/baseline-screenshots/chromium/xface-preferences.png deleted file mode 100644 index 2626433..0000000 Binary files a/tests/baseline-screenshots/chromium/xface-preferences.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-01-loaded.png b/tests/baseline-screenshots/chromium/xml-01-loaded.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-02-input.png b/tests/baseline-screenshots/chromium/xml-02-input.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-02-input.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-03-parse.png b/tests/baseline-screenshots/chromium/xml-03-parse.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-03-parse.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-04-traverse.png b/tests/baseline-screenshots/chromium/xml-04-traverse.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-04-traverse.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-05-create.png b/tests/baseline-screenshots/chromium/xml-05-create.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-05-create.png and /dev/null differ diff --git a/tests/baseline-screenshots/chromium/xml-06-results.png b/tests/baseline-screenshots/chromium/xml-06-results.png deleted file mode 100644 index 20ecccc..0000000 Binary files a/tests/baseline-screenshots/chromium/xml-06-results.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-00-board-loaded.png b/tests/baseline-screenshots/firefox/3d-viewer-00-board-loaded.png deleted file mode 100644 index a409bf2..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-00-board-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer-render.png b/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer-render.png deleted file mode 100644 index 1f7fdaf..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer-render.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer.png b/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer.png deleted file mode 100644 index 97ac6a9..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-models-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer-render.png b/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer-render.png deleted file mode 100644 index e163cf2..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer-render.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer.png b/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer.png deleted file mode 100644 index 19142fb..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/3d-viewer-titlebar.png b/tests/baseline-screenshots/firefox/3d-viewer-titlebar.png deleted file mode 100644 index 99a9649..0000000 Binary files a/tests/baseline-screenshots/firefox/3d-viewer-titlebar.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-00-layers.png b/tests/baseline-screenshots/firefox/appearance-00-layers.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-00-layers.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-01-objects.png b/tests/baseline-screenshots/firefox/appearance-01-objects.png deleted file mode 100644 index ff44b66..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-01-objects.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-02-nets.png b/tests/baseline-screenshots/firefox/appearance-02-nets.png deleted file mode 100644 index 8e5bb07..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-02-nets.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-03-layers-again.png b/tests/baseline-screenshots/firefox/appearance-03-layers-again.png deleted file mode 100644 index 083ec84..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-03-layers-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-10-layers-scrolled.png b/tests/baseline-screenshots/firefox/appearance-10-layers-scrolled.png deleted file mode 100644 index 31663ac..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-10-layers-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-11-layers-scrolled-back.png b/tests/baseline-screenshots/firefox/appearance-11-layers-scrolled-back.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-11-layers-scrolled-back.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/appearance-20-objects-scrolled.png b/tests/baseline-screenshots/firefox/appearance-20-objects-scrolled.png deleted file mode 100644 index c1046c4..0000000 Binary files a/tests/baseline-screenshots/firefox/appearance-20-objects-scrolled.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/calculator-before-switch.png b/tests/baseline-screenshots/firefox/calculator-before-switch.png deleted file mode 100644 index 1a9ff0e..0000000 Binary files a/tests/baseline-screenshots/firefox/calculator-before-switch.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/calculator-color-code.png b/tests/baseline-screenshots/firefox/calculator-color-code.png deleted file mode 100644 index 26be45f..0000000 Binary files a/tests/baseline-screenshots/firefox/calculator-color-code.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/calculator-loaded.png b/tests/baseline-screenshots/firefox/calculator-loaded.png deleted file mode 100644 index 1a9ff0e..0000000 Binary files a/tests/baseline-screenshots/firefox/calculator-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/coroutine-01-loaded.png b/tests/baseline-screenshots/firefox/coroutine-01-loaded.png deleted file mode 100644 index d79003e..0000000 Binary files a/tests/baseline-screenshots/firefox/coroutine-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/coroutine-02-summary.png b/tests/baseline-screenshots/firefox/coroutine-02-summary.png deleted file mode 100644 index d79003e..0000000 Binary files a/tests/baseline-screenshots/firefox/coroutine-02-summary.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/coroutine-nested-01-loaded.png b/tests/baseline-screenshots/firefox/coroutine-nested-01-loaded.png deleted file mode 100644 index 7f20759..0000000 Binary files a/tests/baseline-screenshots/firefox/coroutine-nested-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/coroutine-nested-02-summary.png b/tests/baseline-screenshots/firefox/coroutine-nested-02-summary.png deleted file mode 100644 index 7f20759..0000000 Binary files a/tests/baseline-screenshots/firefox/coroutine-nested-02-summary.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eefpsel-01-boot.png b/tests/baseline-screenshots/firefox/eefpsel-01-boot.png deleted file mode 100644 index 05d2c97..0000000 Binary files a/tests/baseline-screenshots/firefox/eefpsel-01-boot.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eefpsel-02-chooser.png b/tests/baseline-screenshots/firefox/eefpsel-02-chooser.png deleted file mode 100644 index 9e4ddf1..0000000 Binary files a/tests/baseline-screenshots/firefox/eefpsel-02-chooser.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eefpsel-03-selected.png b/tests/baseline-screenshots/firefox/eefpsel-03-selected.png deleted file mode 100644 index 351042b..0000000 Binary files a/tests/baseline-screenshots/firefox/eefpsel-03-selected.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-crosshair-00-small.png b/tests/baseline-screenshots/firefox/eeschema-crosshair-00-small.png deleted file mode 100644 index b07b3f1..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-crosshair-00-small.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-crosshair-01-full.png b/tests/baseline-screenshots/firefox/eeschema-crosshair-01-full.png deleted file mode 100644 index 9ab801e..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-crosshair-01-full.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-crosshair-02-45.png b/tests/baseline-screenshots/firefox/eeschema-crosshair-02-45.png deleted file mode 100644 index 15f979d..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-crosshair-02-45.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-crosshair-03-small-again.png b/tests/baseline-screenshots/firefox/eeschema-crosshair-03-small-again.png deleted file mode 100644 index b07b3f1..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-crosshair-03-small-again.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-draw-wires-00-before-tool-click.png b/tests/baseline-screenshots/firefox/eeschema-draw-wires-00-before-tool-click.png deleted file mode 100644 index 535727d..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-draw-wires-00-before-tool-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-draw-wires-01-after-click.png b/tests/baseline-screenshots/firefox/eeschema-draw-wires-01-after-click.png deleted file mode 100644 index f9590e9..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-draw-wires-01-after-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-draw-wires-02-after-drawing.png b/tests/baseline-screenshots/firefox/eeschema-draw-wires-02-after-drawing.png deleted file mode 100644 index bcee7cc..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-draw-wires-02-after-drawing.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-load-rendered.png b/tests/baseline-screenshots/firefox/eeschema-load-rendered.png deleted file mode 100644 index 21c0cae..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-load-rendered.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-loaded-css.png b/tests/baseline-screenshots/firefox/eeschema-loaded-css.png deleted file mode 100644 index 535727d..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-loaded-css.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-loaded.png b/tests/baseline-screenshots/firefox/eeschema-loaded.png deleted file mode 100644 index 535727d..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-sim-frame.png b/tests/baseline-screenshots/firefox/eeschema-sim-frame.png deleted file mode 100644 index f89219f..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-sim-frame.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-sim-plot.png b/tests/baseline-screenshots/firefox/eeschema-sim-plot.png deleted file mode 100644 index 1be2bbc..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-sim-plot.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/eeschema-url-regex.png b/tests/baseline-screenshots/firefox/eeschema-url-regex.png deleted file mode 100644 index eb88561..0000000 Binary files a/tests/baseline-screenshots/firefox/eeschema-url-regex.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/frame-runtime-eeschema.html.png b/tests/baseline-screenshots/firefox/frame-runtime-eeschema.html.png deleted file mode 100644 index 535727d..0000000 Binary files a/tests/baseline-screenshots/firefox/frame-runtime-eeschema.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/frame-runtime-footprint_editor.html.png b/tests/baseline-screenshots/firefox/frame-runtime-footprint_editor.html.png deleted file mode 100644 index 8031f0d..0000000 Binary files a/tests/baseline-screenshots/firefox/frame-runtime-footprint_editor.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/frame-runtime-pcbnew.html.png b/tests/baseline-screenshots/firefox/frame-runtime-pcbnew.html.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/frame-runtime-pcbnew.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/frame-runtime-symbol_editor.html.png b/tests/baseline-screenshots/firefox/frame-runtime-symbol_editor.html.png deleted file mode 100644 index 466fd22..0000000 Binary files a/tests/baseline-screenshots/firefox/frame-runtime-symbol_editor.html.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/gerbview-01-loaded.png b/tests/baseline-screenshots/firefox/gerbview-01-loaded.png deleted file mode 100644 index e98c8c2..0000000 Binary files a/tests/baseline-screenshots/firefox/gerbview-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/gerbview-02-metrics.png b/tests/baseline-screenshots/firefox/gerbview-02-metrics.png deleted file mode 100644 index e98c8c2..0000000 Binary files a/tests/baseline-screenshots/firefox/gerbview-02-metrics.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/gerbview-print-00-loaded.png b/tests/baseline-screenshots/firefox/gerbview-print-00-loaded.png deleted file mode 100644 index 0c1c0ee..0000000 Binary files a/tests/baseline-screenshots/firefox/gerbview-print-00-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/gerbview-print-01-dialog.png b/tests/baseline-screenshots/firefox/gerbview-print-01-dialog.png deleted file mode 100644 index 6a8332f..0000000 Binary files a/tests/baseline-screenshots/firefox/gerbview-print-01-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/gerbview-print-02-reopened.png b/tests/baseline-screenshots/firefox/gerbview-print-02-reopened.png deleted file mode 100644 index 6a8332f..0000000 Binary files a/tests/baseline-screenshots/firefox/gerbview-print-02-reopened.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/import-settings-modal-stack.png b/tests/baseline-screenshots/firefox/import-settings-modal-stack.png deleted file mode 100644 index cab1481..0000000 Binary files a/tests/baseline-screenshots/firefox/import-settings-modal-stack.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-microwave-00-pcbnew-ready.png b/tests/baseline-screenshots/firefox/load-pcb-microwave-00-pcbnew-ready.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-microwave-00-pcbnew-ready.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-microwave-01-dialog-open.png b/tests/baseline-screenshots/firefox/load-pcb-microwave-01-dialog-open.png deleted file mode 100644 index 6869088..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-microwave-01-dialog-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-microwave.png b/tests/baseline-screenshots/firefox/load-pcb-microwave.png deleted file mode 100644 index 7a5ed60..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-microwave.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-00-pcbnew-ready.png b/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-00-pcbnew-ready.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-00-pcbnew-ready.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-01-dialog-open.png b/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-01-dialog-open.png deleted file mode 100644 index f685bf2..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer-01-dialog-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer.png b/tests/baseline-screenshots/firefox/load-pcb-pic_programmer.png deleted file mode 100644 index a409bf2..0000000 Binary files a/tests/baseline-screenshots/firefox/load-pcb-pic_programmer.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/occ-export-dialog.png b/tests/baseline-screenshots/firefox/occ-export-dialog.png deleted file mode 100644 index 1df71c4..0000000 Binary files a/tests/baseline-screenshots/firefox/occ-export-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/occ-export-done.png b/tests/baseline-screenshots/firefox/occ-export-done.png deleted file mode 100644 index a3f3289..0000000 Binary files a/tests/baseline-screenshots/firefox/occ-export-done.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/occ-probe-done.png b/tests/baseline-screenshots/firefox/occ-probe-done.png deleted file mode 100644 index 6952ec6..0000000 Binary files a/tests/baseline-screenshots/firefox/occ-probe-done.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-context-menu.png b/tests/baseline-screenshots/firefox/pcbnew-context-menu.png deleted file mode 100644 index e432573..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-context-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-context-submenu.png b/tests/baseline-screenshots/firefox/pcbnew-context-submenu.png deleted file mode 100644 index 504f6db..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-context-submenu.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-dark-mode-loaded.png b/tests/baseline-screenshots/firefox/pcbnew-dark-mode-loaded.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-dark-mode-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-00-before-tool-click.png b/tests/baseline-screenshots/firefox/pcbnew-draw-lines-00-before-tool-click.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-00-before-tool-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-01-after-click.png b/tests/baseline-screenshots/firefox/pcbnew-draw-lines-01-after-click.png deleted file mode 100644 index 220e1dc..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-01-after-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-02-after-drawing.png b/tests/baseline-screenshots/firefox/pcbnew-draw-lines-02-after-drawing.png deleted file mode 100644 index ed283ee..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-draw-lines-02-after-drawing.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-loaded-css.png b/tests/baseline-screenshots/firefox/pcbnew-loaded-css.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-loaded-css.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-loaded.png b/tests/baseline-screenshots/firefox/pcbnew-loaded.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-move-00-before.png b/tests/baseline-screenshots/firefox/pcbnew-move-00-before.png deleted file mode 100644 index 4ff0696..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-move-00-before.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-move-01-after.png b/tests/baseline-screenshots/firefox/pcbnew-move-01-after.png deleted file mode 100644 index 33747df..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-move-01-after.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar-dragged.png b/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar-dragged.png deleted file mode 100644 index 3d9a950..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar.png b/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/pcbnew-sidebar-scrollbar.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-01-loaded.png b/tests/baseline-screenshots/firefox/pl_editor-01-loaded.png deleted file mode 100644 index e40f36f..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-02-no-wizard.png b/tests/baseline-screenshots/firefox/pl_editor-02-no-wizard.png deleted file mode 100644 index e40f36f..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-02-no-wizard.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-03-file-menu.png b/tests/baseline-screenshots/firefox/pl_editor-03-file-menu.png deleted file mode 100644 index f1d6a76..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-03-file-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-04-save-as-dialog.png b/tests/baseline-screenshots/firefox/pl_editor-04-save-as-dialog.png deleted file mode 100644 index 3c766b7..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-04-save-as-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-04b-after-enter.png b/tests/baseline-screenshots/firefox/pl_editor-04b-after-enter.png deleted file mode 100644 index 3c766b7..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-04b-after-enter.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-context-menu.png b/tests/baseline-screenshots/firefox/pl_editor-context-menu.png deleted file mode 100644 index 6518d37..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-context-menu.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-load-rendered.png b/tests/baseline-screenshots/firefox/pl_editor-load-rendered.png deleted file mode 100644 index 7ef64b8..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-load-rendered.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-scrollbar-dragged.png b/tests/baseline-screenshots/firefox/pl_editor-scrollbar-dragged.png deleted file mode 100644 index b50d104..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-scrollbar-dragged.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/pl_editor-scrollbar.png b/tests/baseline-screenshots/firefox/pl_editor-scrollbar.png deleted file mode 100644 index ecd22d8..0000000 Binary files a/tests/baseline-screenshots/firefox/pl_editor-scrollbar.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/probe-00-after-wizard.png b/tests/baseline-screenshots/firefox/probe-00-after-wizard.png deleted file mode 100644 index 5a98048..0000000 Binary files a/tests/baseline-screenshots/firefox/probe-00-after-wizard.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/probe-01-file-menu-open.png b/tests/baseline-screenshots/firefox/probe-01-file-menu-open.png deleted file mode 100644 index 0ca7f3b..0000000 Binary files a/tests/baseline-screenshots/firefox/probe-01-file-menu-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/probe-02-after-open-click.png b/tests/baseline-screenshots/firefox/probe-02-after-open-click.png deleted file mode 100644 index 3291f6c..0000000 Binary files a/tests/baseline-screenshots/firefox/probe-02-after-open-click.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/probe-03-late.png b/tests/baseline-screenshots/firefox/probe-03-late.png deleted file mode 100644 index 3291f6c..0000000 Binary files a/tests/baseline-screenshots/firefox/probe-03-late.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/project-sync-00-board-open.png b/tests/baseline-screenshots/firefox/project-sync-00-board-open.png deleted file mode 100644 index ded536f..0000000 Binary files a/tests/baseline-screenshots/firefox/project-sync-00-board-open.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/project-sync-01-update-dialog.png b/tests/baseline-screenshots/firefox/project-sync-01-update-dialog.png deleted file mode 100644 index a831f81..0000000 Binary files a/tests/baseline-screenshots/firefox/project-sync-01-update-dialog.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/project-sync-02-resync-first-R777.png b/tests/baseline-screenshots/firefox/project-sync-02-resync-first-R777.png deleted file mode 100644 index 7263a4a..0000000 Binary files a/tests/baseline-screenshots/firefox/project-sync-02-resync-first-R777.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/project-sync-03-resync-second-R888.png b/tests/baseline-screenshots/firefox/project-sync-03-resync-second-R888.png deleted file mode 100644 index 5df1139..0000000 Binary files a/tests/baseline-screenshots/firefox/project-sync-03-resync-second-R888.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/symbol_editor-01-loaded.png b/tests/baseline-screenshots/firefox/symbol_editor-01-loaded.png deleted file mode 100644 index 466fd22..0000000 Binary files a/tests/baseline-screenshots/firefox/symbol_editor-01-loaded.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/symbol_editor-02-metrics.png b/tests/baseline-screenshots/firefox/symbol_editor-02-metrics.png deleted file mode 100644 index 466fd22..0000000 Binary files a/tests/baseline-screenshots/firefox/symbol_editor-02-metrics.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-calculator.png b/tests/baseline-screenshots/firefox/web-calculator.png deleted file mode 100644 index d87574c..0000000 Binary files a/tests/baseline-screenshots/firefox/web-calculator.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-chrome-hidden.png b/tests/baseline-screenshots/firefox/web-chrome-hidden.png deleted file mode 100644 index c7ac0ba..0000000 Binary files a/tests/baseline-screenshots/firefox/web-chrome-hidden.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-chrome-restored.png b/tests/baseline-screenshots/firefox/web-chrome-restored.png deleted file mode 100644 index e31db56..0000000 Binary files a/tests/baseline-screenshots/firefox/web-chrome-restored.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-eeschema.png b/tests/baseline-screenshots/firefox/web-eeschema.png deleted file mode 100644 index f79f200..0000000 Binary files a/tests/baseline-screenshots/firefox/web-eeschema.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-footprint_editor.png b/tests/baseline-screenshots/firefox/web-footprint_editor.png deleted file mode 100644 index 228439f..0000000 Binary files a/tests/baseline-screenshots/firefox/web-footprint_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-gerbview.png b/tests/baseline-screenshots/firefox/web-gerbview.png deleted file mode 100644 index 86de72b..0000000 Binary files a/tests/baseline-screenshots/firefox/web-gerbview.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-pcbnew.png b/tests/baseline-screenshots/firefox/web-pcbnew.png deleted file mode 100644 index fab6a6d..0000000 Binary files a/tests/baseline-screenshots/firefox/web-pcbnew.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-pl_editor.png b/tests/baseline-screenshots/firefox/web-pl_editor.png deleted file mode 100644 index 60bcf1c..0000000 Binary files a/tests/baseline-screenshots/firefox/web-pl_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-read-only-viewer.png b/tests/baseline-screenshots/firefox/web-read-only-viewer.png deleted file mode 100644 index 1fb8cce..0000000 Binary files a/tests/baseline-screenshots/firefox/web-read-only-viewer.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-switch-missing-pcb-created.png b/tests/baseline-screenshots/firefox/web-switch-missing-pcb-created.png deleted file mode 100644 index 67cfa4a..0000000 Binary files a/tests/baseline-screenshots/firefox/web-switch-missing-pcb-created.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-switch-pcb-to-sch.png b/tests/baseline-screenshots/firefox/web-switch-pcb-to-sch.png deleted file mode 100644 index ecf16cc..0000000 Binary files a/tests/baseline-screenshots/firefox/web-switch-pcb-to-sch.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-switch-sch-to-pcb.png b/tests/baseline-screenshots/firefox/web-switch-sch-to-pcb.png deleted file mode 100644 index 6bafab0..0000000 Binary files a/tests/baseline-screenshots/firefox/web-switch-sch-to-pcb.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/web-symbol_editor.png b/tests/baseline-screenshots/firefox/web-symbol_editor.png deleted file mode 100644 index b9966c5..0000000 Binary files a/tests/baseline-screenshots/firefox/web-symbol_editor.png and /dev/null differ diff --git a/tests/baseline-screenshots/firefox/xface-preferences.png b/tests/baseline-screenshots/firefox/xface-preferences.png deleted file mode 100644 index a90ccdd..0000000 Binary files a/tests/baseline-screenshots/firefox/xface-preferences.png and /dev/null differ diff --git a/tests/package-lock.json b/tests/package-lock.json index 78904f8..fa53571 100644 --- a/tests/package-lock.json +++ b/tests/package-lock.json @@ -12,6 +12,7 @@ "@types/node": "^24.10.1", "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.5", + "aws4fetch": "^1.0.20", "esbuild": "^0.28.0", "pixelmatch": "^5.3.0", "playwright": "^1.62.1", @@ -643,6 +644,13 @@ "dev": true, "license": "MIT" }, + "node_modules/aws4fetch": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/aws4fetch/-/aws4fetch-1.0.20.tgz", + "integrity": "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==", + "dev": true, + "license": "MIT" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/tests/package.json b/tests/package.json index f67bd9b..5807716 100644 --- a/tests/package.json +++ b/tests/package.json @@ -23,6 +23,8 @@ "screenshots:report": "tsx tools/screenshots/post-discord.ts", "screenshots:changelog": "tsx tools/screenshots/changelog.ts", "screenshots:manifest": "tsx tools/screenshots/gen-manifest.ts", + "screenshots:fetch": "tsx tools/screenshots/r2-sync.ts --pull", + "screenshots:push": "tsx tools/screenshots/r2-sync.ts --push", "3d:compare": "tsx tools/screenshots/compare-dirs.ts", "3d:check": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline --new 3d-regression/output/native --out 3d-regression/output/diff/native-self --floors 3d-regression/floors.json --level native-self --label 3d-native --fail-on-change", "3d:check:webgl": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline-webgl --new 3d-regression/output/webgl --out 3d-regression/output/diff/webgl-self --floors 3d-regression/floors.json --level webgl-self --label 3d-webgl --fail-on-change", @@ -36,6 +38,7 @@ "@types/node": "^24.10.1", "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.5", + "aws4fetch": "^1.0.20", "esbuild": "^0.28.0", "pixelmatch": "^5.3.0", "playwright": "^1.62.1", diff --git a/tests/screenshot-manifest.json b/tests/screenshot-manifest.json index 480042a..f8097e2 100644 --- a/tests/screenshot-manifest.json +++ b/tests/screenshot-manifest.json @@ -1,1973 +1,3946 @@ { - "_note": "Generated from baseline-screenshots// — run `npm run screenshots:manifest`. The name list is authoritative for removed-screenshot detection.", + "_note": "Baselines live in R2, content-addressed by sha256 — the local baseline-screenshots/ tree is a cache (`npm run screenshots:fetch`). Regenerated by `npm run screenshots:promote`; never edit hashes by hand. The name list is authoritative for removed-screenshot detection.", + "version": 2, + "storage": { + "bucket": "pcbjam-ci-screenshots", + "keyPrefix": "sha256/" + }, "screenshots": [ { "name": "01-loading.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a8908f64d24597fc9af19df4bff8d91aac0b6a584a546698e1af73e9990b0c3d", + "bytes": 6017, + "width": 1280, + "height": 720 }, { "name": "03-after-load.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ad71660243c16719d9a35c79e6393896f12fd8481b386fffec690238a06b1c7d", + "bytes": 28969, + "width": 1280, + "height": 720 }, { "name": "04-controls-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "47edc72ce3c4a919f68a7a874c0b98928991cf4065d33f8f2ae235601337d80d", + "bytes": 38561, + "width": 1280, + "height": 720 }, { "name": "05-text-input-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "131465acd65d48a7f848b7ee7e43b2afd9c140ea521e52257a3e52e0b94a3856", + "bytes": 32894, + "width": 1280, + "height": 720 }, { "name": "06-text-input-typed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fd1b96aabc2e65fd832221b59b1af309aefd23ae7ad4fd34a649c6c4ec6c5d73", + "bytes": 35416, + "width": 1280, + "height": 720 }, { "name": "07-drawing-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "44287d1340094654bd1d7c643edf0b90e709923d15b5cd18c5898647ee286519", + "bytes": 37636, + "width": 1280, + "height": 720 }, { "name": "08-drawing-done.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "36dd1ec39ae8a1d04ef3db7be866d1f1d190c1749af2e32e73caa0473be0fb54", + "bytes": 37547, + "width": 1280, + "height": 720 }, { "name": "09-lists-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "42be94987a02de93737ac151b787448e051332a9c8bb47ace48346a6d7e6a0fb", + "bytes": 42424, + "width": 1280, + "height": 720 }, { "name": "10-lists-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "42be94987a02de93737ac151b787448e051332a9c8bb47ace48346a6d7e6a0fb", + "bytes": 42424, + "width": 1280, + "height": 720 }, { "name": "10b-choice-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9086cf1da7128b832d68c2a2108264de44b74d7b85e79baa855f647c49a9ddfe", + "bytes": 42806, + "width": 1280, + "height": 720 }, { "name": "11-file-menu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7bc0bae8efd36bb3b20ee652adf1e8c851df67b3d7a695da64c8f9b8b3135dd6", + "bytes": 42434, + "width": 1280, + "height": 720 }, { "name": "12-help-menu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9086cf1da7128b832d68c2a2108264de44b74d7b85e79baa855f647c49a9ddfe", + "bytes": 42806, + "width": 1280, + "height": 720 }, { "name": "13-final.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "464f2025a79276fd74bbaf450f8b5f81ae00400d901f3940f2db232acbb33d08", + "bytes": 43092, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-00-board-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2bb785970e78ac20dafe353a4c628161d6406f517045f9e7674bed75a466dca8", + "bytes": 252106, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-models-pic_programmer-render.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e4e9a46c2a1f0360e9d36bccfdd4fe68550fa5673ce0012ed05c613df7a20d9f", + "bytes": 72189, + "width": 1084, + "height": 623 }, { "name": "3d-viewer-models-pic_programmer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "251d1161cd3db748047df90c2bb434e91eb66cd68765183af35d7111b5a4ce36", + "bytes": 115779, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-pic_programmer-render.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c99b4d6daf7f030d7d87ef004b3e19f13c2b52aaa1f1d32ddfe91e73915f0766", + "bytes": 73632, + "width": 1084, + "height": 623 }, { "name": "3d-viewer-pic_programmer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7609604bac2b08f19bbba6f0ac162a17f537acb1c550eac04fa8d55210d15045", + "bytes": 115635, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-titlebar.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f472573ddb17ec190d80e7e13eb07e052faed7ef2c665ac2c13832c71795d810", + "bytes": 115497, + "width": 1280, + "height": 720 }, { "name": "appearance-00-layers.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "appearance-01-objects.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "64fc1685bba9b1c987fef78871498b3206ed709bb8a1991bc2c7a8576faf100b", + "bytes": 104485, + "width": 1280, + "height": 720 }, { "name": "appearance-02-nets.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6867a91a6637a865457a6b370761792ac7c53267ffc6f048be5579ab43e7c66f", + "bytes": 84489, + "width": 1280, + "height": 720 }, { "name": "appearance-03-layers-again.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "601393abb3624741be75e36723abcd55fdd752767009bed2e278a6a294149f5e", + "bytes": 105568, + "width": 1280, + "height": 720 }, { "name": "appearance-10-layers-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6e6740f8b9a7cd6de6f4827c79b4b6d23d7325cf11a7d28dbd7b53e14d84824", + "bytes": 105299, + "width": 1280, + "height": 720 }, { "name": "appearance-11-layers-scrolled-back.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "appearance-20-objects-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "77848309996306c017c4bd727e4d565912f2a41d71c4423e2f58560789959983", + "bytes": 108841, + "width": 1280, + "height": 720 }, { "name": "aui-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dafef7fbc0cdcd31bdc386e9128856b3cd57bf526870137f2dca7666cfbd4b30", + "bytes": 28703, + "width": 1280, + "height": 720 }, { "name": "aui-02-panels.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dafef7fbc0cdcd31bdc386e9128856b3cd57bf526870137f2dca7666cfbd4b30", + "bytes": 28703, + "width": 1280, + "height": 720 }, { "name": "aui-03-close-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dafef7fbc0cdcd31bdc386e9128856b3cd57bf526870137f2dca7666cfbd4b30", + "bytes": 28703, + "width": 1280, + "height": 720 }, { "name": "aui-04-dragged.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0f08df98b9a49f9015f69db017642a8805b4fc095848a4f5e97e92bce033441f", + "bytes": 28711, + "width": 1280, + "height": 720 }, { "name": "aui-05-multi-panel.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "685f9930941f2db9ddf75c2ab0c93199196754cdc7c6efd3d8ef7c69e9720c56", + "bytes": 28837, + "width": 1280, + "height": 720 }, { "name": "aui-resize-01-hover.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dafef7fbc0cdcd31bdc386e9128856b3cd57bf526870137f2dca7666cfbd4b30", + "bytes": 28703, + "width": 1280, + "height": 720 }, { "name": "aui-resize-02-mid-drag-live.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1f440434987e994552bb9280b2c6e9a17ac9ed20a6e46873751bcdf56d331e13", + "bytes": 28750, + "width": 1280, + "height": 720 }, { "name": "aui-resize-03-mid-drag.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "972aaa93464b1772438cc8640f02ad113c4fb90cc500d6cba1684974614bd093", + "bytes": 28841, + "width": 1280, + "height": 720 }, { "name": "aui-resize-04-after.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8650595db7868c5544dfa2434bf845c0188b935fa014527a00a44dace268124b", + "bytes": 28843, + "width": 1280, + "height": 720 }, { "name": "auinotebook-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "80c2bc70925f46be1630c490a1a3e3c735d4809aec420909f5a058510313b605", + "bytes": 44737, + "width": 1280, + "height": 720 }, { "name": "auinotebook-02-tab-switch.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0040913c308ec96ba64433a7d16493155852a2c019eee50e8b690c65d547b89e", + "bytes": 45173, + "width": 1280, + "height": 720 }, { "name": "auinotebook-03-add-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "5f1cdc8401251589570794310ef88065a88144a0be729479faf93e1c576affbd", + "bytes": 38664, + "width": 1280, + "height": 720 }, { "name": "auinotebook-04-remove-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "114b86c5d55c04170dd8ff2de64f082099cc166f49984366e055b3d53dc4a51d", + "bytes": 46391, + "width": 1280, + "height": 720 }, { "name": "auinotebook-05-tab-style.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ad5809808d5ecbea4fc86f1049523ce55eb84f547283d65fc826b4d90b384c50", + "bytes": 46574, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fdd47d8f19db4a3ef9ebddeb054be406dd6c24203cf78a02e67e4318c031be0e", + "bytes": 35720, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-02-toolbar-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "aac4d3e9e7d08f47c47fd9bc3ce08a65a32d023b1e7d4f984a6507345da4ab43", + "bytes": 38468, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-03-toggle.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "72e2e587c4bcd525ac3bb4727e1f729187ef156c346e0d24190ac5dfd8cf5620", + "bytes": 37136, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-04-multi-toggle.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6a09c1aa935d996fc3ee111f228274238cfaf84bb2d1cc19b528f445d128c4a8", + "bytes": 38601, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-05-enable-toggle.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0d985c3b70c3444e2374d6ef0152ba93f4b297933b8600153bc20db4bdb69129", + "bytes": 37269, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-06-shapes.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ef497f0b9a1c998d6f9eecfdc1ac9e7c37ed88d66e2f31f17ce5e4c31c582866", + "bytes": 40257, + "width": 1280, + "height": 720 }, { "name": "bitmapbuttons-07-artprovider.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "914163b441cdf861b82c41416ea5936d88816736ae00f4f33b0bd49438e92107", + "bytes": 38059, + "width": 1280, + "height": 720 }, { "name": "bitmask.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b377296d2ed20c6f7bf9959a9d5105bfed8b0b84822934c80039ea37178810e8", + "bytes": 52974, + "width": 1280, + "height": 720 }, { "name": "calculator-before-switch.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "aa488ec1f9167980667f9d8a05b9bc52f972ae7585a3c724cd1c57177e8012d5", + "bytes": 68846, + "width": 1280, + "height": 720 }, { "name": "calculator-color-code.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "195b98722464d71e28edb528a8645c8cd2a3f74932c44b9d50f332f75d6e8803", + "bytes": 71587, + "width": 1280, + "height": 720 }, { "name": "calculator-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "aa488ec1f9167980667f9d8a05b9bc52f972ae7585a3c724cd1c57177e8012d5", + "bytes": 68846, + "width": 1280, + "height": 720 }, { "name": "calendar-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "96dcfca53f8a31717ecdf2701d6d6f4442b56d8d15a536a47e158f5d11ba736b", + "bytes": 41850, + "width": 1280, + "height": 720 }, { "name": "calendar-02-select-date.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "daccdc5e2994d4f5774efc96a232d30328c916ccd73e6fe08121f3165fd4d5a9", + "bytes": 45185, + "width": 1280, + "height": 720 }, { "name": "calendar-03-next-month.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c9ac7a97caa2fca1b51f61198fffb025a932e557a4fab49674d3b309418fe383", + "bytes": 44001, + "width": 1280, + "height": 720 }, { "name": "calendar-04-prev-month.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ec11f6fad364e011abad25e8d922864929624586b919227a88e0c796bb6344a8", + "bytes": 43534, + "width": 1280, + "height": 720 }, { "name": "calendar-05-today.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8c5b486bb401a293925aeb46d7abe3c829fc5bd008673154df245501ff0a289f", + "bytes": 45149, + "width": 1280, + "height": 720 }, { "name": "clipboard-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3aa56046961871848dc51c8516ea67a6d3e2159449bbcdc9de55f42dcb70ddec", + "bytes": 31734, + "width": 1280, + "height": 720 }, { "name": "clipboard-02-copy-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fd2491c104397c5055ec216bd3023c6ad27389fcc8ce8ba870a6f838e10d86bb", + "bytes": 34601, + "width": 1280, + "height": 720 }, { "name": "clipboard-03-paste-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bd31e04494bf4bbc9b788fb88f74e2694e42138740b07e5b0a3a5563d3ac8987", + "bytes": 40429, + "width": 1280, + "height": 720 }, { "name": "clipboard-04-check-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d4904392e79d3b840a403a00ea01dea433be8f2542f03d588300c0e006d5af55", + "bytes": 39186, + "width": 1280, + "height": 720 }, { "name": "clipboard-05-clear-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "304576cbdff87140d27e2c796e853cf7646603d45fc975e2a68ff0b7210e1f4f", + "bytes": 39691, + "width": 1280, + "height": 720 }, { "name": "clipboard-06-full-flow.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2ad6763715076996901156240a946b864e14ca3356ed22bb27bea7974b152507", + "bytes": 49183, + "width": 1280, + "height": 720 }, { "name": "collapse-relayout-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ca5091fa4579e6272076ae18085b85c580cabfc0d0b51b2b3ca48a6f3f367f9d", + "bytes": 23744, + "width": 1280, + "height": 720 }, { "name": "collapse-relayout-02-expanded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e5a5330335a2be50a893aa0192d9d9f2390d99c1c74d1a51657fb1699f5f8a92", + "bytes": 28580, + "width": 1280, + "height": 720 }, { "name": "collapsible-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "782ab189948b2da5471c27776476f8bd3a6421908ee0831a301df81db5ff3442", + "bytes": 38001, + "width": 1280, + "height": 720 }, { "name": "collapsible-02-panes.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "782ab189948b2da5471c27776476f8bd3a6421908ee0831a301df81db5ff3442", + "bytes": 38001, + "width": 1280, + "height": 720 }, { "name": "collapsible-03-expanded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "782ab189948b2da5471c27776476f8bd3a6421908ee0831a301df81db5ff3442", + "bytes": 38001, + "width": 1280, + "height": 720 }, { "name": "collapsible-04-expand-all.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "da18f9825f03886035a67746a73e777859bf05f02e868c44c07866f2b8419f02", + "bytes": 49651, + "width": 1280, + "height": 720 }, { "name": "collapsible-05-collapse-all.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "60441feca9bdd64daf2f4b459579d171dd36301222a2a138b00dd9abfdd1e039", + "bytes": 32486, + "width": 1280, + "height": 720 }, { "name": "contextmenu-01-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "117fab7062f34b707c512caa0d6a8cbf70b28f5c29466fbe688be748c1761ce5", + "bytes": 15382, + "width": 1280, + "height": 720 }, { "name": "coroutine-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8ca29fadc686ce62fdc035f0968b185103cd983f516eadb4e5eb375e37ed7586", + "bytes": 125122, + "width": 1280, + "height": 720 }, { "name": "coroutine-02-summary.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8ca29fadc686ce62fdc035f0968b185103cd983f516eadb4e5eb375e37ed7586", + "bytes": 125122, + "width": 1280, + "height": 720 }, { "name": "coroutine-nested-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7421a1568c9ff5c51df6d138b4de8e582ad8616bc8ae8fef9ea6ed61955718c2", + "bytes": 92012, + "width": 1280, + "height": 720 }, { "name": "coroutine-nested-02-summary.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7421a1568c9ff5c51df6d138b4de8e582ad8616bc8ae8fef9ea6ed61955718c2", + "bytes": 92012, + "width": 1280, + "height": 720 }, { "name": "dataview-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6bbe192c7942fac1729ded46107042989726fefbb2ec4138c4d989ff94d2068", + "bytes": 85061, + "width": 1280, + "height": 720 }, { "name": "dataview-02-list-populated.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6bbe192c7942fac1729ded46107042989726fefbb2ec4138c4d989ff94d2068", + "bytes": 85061, + "width": 1280, + "height": 720 }, { "name": "dataview-03-list-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "72f767ae63d9c9cd2b829d283504cbdebc237deaa561ab0823d31da3178d23c8", + "bytes": 87769, + "width": 1280, + "height": 720 }, { "name": "dataview-04-list-add.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e548e05eeca5652dccaa7e0055363c8b9cd607897e0f7e7dcb98d0fd7d97ec1b", + "bytes": 86848, + "width": 1280, + "height": 720 }, { "name": "dataview-05-tree-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "24ffb5c04e9ac045b4dea7919f00ec7f2b58866673c7dcd7e87562964551c83f", + "bytes": 38002, + "width": 1280, + "height": 720 }, { "name": "dataview-06-tree-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3fa3937040259dbd1ff22d4d3598999b4b76d803b4f5a952c13b8e2bebd1140e", + "bytes": 39966, + "width": 1280, + "height": 720 }, { "name": "dataview-07-tree-expanded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1e14be6bf81cfab8738f3ce0a96838d1d1f5797d1bcfc0073ba3028c729e7e4d", + "bytes": 49344, + "width": 1280, + "height": 720 }, { "name": "dataview-08-tree-collapsed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "49dfbe819d6726e9de1c3fae34c2e27604f76ff692f7a47129954c0cf094a171", + "bytes": 37703, + "width": 1280, + "height": 720 }, { "name": "dataview-09-column-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2ada8bb4371279410ff0c6bd57a89f011f4ec13dbff2dce4f0ce6e7f6958b501", + "bytes": 87944, + "width": 1280, + "height": 720 }, { "name": "dataview-10-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ab56605ea4f5262f2e1bd64d994572c990b284664e285ae6d40f7b3627d8bda", + "bytes": 83713, + "width": 1280, + "height": 720 }, { "name": "dataviewvirtual-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3d34dd84b50c46676ee15890f209c78b818e6730e9bd6c6aa7a407a8827979cc", + "bytes": 127648, + "width": 1280, + "height": 720 }, { "name": "dataviewvirtual-02-large-dataset.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3d34dd84b50c46676ee15890f209c78b818e6730e9bd6c6aa7a407a8827979cc", + "bytes": 127648, + "width": 1280, + "height": 720 }, { "name": "dataviewvirtual-03-scroll.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4f0d859f58c27fbbb17f565a4f87c884c2b23b342e7616feac39e9b92d922fcb", + "bytes": 138109, + "width": 1280, + "height": 720 }, { "name": "dataviewvirtual-04-selection.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3d34dd84b50c46676ee15890f209c78b818e6730e9bd6c6aa7a407a8827979cc", + "bytes": 127648, + "width": 1280, + "height": 720 }, { "name": "dataviewvirtual-05-zone-manager.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3d34dd84b50c46676ee15890f209c78b818e6730e9bd6c6aa7a407a8827979cc", + "bytes": 127648, + "width": 1280, + "height": 720 }, { "name": "dialog-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c3a47f81680860f795523c85a00b44406df2c3f84e8cb5124465121795165d18", + "bytes": 29930, + "width": 1280, + "height": 720 }, { "name": "dialog-02-info-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "68945796e6c0d6d6fcd78230fa27216ea7822c9dd5956a489d7fba0603387941", + "bytes": 43319, + "width": 1280, + "height": 1146 }, { "name": "dialog-03-yesno-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "359954015822573411ed52b4e2abec5c8cbd2815cc64c231e9c0019509a9a97c", + "bytes": 45221, + "width": 1280, + "height": 1146 }, { "name": "dialog-04-error-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0819956debc59d567dcdc2930b32de7a524754db667f7ed81cd3b3ed52d8b25e", + "bytes": 42198, + "width": 1280, + "height": 1146 }, { "name": "dialog-05-custom-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a285bbe8bd3c1dbd20e3e6b013508320c954835c67b04d62362321323724f615", + "bytes": 43477, + "width": 1280, + "height": 922 }, { "name": "dialogs-00-initial.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3419d71893837b3c09157778b442bd8d4404757b26b44f904e1cfdd6284fcfb3", + "bytes": 28996, + "width": 1280, + "height": 720 }, { "name": "dialogs-01-tab-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d7cae66608c0e8d8e4445c6f46e17cedf45b58b3e0281d1a2c6a54e768d0510d", + "bytes": 42447, + "width": 1280, + "height": 720 }, { "name": "dialogs-custom-closed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2bdb002868246fe38e480ca4fa5de8c887b10083cba919c8c4106803f444d56d", + "bytes": 58146, + "width": 1280, + "height": 922 }, { "name": "dialogs-custom-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "12a4b20144f153d1afae6aaf32663cc0780f2989654725e3090df8534b57871f", + "bytes": 58166, + "width": 1280, + "height": 922 }, { "name": "dialogs-full-flow.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b58a0ca7954518ba0f7efb20d80b1f668bdde32b0660b5298db98a20bc666cb8", + "bytes": 67850, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-error-closed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "25e8da8db33e67e7023b10b33dfc3b0fde8c1a416f69b752834e2879e2840e12", + "bytes": 57203, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-error-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "823653e5978443f298c60ade95a53e2efcd34822fcf0057f4ced86ddcb40724f", + "bytes": 57403, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-info-closed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "036bcd75c028683c240fec3494100dc802914e38465dc2a2b615615488a65d2e", + "bytes": 59345, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-info-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e8c67b79d7dbf32df7f1a8cbe725a3d77854549e8d448a65b5d09b09865b4bb5", + "bytes": 59744, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-yesno-closed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "095f80354dd993d73e50a8ccd1c0bb33a75d508c666a459011feaa1ed26b4fa4", + "bytes": 65092, + "width": 1280, + "height": 1146 }, { "name": "dialogs-msgbox-yesno-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bb0a05732941b1cbab81d91c1e3b3edb8b139c5c253c007ba477d24d53ac1d3c", + "bytes": 59734, + "width": 1280, + "height": 1146 }, { "name": "dialogs-timer-initial.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d6e308b7403234dad04e106773a1712862d03858d0348a83c054acf360aee910", + "bytes": 42467, + "width": 1280, + "height": 720 }, { "name": "dialogs-timer-multiple.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "74ee6563bdabb56539cbd09e765e3f478ec90fc559f522261b84b665202d0cef", + "bytes": 49495, + "width": 1280, + "height": 720 }, { "name": "dialogs-timer-running.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "12b1d68aefaf452f806ea155f4f26ff46879a74d048dee748e04c9449ca20145", + "bytes": 48314, + "width": 1280, + "height": 720 }, { "name": "dialogs-timer-started.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "3a5190a2eb2fd6c4fd327c291442cb5e5b874440613fb658cb586d0b45c205c5", + "bytes": 45885, + "width": 1280, + "height": 720 }, { "name": "dialogs-timer-stopped.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1846666a73dd41997fd9e39fea78cfe4348a6ddc695b14eb8793905cc78cb72e", + "bytes": 47822, + "width": 1280, + "height": 720 }, { "name": "dnd-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-02-handlers.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-03-dragenter.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-04-dragleave.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-05-drop.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-06-file-written.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-07-event-fired.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-08-multiple-files.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "dnd-09-with-file.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "037677110c9a53f4d4fac4dcad540e5a54281bae9ccd1f32db89863cce4b9e1e", + "bytes": 35997, + "width": 1280, + "height": 720 }, { "name": "earlysize-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "14a5404eea7c6d14bcc59d1b54e0e3f981a71391cbcf6571906da0a4a71eda8a", + "bytes": 27335, + "width": 1280, + "height": 720 }, { "name": "earlysize-02-result.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "14a5404eea7c6d14bcc59d1b54e0e3f981a71391cbcf6571906da0a4a71eda8a", + "bytes": 27335, + "width": 1280, + "height": 720 }, { "name": "eefpsel-01-boot.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c931c622061459244e2acb0e37f53f3048bb992d289cc5024ba5ecb372c1783c", + "bytes": 62646, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-00-small.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ef9a510f84b97461009ed758cce2e38ac5ce693f01978a21f6c813f4aeb52969", + "bytes": 57665, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-01-full.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "16867e67d2865c493b875b8f66016b34f4c37387c13f2e1c54a7ca786f0c651e", + "bytes": 57918, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-02-45.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b1b8124360bf41aa19a40d37a46d2db4d84a7473b9a0f6b4ca6b38689ccddda7", + "bytes": 61814, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-03-small-again.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ef9a510f84b97461009ed758cce2e38ac5ce693f01978a21f6c813f4aeb52969", + "bytes": 57665, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-00-before-tool-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c075b77806ba67cb3150244496c204232ce257bf786022f4ab191e7456cf8f15", + "bytes": 55977, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-01-after-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c8ef0c1ebb54a7cba05bde0bbbf402fc8fc58d5a9bda49514ad720035c65e2e7", + "bytes": 57675, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-02-after-drawing.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0c068e0a5b94c203f4aed67e446362ccb33de386c78d461073b67a2e614eb6ff", + "bytes": 58245, + "width": 1280, + "height": 720 }, { "name": "eeschema-load-rendered.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "be06d89a4301af681734d06bea4236d8b2b494f5fbf17da5f5b48d8fa3b6f976", + "bytes": 61762, + "width": 1280, + "height": 720 }, { "name": "eeschema-loaded-css.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c075b77806ba67cb3150244496c204232ce257bf786022f4ab191e7456cf8f15", + "bytes": 55977, + "width": 1280, + "height": 720 }, { "name": "eeschema-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c075b77806ba67cb3150244496c204232ce257bf786022f4ab191e7456cf8f15", + "bytes": 55977, + "width": 1280, + "height": 720 }, { "name": "eeschema-sim-frame.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f8716d440922de98d596fc02fe636c6c74cac5e39754450a44394dcb205f532f", + "bytes": 87718, + "width": 1280, + "height": 720 }, { "name": "eeschema-sim-plot.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fbe17f157cf27b5057df83dc7570deff00b4f25ce732cb8d495ae586556cbd3f", + "bytes": 95282, + "width": 1280, + "height": 720 }, { "name": "eeschema-url-regex.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6f5432b5656741d9386d13aafd949bf15735e038b6ad9812dfaaccd15d0f5632", + "bytes": 61974, + "width": 1280, + "height": 720 }, { "name": "filedialog-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "404f80e779eb2909dad48a942caa7b4d8a9a41d8f3d0338029808b8887fe85dc", + "bytes": 22658, + "width": 1280, + "height": 720 }, { "name": "filedialog-02-open-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d6aeebf7d70df88b4ac04c4688746d500533d89feb87c524853bb8c5f5c74e61", + "bytes": 37476, + "width": 1280, + "height": 1225 }, { "name": "filedialog-03-save-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9a3a781de20175409e8d5605405ccdc77eede2a106f333b90b6c0d1e81fe6c74", + "bytes": 38122, + "width": 1280, + "height": 1214 }, { "name": "filedialog-04-multiple-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "884a0277ec767da898e74e9548da1a42dc51e726da95c674a1e8e6c0a653e4ed", + "bytes": 39225, + "width": 1280, + "height": 1225 }, { "name": "filedialog-05-all-buttons.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4f3068d49795c8f62cc30a4b975829b6be6df37ec375255f43c706280d76f3dd", + "bytes": 45549, + "width": 1280, + "height": 1225 }, { "name": "filedlg-folder-nav.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d9703625bd9b4b0b9def909aaaef478ae567082a1384a138800fc9f3a3f75bf3", + "bytes": 37628, + "width": 1280, + "height": 1225 }, { "name": "fontenum.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c5dcc2b114f0bd003d6cd5e9a6d9eaef8413cc2e2f0fe2a02345a0a731af0c02", + "bytes": 134301, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-eeschema.html.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c075b77806ba67cb3150244496c204232ce257bf786022f4ab191e7456cf8f15", + "bytes": 55977, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-footprint_editor.html.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b5400a538dac19a92d8b32f9400ff47a23cd756cab402fc3bdb2d01057962b7c", + "bytes": 94521, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-pcbnew.html.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-symbol_editor.html.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "91bd83a6ce37352cbfb6e63e84cdb05e308ee2b51ed81654210127a7400778df", + "bytes": 42706, + "width": 1280, + "height": 720 }, { "name": "gerbview-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "047f32ad58c6b2e6f1d2c31b74c0e9594e984cf0e3b8be223d550aa35d5768df", + "bytes": 38327, + "width": 1280, + "height": 720 }, { "name": "gerbview-02-metrics.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "047f32ad58c6b2e6f1d2c31b74c0e9594e984cf0e3b8be223d550aa35d5768df", + "bytes": 38327, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-00-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4695bb5d42ddb45a95c674654ced552a078e2a5f18151f9bbfa3193c50972f37", + "bytes": 85943, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-01-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "771a22876cc5edc0e1478b47cbf76d0775235e835cca18082fc56fa78489508b", + "bytes": 105906, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-02-reopened.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0802e16507d749f079214ebd3fd12b4eb19e27b1e5853f8b2f2e4a65d303a799", + "bytes": 105905, + "width": 1280, + "height": 720 }, { "name": "grid-tab-final.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dbb0f95a668c5ccd98c4b60cc89e0e3e6c0c5fbe1c436083a469fcdc98fa4bc8", + "bytes": 38657, + "width": 1280, + "height": 720 }, { "name": "gridedit-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0389f476e026a8b617706d73abf87bf0ce2692284823668f45abd68cc7370d54", + "bytes": 58745, + "width": 1280, + "height": 720 }, { "name": "gridedit-02-select-cell.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "71925b1c26df3f87075b241ecb85d37a6cafaf46a2d825ae13ded35183754908", + "bytes": 60189, + "width": 1280, + "height": 720 }, { "name": "gridedit-03-edit-cell.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "eef0d57565f49a0a019762cc51a833923446059cc969dc3d4227b880ce143a77", + "bytes": 61936, + "width": 1280, + "height": 720 }, { "name": "gridedit-04-add-row.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "63b6e7d9c39ae26dce04e52c2e9e1d7e852e36a117f74addb952da5a68c84904", + "bytes": 61290, + "width": 1280, + "height": 720 }, { "name": "gridedit-05-delete-row.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "453abe7e570211a532b677cdca1b8d87fe0830d0c499cba783106978a4721f41", + "bytes": 59252, + "width": 1280, + "height": 720 }, { "name": "gridrenderers-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4cafabc637f0f853a87b6123a8bbb80be888361224d2f928b6b47a4887de106e", + "bytes": 39369, + "width": 1280, + "height": 720 }, { "name": "gridrenderers-02-color-cells.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4cafabc637f0f853a87b6123a8bbb80be888361224d2f928b6b47a4887de106e", + "bytes": 39369, + "width": 1280, + "height": 720 }, { "name": "gridrenderers-03-icon-text.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b4583f75ca74c74d25494f17aa6dc944aeafa775cab82855107ca4dbfb7fe79d", + "bytes": 70015, + "width": 1280, + "height": 720 }, { "name": "gridrenderers-04-striped.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8e1263f236dcf036a287749ea002a132d8614d04d1e1fd51d161c6a9d16f98a6", + "bytes": 45026, + "width": 1280, + "height": 720 }, { "name": "gridrenderers-05-checkbox-toggle.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "944e00a7ad464543de878c42bd3a441df872644d78c90d0e4c6aabfcb38a6904", + "bytes": 45087, + "width": 1280, + "height": 720 }, { "name": "htmlwin-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "16a24e90cef87b8cb2c4804170667c3afcac8164e3bd17372a41fc9c88d47896", + "bytes": 49710, + "width": 1280, + "height": 720 }, { "name": "htmlwin-02-basic-content.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "16a24e90cef87b8cb2c4804170667c3afcac8164e3bd17372a41fc9c88d47896", + "bytes": 49710, + "width": 1280, + "height": 720 }, { "name": "htmlwin-03-tables.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "14985c6e77bdddb538624c182d88a7a93bba2b60f9991c35abce3b3ceb1ed824", + "bytes": 55093, + "width": 1280, + "height": 720 }, { "name": "htmlwin-04-long-content.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ee6a3c4e6776845fa44c3b64772976605e6b599813b4b6d29f76070251204799", + "bytes": 73824, + "width": 1280, + "height": 720 }, { "name": "htmlwin-05-kicad-about.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "05419a02cdb3465f44ef647f74ea5a02282d50ac9de52d570bd1d65e685087f1", + "bytes": 53843, + "width": 1280, + "height": 720 }, { "name": "htmlwin-06-link-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "cf12518102023a904fe24ec1b922145ff0b7d72755f55052ed8bd61be8ae7a48", + "bytes": 52005, + "width": 1280, + "height": 720 }, { "name": "htmlwin-07-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e5eb4fc45d421fcee4eea0a9f96f98e3d8ba9deb4365ce3abc61ee5541f1fc58", + "bytes": 80340, + "width": 1280, + "height": 720 }, { "name": "htmlwin-08a-basic.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d7faf13f5a0e3d155cde57eef47770a8b0de2ede91e91f2f63578a408c7ea50f", + "bytes": 52119, + "width": 1280, + "height": 720 }, { "name": "htmlwin-08b-tables.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "498dd1dcc41e83df06badb9b778d5c3bb9e6427a2cb0a6f30a7b299bbf7b8787", + "bytes": 56926, + "width": 1280, + "height": 720 }, { "name": "htmlwin-08c-about.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9b457fb87490c2b1268b0cd83139c6a9a718d7e55f49bf756d191295e2b657f7", + "bytes": 57456, + "width": 1280, + "height": 720 }, { "name": "import-settings-modal-stack.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9d8c0242c934e25ddbc8b07836a972050960efb0626d655c40b02d6f292f1e0a", + "bytes": 148096, + "width": 1280, + "height": 720 }, { "name": "infobar-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "442b045e41d3a77de38281f3ea58e89514344384bc0191c87e7bbb4acc01f095", + "bytes": 63306, + "width": 1280, + "height": 720 }, { "name": "infobar-02-info.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "66fba002067ca9fe3d8516ddac9826a292cdba05776d7be13a48dd945d8463dc", + "bytes": 70159, + "width": 1280, + "height": 720 }, { "name": "infobar-03-warning.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "862874d6c3794fc996dcca54ee55692b42295d5c58c15f423bf8cad820cd0764", + "bytes": 69899, + "width": 1280, + "height": 720 }, { "name": "infobar-04-error.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8be3eda782608abb957f55398fdbf432bf3231d92bbf96333b2f736768e9a850", + "bytes": 69037, + "width": 1280, + "height": 720 }, { "name": "infobar-05-dismiss.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8985031a75c660b899a4661fbdb68cfd8a4ee9076dfeb8ba0f985e4f47f82946", + "bytes": 66274, + "width": 1280, + "height": 720 }, { "name": "layout-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6d2e57e0bceba6d43204bd8a9ae2f34d3def0628d30b59cd06c48201cdacbc9", + "bytes": 51899, + "width": 1280, + "height": 720 }, { "name": "layout-02-splitter.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6d2e57e0bceba6d43204bd8a9ae2f34d3def0628d30b59cd06c48201cdacbc9", + "bytes": 51899, + "width": 1280, + "height": 720 }, { "name": "layout-03-sash-dragged.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b1f71756a0a75a43967ab12dc3f9ce4b502916a84c2bb3a797a0411268277613", + "bytes": 54648, + "width": 1280, + "height": 720 }, { "name": "layout-04-scrolled-left.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6d2e57e0bceba6d43204bd8a9ae2f34d3def0628d30b59cd06c48201cdacbc9", + "bytes": 51899, + "width": 1280, + "height": 720 }, { "name": "layout-05-scrolled-right.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b6d2e57e0bceba6d43204bd8a9ae2f34d3def0628d30b59cd06c48201cdacbc9", + "bytes": 51899, + "width": 1280, + "height": 720 }, { "name": "layout-06-combined.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b1f71756a0a75a43967ab12dc3f9ce4b502916a84c2bb3a797a0411268277613", + "bytes": 54648, + "width": 1280, + "height": 720 }, { "name": "listctrl-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "28f90168cbeb3f2b1edce35904cdfb208b60244a099d51834b41b48558e12b35", + "bytes": 80345, + "width": 1280, + "height": 720 }, { "name": "listctrl-02-virtual.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "28f90168cbeb3f2b1edce35904cdfb208b60244a099d51834b41b48558e12b35", + "bytes": 80345, + "width": 1280, + "height": 720 }, { "name": "listctrl-03-columns.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "28f90168cbeb3f2b1edce35904cdfb208b60244a099d51834b41b48558e12b35", + "bytes": 80345, + "width": 1280, + "height": 720 }, { "name": "listctrl-04-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "aba59fe63ccd3a908e9a49dbdf43b00424ad707378f4368135cb54d74a02da75", + "bytes": 80788, + "width": 1280, + "height": 720 }, { "name": "listctrl-05-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dc540b58d96d72ddb97728c4121de566b3e35c433efce74c003b244d8dd6405e", + "bytes": 85449, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave-00-pcbnew-ready.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave-01-dialog-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "84df0436dd6a008fe2d9f700d264d2e268ec3185803b5aefff22ee491af3a9f0", + "bytes": 121801, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c77a82e6fc000bb7d1f875470bae9614ee58ed71d808eb261c6525968b19cc99", + "bytes": 110274, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer-00-pcbnew-ready.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer-01-dialog-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d20cdd3276a509161f0e5a229be73eff8d16ee9a3e4243e6f8a1a469ce87fc5b", + "bytes": 122058, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2bb785970e78ac20dafe353a4c628161d6406f517045f9e7674bed75a466dca8", + "bytes": 252106, + "width": 1280, + "height": 720 }, { "name": "logerror-01-initial.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c208c264da509e122308af765b3955a458846db8c44f93409d7666c04bb12706", + "bytes": 49677, + "width": 1280, + "height": 720 }, { "name": "logerror-02-before-error.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c208c264da509e122308af765b3955a458846db8c44f93409d7666c04bb12706", + "bytes": 49677, + "width": 1280, + "height": 720 }, { "name": "logerror-03-single-error-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "df82e13e84a3275c9ff981883acdda7400d9b14703e95ff4a2b7d0303b18bbb5", + "bytes": 69537, + "width": 1280, + "height": 1136 }, { "name": "logerror-04-multiple-errors-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "89b287c776478cdc697ab5d8a20e344c6d12ebfde1e1d18e9407b35dda0fdfd6", + "bytes": 70165, + "width": 1280, + "height": 1129 }, { "name": "logerror-05-mixed-levels.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "22980a15cf3b1dfff4833ec9603d2b0a95fb3a686aaab8ef00e937f70272ce0c", + "bytes": 65777, + "width": 1280, + "height": 1129 }, { "name": "maximize-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "192b41571b6c825396049972e8aedc66c7bbe14f2a4814804d6df5e95c98f20e", + "bytes": 30329, + "width": 1280, + "height": 720 }, { "name": "maximize-02-fullscreen.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "192b41571b6c825396049972e8aedc66c7bbe14f2a4814804d6df5e95c98f20e", + "bytes": 30329, + "width": 1280, + "height": 720 }, { "name": "maximize-03-canvas.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "192b41571b6c825396049972e8aedc66c7bbe14f2a4814804d6df5e95c98f20e", + "bytes": 30329, + "width": 1280, + "height": 720 }, { "name": "menu-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7dd194e7dd380f85f741ef3b6c501dddf661cc1f71e1cbf62aeb6dba8b41f569", + "bytes": 24820, + "width": 1280, + "height": 720 }, { "name": "menu-02-menubar.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7dd194e7dd380f85f741ef3b6c501dddf661cc1f71e1cbf62aeb6dba8b41f569", + "bytes": 24820, + "width": 1280, + "height": 720 }, { "name": "menu-03-file-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "da3fce7616932be82861a98405922932ef8883c8c134de02ba2f5209514bf64e", + "bytes": 23929, + "width": 1280, + "height": 720 }, { "name": "menu-04-edit-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f72a90ef8ddf7ce94ffb5b5e6efd7730ab4e05667d0a029b1d444d5738a551f7", + "bytes": 25762, + "width": 1280, + "height": 720 }, { "name": "menu-05-all-menus.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ca1b688681e3c5ddfb776a851c5d7c9272857c452feace02cd4b77b902758a45", + "bytes": 27013, + "width": 1280, + "height": 720 }, { "name": "mobile-chrome.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c6975eb91549be5ccd78915472c5f6fdba4471f5f294bae118101fe1a74352de", + "bytes": 26971, + "width": 412, + "height": 839 }, { "name": "mobile-pan-00-base.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "79acfbe68ced93f72e35959dfbc249d9b050282080941cf0e02d063aa1b5e98c", + "bytes": 26887, + "width": 412, + "height": 839 }, { "name": "mobile-pan-01-panned.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "10fe9d61b4cbacda47c8f8f708ce202ac1b7b72293aee86ae2cec6b668969dc2", + "bytes": 24139, + "width": 412, + "height": 839 }, { "name": "mobile-pan-02-restored.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c6975eb91549be5ccd78915472c5f6fdba4471f5f294bae118101fe1a74352de", + "bytes": 26971, + "width": 412, + "height": 839 }, { "name": "mobile-pinch-00-base.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f9d0571f1d3b2c63bfac2e3f8fe90f4bd6afee058712035335f07f301f7c9c0d", + "bytes": 26811, + "width": 412, + "height": 839 }, { "name": "mobile-pinch-01-zoomed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9c5d05f907971d9972df5e089d9df9e389148d1c7ba992073f454be412621ff9", + "bytes": 60693, + "width": 412, + "height": 839 }, { "name": "mobile-pinch-02-restored.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "79acfbe68ced93f72e35959dfbc249d9b050282080941cf0e02d063aa1b5e98c", + "bytes": 26887, + "width": 412, + "height": 839 }, { "name": "mobile-toggle-rehidden.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d5c223408d0dd42cd0c2143f8536af619745e1900eab2bf4cfda2c0338d0df57", + "bytes": 32145, + "width": 412, + "height": 839 }, { "name": "mobile-toggle-shown.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6394e8cf155fd5c08f538efa4eac9f6fb9e67e563a89d934bfedab5bd72f4f94", + "bytes": 121590, + "width": 412, + "height": 839 }, { "name": "modal-01-border.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a285bbe8bd3c1dbd20e3e6b013508320c954835c67b04d62362321323724f615", + "bytes": 43477, + "width": 1280, + "height": 922 }, { "name": "modal-02-before-drag.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7415f2233066c12aefe2cfaa560a281c10c0d3a6f807806095d72ef6402a9e15", + "bytes": 29920, + "width": 1280, + "height": 720 }, { "name": "modal-03-after-drag.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c63dcfc0d7bdfd8b50ac19b4337337b1df22b133401da42b10dc68c68d30a2a3", + "bytes": 39804, + "width": 1280, + "height": 720 }, { "name": "modal-04-before-resize.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7415f2233066c12aefe2cfaa560a281c10c0d3a6f807806095d72ef6402a9e15", + "bytes": 29920, + "width": 1280, + "height": 720 }, { "name": "modal-05-after-resize.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "81f3865dd97c6bad00f06d36d953ed82b0a1eafda9f2ff39bd9007e969a409c2", + "bytes": 25236, + "width": 1280, + "height": 720 }, { "name": "notebook-01-scrolled.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6125701515893123955af70ca3908c1f27ca841009bbb1594a364f2a03f2ec33", + "bytes": 29678, + "width": 1280, + "height": 720 }, { "name": "notebook-02-scrolled-again.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6125701515893123955af70ca3908c1f27ca841009bbb1594a364f2a03f2ec33", + "bytes": 29678, + "width": 1280, + "height": 720 }, { "name": "occ-export-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "484b5ad6969f162c0dc344972b957976b8fcf0974f0dbfd09bd049550414acf6", + "bytes": 195991, + "width": 1280, + "height": 720 }, { "name": "occ-export-done.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e2a72d435d0cc4adfd6a787588961db244d68cd6456d1d3a3ec2d460f2da9599", + "bytes": 188412, + "width": 1280, + "height": 720 }, { "name": "occ-probe-done.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fcf0584e219fce4f830acc7c93fd5c76bf63893b0dbd3c20ad1926c79b75e6c7", + "bytes": 6586, + "width": 1280, + "height": 720 }, { "name": "ownerdrawn-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "659fbe9e53c69209ce50a5463716848cdbfd1b49600574e7be312ec55731a9e3", + "bytes": 40544, + "width": 1280, + "height": 720 }, { "name": "ownerdrawn-02-layer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "659fbe9e53c69209ce50a5463716848cdbfd1b49600574e7be312ec55731a9e3", + "bytes": 40544, + "width": 1280, + "height": 720 }, { "name": "ownerdrawn-03-font.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "659fbe9e53c69209ce50a5463716848cdbfd1b49600574e7be312ec55731a9e3", + "bytes": 40544, + "width": 1280, + "height": 720 }, { "name": "ownerdrawn-04-icon.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "659fbe9e53c69209ce50a5463716848cdbfd1b49600574e7be312ec55731a9e3", + "bytes": 40544, + "width": 1280, + "height": 720 }, { "name": "ownerdrawn-05-log.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "659fbe9e53c69209ce50a5463716848cdbfd1b49600574e7be312ec55731a9e3", + "bytes": 40544, + "width": 1280, + "height": 720 }, { "name": "pcbnew-context-menu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "214e5854b0176c7d0789557bab76b607590a122a9cca5005dcd4f99a05e54193", + "bytes": 112833, + "width": 1280, + "height": 720 }, { "name": "pcbnew-context-submenu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2a1e9e103070b2a764d36cc80a8c06ac7fd5f27f996cc04ebc1f084ffb8ca13b", + "bytes": 125038, + "width": 1280, + "height": 720 }, { "name": "pcbnew-dark-mode-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-00-before-tool-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-01-after-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a233f32bd68aa497c337f5fc53da02c8920fddca6854383156ad962f65477d52", + "bytes": 107573, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-02-after-drawing.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0d45d478dbaeb79e42618a09e9ea3957cba8aa6693037e31e23e2f028c2f5f75", + "bytes": 113101, + "width": 1280, + "height": 720 }, { "name": "pcbnew-loaded-css.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "pcbnew-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "pcbnew-move-00-before.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2ce68756b768af4d1e5e8446f839f9f90ccc458dd3db48919e1efdde0cf66d03", + "bytes": 108150, + "width": 1280, + "height": 720 }, { "name": "pcbnew-move-01-after.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e43612a8ac4c11917b0c8160259d09ec2a5bab640207e70713c3526f3b9e2cec", + "bytes": 111441, + "width": 1280, + "height": 720 }, { "name": "pcbnew-sidebar-scrollbar-dragged.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "c14de3d3ff82a6eace168a4d24081fd71d1ede0b76ae4c8b33b057d41ea23e58", + "bytes": 104311, + "width": 1280, + "height": 720 }, { "name": "pcbnew-sidebar-scrollbar.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "pickers-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "36311c6e048cb7f367b7478f6bb61d8fa83f86be4c087d4884790e4efc21665c", + "bytes": 44419, + "width": 1280, + "height": 720 }, { "name": "pickers-02-colors.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "36311c6e048cb7f367b7478f6bb61d8fa83f86be4c087d4884790e4efc21665c", + "bytes": 44419, + "width": 1280, + "height": 720 }, { "name": "pickers-03-font.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "36311c6e048cb7f367b7478f6bb61d8fa83f86be4c087d4884790e4efc21665c", + "bytes": 44419, + "width": 1280, + "height": 720 }, { "name": "pickers-04-preview.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "36311c6e048cb7f367b7478f6bb61d8fa83f86be4c087d4884790e4efc21665c", + "bytes": 44419, + "width": 1280, + "height": 720 }, { "name": "pl_editor-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "38027e75473ad505f8675fe52f1c7d4e85a42e59b68ba6ea0d93964ed7db6d86", + "bytes": 61645, + "width": 1280, + "height": 720 }, { "name": "pl_editor-02-no-wizard.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "38027e75473ad505f8675fe52f1c7d4e85a42e59b68ba6ea0d93964ed7db6d86", + "bytes": 61645, + "width": 1280, + "height": 720 }, { "name": "pl_editor-03-file-menu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d79ddea66737a04a71e136cfaa8c955c70d22fdc7ef5b208901c546c137f7197", + "bytes": 36383, + "width": 1280, + "height": 720 }, { "name": "pl_editor-04-save-as-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d1a6794ee7d3cd02a1b8fbe4de596f67024824ffe4c12188103da58c34bc1b7", + "bytes": 41910, + "width": 1280, + "height": 720 }, { "name": "pl_editor-04b-after-enter.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d1a6794ee7d3cd02a1b8fbe4de596f67024824ffe4c12188103da58c34bc1b7", + "bytes": 41910, + "width": 1280, + "height": 720 }, { "name": "pl_editor-context-menu.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "41d1ed13f42b76530f319f5cd76550f6a2e6ee20c40200918c30af97f0de5b7d", + "bytes": 40995, + "width": 1280, + "height": 540 }, { "name": "pl_editor-load-rendered.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "949caa8b28d50a54bf23e81b30587aea97e8fb01173110169d69ac86eb9e1931", + "bytes": 33734, + "width": 1280, + "height": 720 }, { "name": "pl_editor-scrollbar-dragged.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9fe5987a042c4c3514512dc9d5490764a9ed9ca51390517d39396da9b92bbdf7", + "bytes": 40589, + "width": 1203, + "height": 460 }, { "name": "pl_editor-scrollbar.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f4b0a4b2f84de265b37c67576d2900e1f18a010855a7439698d22dcfd1928948", + "bytes": 40693, + "width": 1203, + "height": 507 }, { "name": "popup-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "59dd326665bca9781534a591b5a440924a7ce5a73b2e5b2db991840ca49d1044", + "bytes": 39818, + "width": 1280, + "height": 720 }, { "name": "popup-02-status.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "59dd326665bca9781534a591b5a440924a7ce5a73b2e5b2db991840ca49d1044", + "bytes": 39818, + "width": 1280, + "height": 720 }, { "name": "popup-03-palette-dismissed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "17057d10f26dc7aa781f416260a1864c160fe6760459ffd703fe2d4489ff089a", + "bytes": 42654, + "width": 1280, + "height": 720 }, { "name": "popup-03-palette-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d2966206503fed8ee536beb7ac33e8a8119788d30b6db37a5100de1c37c3c929", + "bytes": 40990, + "width": 1280, + "height": 720 }, { "name": "popup-04-color.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "59dd326665bca9781534a591b5a440924a7ce5a73b2e5b2db991840ca49d1044", + "bytes": 39818, + "width": 1280, + "height": 720 }, { "name": "popup-05-positioning.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "59dd326665bca9781534a591b5a440924a7ce5a73b2e5b2db991840ca49d1044", + "bytes": 39818, + "width": 1280, + "height": 720 }, { "name": "popup-06-log.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "59dd326665bca9781534a591b5a440924a7ce5a73b2e5b2db991840ca49d1044", + "bytes": 39818, + "width": 1280, + "height": 720 }, { "name": "print-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bf1d0278802d2cbb940c330a435fcfa7d6c1ad5ebd30d19d2718e190a45c4dcb", + "bytes": 34760, + "width": 1280, + "height": 720 }, { "name": "print-02-preview-panel.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bf1d0278802d2cbb940c330a435fcfa7d6c1ad5ebd30d19d2718e190a45c4dcb", + "bytes": 34760, + "width": 1280, + "height": 720 }, { "name": "print-03-browser-print-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f606ae66475daf3042c9a947b72660c328b6135d2494088a09fe8706ecd23317", + "bytes": 42574, + "width": 1280, + "height": 720 }, { "name": "print-04-preview-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ead933f3b167c8fbcfd2aebbcdb9bfa81b96f81f8617142180ff5c2ab6c8c1c1", + "bytes": 38660, + "width": 1280, + "height": 720 }, { "name": "print-05-page-setup-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "f30638d525e4ca602463d44565d47495417f3803c6794592f190163ce9dc49fd", + "bytes": 37691, + "width": 1280, + "height": 720 }, { "name": "print-06-print-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b9eb6ee63236cef151812cccae79fd8428f016ac2ba39f276f398f9a56b2eb2c", + "bytes": 36796, + "width": 1280, + "height": 720 }, { "name": "print-07-callbacks.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ead933f3b167c8fbcfd2aebbcdb9bfa81b96f81f8617142180ff5c2ab6c8c1c1", + "bytes": 38660, + "width": 1280, + "height": 720 }, { "name": "print-08-all-buttons.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "65af278e5830afc1ce5be1e5f2a3c05bf64e95b9bca41c116512d5bd781d478b", + "bytes": 51497, + "width": 1280, + "height": 720 }, { "name": "printpreview-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "159a59aa3340ccf15f372176d48d69f73c14be5c6026f34e2c67b8c64e9f6f68", + "bytes": 38659, + "width": 1280, + "height": 720 }, { "name": "printpreview-02-preview-area.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "159a59aa3340ccf15f372176d48d69f73c14be5c6026f34e2c67b8c64e9f6f68", + "bytes": 38659, + "width": 1280, + "height": 720 }, { "name": "printpreview-03-preview-frame.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9f7cfd01ed6223bc1753e5b834534a87ee0a98a24d607bb1db5a6ea3cc4e56b8", + "bytes": 61075, + "width": 1280, + "height": 1332 }, { "name": "printpreview-04-page-setup.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b164f84fdcaa6045bd3a3afe7313d9e80037a59aef1ed65dff949fbb0a7309c5", + "bytes": 60795, + "width": 1280, + "height": 1212 }, { "name": "printpreview-05-settings.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "159a59aa3340ccf15f372176d48d69f73c14be5c6026f34e2c67b8c64e9f6f68", + "bytes": 38659, + "width": 1280, + "height": 720 }, { "name": "probe-00-after-wizard.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4ee503ba398bc613a0d243ce0b8ecae01030e8caa348d924acee1f2a125072d5", + "bytes": 106098, + "width": 1280, + "height": 720 }, { "name": "probe-01-file-menu-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6d0ec2529f8d7df1071661860bfeeb8c41d296e3c2701a030a96100d283d0c93", + "bytes": 115349, + "width": 1280, + "height": 720 }, { "name": "probe-02-after-open-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "5b113fbe9f194eda45cea726ef53dbf721b78040f3ddfe4c576ef3c197d6f2ea", + "bytes": 119819, + "width": 1280, + "height": 720 }, { "name": "probe-03-late.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "5b113fbe9f194eda45cea726ef53dbf721b78040f3ddfe4c576ef3c197d6f2ea", + "bytes": 119819, + "width": 1280, + "height": 720 }, { "name": "project-sync-00-board-open.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "548d15e28d12698e01911de97acabeaa111df5abb23a4c6218ebdb4d0285fc23", + "bytes": 95576, + "width": 1280, + "height": 720 }, { "name": "project-sync-01-update-dialog.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8955464503634edf05a335de3d7db9b6b4508d47508af8b371a0363a40e03a97", + "bytes": 130070, + "width": 1280, + "height": 720 }, { "name": "project-sync-02-resync-first-R777.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e6d94412b4641862d28d75e662bf32ea7f9f3091656581e65527a4517c1788bb", + "bytes": 140967, + "width": 1280, + "height": 720 }, { "name": "project-sync-03-resync-second-R888.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bd2041a98b1608d2c9e5fe31a973349ee69b049c7c9fc27dc80a78d8c74df81d", + "bytes": 141431, + "width": 1280, + "height": 720 }, { "name": "propgrid-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "06c56805cf4b5c1c0c47412d8dabdc5cfacd6b4b234d9e94cc2fbb613169ea19", + "bytes": 51560, + "width": 1280, + "height": 720 }, { "name": "propgrid-02-categories.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "06c56805cf4b5c1c0c47412d8dabdc5cfacd6b4b234d9e94cc2fbb613169ea19", + "bytes": 51560, + "width": 1280, + "height": 720 }, { "name": "propgrid-03-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "37a31618cbe2ade6e0010412dc2dee376a5a41add0cf1425822510426d949b0a", + "bytes": 53900, + "width": 1280, + "height": 720 }, { "name": "propgrid-04-manager.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "06c56805cf4b5c1c0c47412d8dabdc5cfacd6b4b234d9e94cc2fbb613169ea19", + "bytes": 51560, + "width": 1280, + "height": 720 }, { "name": "radiogroups-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "ef78bd25fb753742d37b5dce3e3ab73486aef5e993168a7d973564be964ae0b9", + "bytes": 38359, + "width": 1280, + "height": 720 }, { "name": "radiogroups-02-selections.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "86704e44570db2289947df6512650d38ef3ccdd8634bb0c0c849bc0e89c999e7", + "bytes": 38377, + "width": 1280, + "height": 720 }, { "name": "regions.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0660c0d0732fc5a0d323077dafb904358bff290a73f82f47de472bb701a65b52", + "bytes": 63641, + "width": 1280, + "height": 720 }, { "name": "scrollbar-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9fb3de835c8886b8df5883047bbf0b91c47f7f9763eed01eb4cc255f20832c88", + "bytes": 12039, + "width": 1280, + "height": 720 }, { "name": "scrollbar-02-dragged.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7425ca16d7277eaa7862b10085a30bfea53cc7759758e17c082ccdea2cb90f9a", + "bytes": 6857, + "width": 1280, + "height": 720 }, { "name": "searchctrl-01-visible.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bc4ca83b02969d1b2f10c170c6ae2e4e361ac457ca85008233f70c9b31a1e592", + "bytes": 38535, + "width": 1280, + "height": 720 }, { "name": "searchctrl-02-typing.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "69ea8f9026bfaa4cf220b2cc99b939010e4bc2ef193d4020654087f0a40f27ac", + "bytes": 38692, + "width": 1280, + "height": 720 }, { "name": "searchctrl-03-after-enter.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "69ea8f9026bfaa4cf220b2cc99b939010e4bc2ef193d4020654087f0a40f27ac", + "bytes": 38692, + "width": 1280, + "height": 720 }, { "name": "selectheight-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7c4e2dd1d04bae6c077a0ddcd7830f89e37bfd3396ef07e0d64d18aa1eb73877", + "bytes": 15659, + "width": 1280, + "height": 720 }, { "name": "selectheight-02-result.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7c4e2dd1d04bae6c077a0ddcd7830f89e37bfd3396ef07e0d64d18aa1eb73877", + "bytes": 15659, + "width": 1280, + "height": 720 }, { "name": "specialized-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1166856ca635c04401e3335e6a30fb463132e71255f6aeb3f40208281952d2fb", + "bytes": 50334, + "width": 1280, + "height": 720 }, { "name": "specialized-02-treebook-initial.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1166856ca635c04401e3335e6a30fb463132e71255f6aeb3f40208281952d2fb", + "bytes": 50334, + "width": 1280, + "height": 720 }, { "name": "specialized-03-treebook-subpage.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "71d53fd2c62f719167b9854de0dcb5f815ff2786e4a13da35cbd0ce04f02cc47", + "bytes": 53772, + "width": 1280, + "height": 720 }, { "name": "specialized-04-treebook-expand.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fcd5e2e85af9212b748da70600083ea51e832ca08f09624c16681d1f10c15599", + "bytes": 54063, + "width": 1280, + "height": 720 }, { "name": "specialized-05-bitmapcombo-dropdown.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "fd42e0a04c2777f9c854aa4d0be66c5bd3da05a6dbd9f35cd02bde2e09b2d009", + "bytes": 54818, + "width": 1280, + "height": 720 }, { "name": "specialized-06-bitmapcombo-select.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "28c2aba2d6724f4f4f0b4bc2ac1f4f3c1ccdca3a7e6d7f88e28a3cf75414c4b2", + "bytes": 54799, + "width": 1280, + "height": 720 }, { "name": "specialized-07-rearrange-list.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1166856ca635c04401e3335e6a30fb463132e71255f6aeb3f40208281952d2fb", + "bytes": 50334, + "width": 1280, + "height": 720 }, { "name": "specialized-08-get-order.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "062c704171c91afdb96c6904ecade92563b35e308c2706aed974b7cd3b243eed", + "bytes": 57932, + "width": 1280, + "height": 720 }, { "name": "spinctrl-01-visible.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bc4ca83b02969d1b2f10c170c6ae2e4e361ac457ca85008233f70c9b31a1e592", + "bytes": 38535, + "width": 1280, + "height": 720 }, { "name": "spinctrl-02-after-click.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bc4ca83b02969d1b2f10c170c6ae2e4e361ac457ca85008233f70c9b31a1e592", + "bytes": 38535, + "width": 1280, + "height": 720 }, { "name": "stc-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7bfb1550bd13b02bf3b4cc8fdbabe999111ffdda9de1e6b3d46b8beff49fd574", + "bytes": 58176, + "width": 1280, + "height": 720 }, { "name": "stc-02-python-default.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7bfb1550bd13b02bf3b4cc8fdbabe999111ffdda9de1e6b3d46b8beff49fd574", + "bytes": 58176, + "width": 1280, + "height": 720 }, { "name": "stc-03-drc-mode.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "284d3097cc6d148a3aba8a590acea1168a47104d52f25f9e6c34ebf2ca369f42", + "bytes": 63365, + "width": 1280, + "height": 720 }, { "name": "stc-04-plain-mode.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "eccdc3cbf7b2756eec5a91a0906c1d6a6e67310fa26f40fe93b18f6a180e66f4", + "bytes": 58866, + "width": 1280, + "height": 720 }, { "name": "stc-05-insert-sample.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "0c485809e8d547f6e4b62f176446510d2f88fcec26f2b923b812d1ed06fed56c", + "bytes": 64134, + "width": 1280, + "height": 720 }, { "name": "stc-06-cleared.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "32058ff074d1013f873cd7a18373db83aa302b6194967dab744394259da257d1", + "bytes": 32610, + "width": 1280, + "height": 720 }, { "name": "stc-07-line-numbers-toggle.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d23bd16d122f550b08234009accba3adaeeecec78af1d03f259d1cdc1d40b2b7", + "bytes": 57502, + "width": 1280, + "height": 720 }, { "name": "stc-08-folded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "23161332c6a4606915be386df861f2e37da57b4ec16283776a5f916ce96749ff", + "bytes": 60106, + "width": 1280, + "height": 720 }, { "name": "stc-09-typed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "dfffbe8f0318ef6734342931db00f6b7e8e47f3852f1a8223638d977475d6c76", + "bytes": 44131, + "width": 1280, + "height": 720 }, { "name": "stc-10a-python.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7bfb1550bd13b02bf3b4cc8fdbabe999111ffdda9de1e6b3d46b8beff49fd574", + "bytes": 58176, + "width": 1280, + "height": 720 }, { "name": "stc-10b-drc.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "284d3097cc6d148a3aba8a590acea1168a47104d52f25f9e6c34ebf2ca369f42", + "bytes": 63365, + "width": 1280, + "height": 720 }, { "name": "stc-10c-python-again.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "21045335a797ea897fb5a11235cc2561efc7144294213c2cc6d8d210290877bd", + "bytes": 63193, + "width": 1280, + "height": 720 }, { "name": "symbol_editor-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "91bd83a6ce37352cbfb6e63e84cdb05e308ee2b51ed81654210127a7400778df", + "bytes": 42706, + "width": 1280, + "height": 720 }, { "name": "symbol_editor-02-metrics.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "91bd83a6ce37352cbfb6e63e84cdb05e308ee2b51ed81654210127a7400778df", + "bytes": 42706, + "width": 1280, + "height": 720 }, { "name": "textdecor.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1299f4d5b9720d7e91365f061cf2e49e8a0d7aba4091ae40de7e6c6197451725", + "bytes": 70599, + "width": 1280, + "height": 720 }, { "name": "threadpool-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7a43c8836fd5fef111e6dda623c3c78b7419965cf9f5a69cd44b2a31ec374bbe", + "bytes": 31812, + "width": 1280, + "height": 720 }, { "name": "timer-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "932d43cc87473c7238e3ce6d54411ce3c53524e2204f7ca0368b1e3e418987da", + "bytes": 32107, + "width": 1280, + "height": 720 }, { "name": "timer-02-started.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9438fd8cc61f22cf4a8b3d3ac36be4eb18ccc9078274008cd351f54ca920278d", + "bytes": 35834, + "width": 1280, + "height": 720 }, { "name": "timer-03-ticked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "4db6ac851ce90b9ea5aed89c335a675c071978a3a7a1fe74c16f1512cc1e90e3", + "bytes": 35743, + "width": 1280, + "height": 720 }, { "name": "timer-04-stopped.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "d1aaa5ffa8eb9f6b68a0bab9b918b16124b57573f5c1b6643a1f8e2b434f54a7", + "bytes": 36393, + "width": 1280, + "height": 720 }, { "name": "timer-05-fast-started.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "53e7586d30edaa41b781eeca592cf618aae86079fe5c48d23c9de2d6af6a4de0", + "bytes": 35583, + "width": 1280, + "height": 720 }, { "name": "timer-06-fast-running.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b034232114f802580fbce83b90d1f82491fd3c9091c9020f194a8ebddf238490", + "bytes": 35632, + "width": 1280, + "height": 720 }, { "name": "timer-07-fast-stopped.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9d56d0b2a74cb6ad861ce34f3f330f101299e19bf247a333c28ea8ed121a28aa", + "bytes": 36003, + "width": 1280, + "height": 720 }, { "name": "timer-08-reset.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2e787910fd221e909fb5b078b63713a6bb1062754d5934dbbec881b6500a3bf8", + "bytes": 34976, + "width": 1280, + "height": 720 }, { "name": "toolbar-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "edd9f1eecd9d9857bfea90a6cab9f308ab79f885f09fb2d02af4f3413ace82e5", + "bytes": 29039, + "width": 1280, + "height": 721 }, { "name": "toolbar-02-buttons.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "edd9f1eecd9d9857bfea90a6cab9f308ab79f885f09fb2d02af4f3413ace82e5", + "bytes": 29039, + "width": 1280, + "height": 721 }, { "name": "toolbar-03-new-clicked.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e54b6dfc44f1d27ae3e889f7d05ae6b49bffbb8b8fea00d0b13f71ec6e01232d", + "bytes": 26639, + "width": 1280, + "height": 721 }, { "name": "toolbar-04-zoom.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "7aaa32d4a959ee7ce1be79f832706b46e825b1491b4f1ab068f923543151a156", + "bytes": 28654, + "width": 1280, + "height": 721 }, { "name": "toolbar-05-toggle-on.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9eb1ef157f7e2a9f15a796611b60468601744e796b478a0266f47379f00719be", + "bytes": 26479, + "width": 1280, + "height": 721 }, { "name": "toolbar-06-toggle-off.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "98a645d91d09ef1cc8fcd950476e043aa5f703a94924a9fa80d82fcbcc65535e", + "bytes": 28138, + "width": 1280, + "height": 721 }, { "name": "toolbar-07-statusbar.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "edd9f1eecd9d9857bfea90a6cab9f308ab79f885f09fb2d02af4f3413ace82e5", + "bytes": 29039, + "width": 1280, + "height": 721 }, { "name": "toolbar-08-all-buttons.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1924b802ab54eb08383b7ed05f927c3974d9efcd8654a34c99b6d6c672e7f37f", + "bytes": 35034, + "width": 1280, + "height": 721 }, { "name": "tree-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8f0462a6d7497ba7a0b6ed66409a290968fe4737381f9a01681f026156e76f5c", + "bytes": 36875, + "width": 1280, + "height": 720 }, { "name": "tree-02-hierarchy.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8f0462a6d7497ba7a0b6ed66409a290968fe4737381f9a01681f026156e76f5c", + "bytes": 36875, + "width": 1280, + "height": 720 }, { "name": "tree-03-selected.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "32c87032d668964d9c4fef967328bdc845eedb07b77a81e53ab826cdffdd6234", + "bytes": 39411, + "width": 1280, + "height": 720 }, { "name": "tree-04-expanded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "46df128a5a60c11e01e0bcd3dd04681c35f27adf0923f159aa074717621aac16", + "bytes": 63260, + "width": 1280, + "height": 720 }, { "name": "tree-05-collapsed.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "56af815f7d698dd57d38709cd22622eec7ba8384db57af0fe8322ac3f30f8477", + "bytes": 36692, + "width": 1280, + "height": 720 }, { "name": "tree-06-added.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "6bb014fc49a1a637144f44f95d7f7e012fe9d2acad876b4df794fbf282d741f1", + "bytes": 44180, + "width": 1280, + "height": 720 }, { "name": "tree-07-deleted.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2ba16f8851c81ef68ba3f48fb21559d59450680fb7d242378514762ee65183f3", + "bytes": 42441, + "width": 1280, + "height": 720 }, { "name": "validators-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "validators-02-text.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "validators-03-integer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "validators-04-float.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "validators-05-netname.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "validators-06-button.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a82d021dc5f6f678643499a732c55c39558c921ded646bcb13e80fd8d5370ba6", + "bytes": 47554, + "width": 1280, + "height": 720 }, { "name": "wasmedge-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-02-filesystem.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-03-threading.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-04-fonts.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-05-clipboard.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-06-memory.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-07-runall.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "wasmedge-08-log.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8d4aa3b94e283e38a389f46c12d3e58b2af1406a1e6b6bfe44c212be14bf4555", + "bytes": 66609, + "width": 1280, + "height": 720 }, { "name": "web-calculator.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9e1b8512ba5e5eb3bbce969891f84fcb40514fd5a052f88b9e162a8109dfc3db", + "bytes": 74004, + "width": 1280, + "height": 720 }, { "name": "web-chrome-hidden.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "a75246340fb00484885cfa49e73504432f7a587cd9a2447c42a3f1f289b0fc3e", + "bytes": 82394, + "width": 1280, + "height": 720 }, { "name": "web-chrome-restored.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "2cb8d18e415ace9d35938583c1fe2cee8b3143fa22ac006b16900286a58cc94f", + "bytes": 187149, + "width": 1280, + "height": 720 }, { "name": "web-eeschema.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1be20a087a6bdf8761b4bee9a7499c6b4d209b77f1732ee0a20080c9f182ff04", + "bytes": 13128, + "width": 1280, + "height": 720 }, { "name": "web-footprint_editor.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "858fc1b7f9c879030da3eefd0d167618afee1bebb71f4de4c6d929aeebdbe5da", + "bytes": 73707, + "width": 1280, + "height": 720 }, { "name": "web-gerbview.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b347f63f0fdb68851e65551b14791a6621fa8ef93e0a0ecb9975335ad31d17a1", + "bytes": 44869, + "width": 1280, + "height": 720 }, { "name": "web-pcbnew.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "339b4fb38e14d81b49527bccebd8e662def076ce03316f33c907f65ba78967c7", + "bytes": 13098, + "width": 1280, + "height": 720 }, { "name": "web-pl_editor.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "deccaf9fc3ee77480d930856ac00186644474a6cb8bc18812582f9783d7e4ae2", + "bytes": 12528, + "width": 1280, + "height": 720 }, { "name": "web-read-only-viewer.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8054e0b4ece2aeb4a0a0ab8db811b48210aee2cd3c894c213286002d51b3324d", + "bytes": 113244, + "width": 1280, + "height": 720 }, { "name": "web-switch-missing-pcb-created.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b7ca2cd9a46e80337c18717b44a0a5be349d6b163a6ffc78d9284ee2e132bb40", + "bytes": 103962, + "width": 1280, + "height": 720 }, { "name": "web-switch-pcb-to-sch.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "05122a1eb1881b5826e61a102b45dc1fa1fbb8a6d723e34d8c2e9a73a7676f8e", + "bytes": 77659, + "width": 1280, + "height": 720 }, { "name": "web-switch-sch-to-pcb.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "e9eef7e68ff7bacb668f3791e327c15417d90845f2c10729209c458b12a32ea8", + "bytes": 197181, + "width": 1280, + "height": 720 }, { "name": "web-symbol_editor.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "b770263b57d9743deb6aaf048f938f1d19deec8e42b8318a366f6264c2437468", + "bytes": 45480, + "width": 1280, + "height": 720 }, { "name": "wizard-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "33ba0f7d0fa58136219b9cf6a58618a9423203cbde525477894b3044bb8034cd", + "bytes": 23601, + "width": 1280, + "height": 720 }, { "name": "wizard-02-launch.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "1f83c1bd8f87b8d63c4078b8e0925a30667294fb04f056353cb16de329caa70b", + "bytes": 46963, + "width": 1280, + "height": 1264 }, { "name": "wizard-03-next-page.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "83a9466d9bf194b9a7396325187115933385a1e3962fc6fe1053c582bf6a04af", + "bytes": 46932, + "width": 1280, + "height": 1264 }, { "name": "wizard-04-back-page.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "83a9466d9bf194b9a7396325187115933385a1e3962fc6fe1053c582bf6a04af", + "bytes": 46932, + "width": 1280, + "height": 1264 }, { "name": "wizard-05-cancel.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "9096123effd77e16e7705ccb54e928cb1fbb690408b8b8c599fcabd4e0ad6f46", + "bytes": 47118, + "width": 1280, + "height": 1264 }, { "name": "wxgrid-01-tab.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "bc4ca83b02969d1b2f10c170c6ae2e4e361ac457ca85008233f70c9b31a1e592", + "bytes": 38535, + "width": 1280, + "height": 720 }, { "name": "wxgrid-02-selection.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "acd5c14ec295f7f4a7a85076c627005bc5634f730a448e4fffe0d326ab7a3cce", + "bytes": 38557, + "width": 1280, + "height": 720 }, { "name": "wxgrid-03-editing.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "acd5c14ec295f7f4a7a85076c627005bc5634f730a448e4fffe0d326ab7a3cce", + "bytes": 38557, + "width": 1280, + "height": 720 }, { "name": "wxgrid-controls.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8f237999b01378a755bb2728002f516fae625d7fd01caf8b75f048a775564b98", + "bytes": 32415, + "width": 1280, + "height": 720 }, { "name": "wxgrid-dedicated-page.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "8f237999b01378a755bb2728002f516fae625d7fd01caf8b75f048a775564b98", + "bytes": 32415, + "width": 1280, + "height": 720 }, { "name": "xface-preferences.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "5c7c57d58de052f1c632296e46cb2953679a13918968ab18cf8bc86635366ba2", + "bytes": 149220, + "width": 1280, + "height": 720 }, { "name": "xml-01-loaded.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "xml-02-input.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "xml-03-parse.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "xml-04-traverse.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "xml-05-create.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "xml-06-results.png", - "engine": "chromium" + "engine": "chromium", + "sha256": "542ae05e3aae73ac18e8c6eac2c4f02ffa27d0d897da0886010bdde8ad1f9d47", + "bytes": 49811, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-00-board-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "7770ead25e3136a0fe9ecc3515c7a57fcbfde42d2ee9bf66965d1a80d0e2fb5f", + "bytes": 304662, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-models-pic_programmer-render.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "13a3b995487f08ddcc6c1a02296453c31851ed553ed13bafba405690ccd1ce6c", + "bytes": 66250, + "width": 1084, + "height": 623 }, { "name": "3d-viewer-models-pic_programmer.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "699ae900cc1611a9bf1638f346fb2af4aee082d7562feb741ead84b8826da78b", + "bytes": 157000, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-pic_programmer-render.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "6fb5fc36ad59a4d993984ba27f9cc080bba453c5470b789806f9a92d9fb8abc6", + "bytes": 64238, + "width": 1084, + "height": 623 }, { "name": "3d-viewer-pic_programmer.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "d29f26c34bad9fde6fdbf9b378c42f049a0b32eb196b5e76232e0abb802c8c20", + "bytes": 153293, + "width": 1280, + "height": 720 }, { "name": "3d-viewer-titlebar.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "cc94b51471f6238b5befbbb65648351579208ab3328823c3a4cad5ca9c8d7911", + "bytes": 153854, + "width": 1280, + "height": 720 }, { "name": "appearance-00-layers.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "appearance-01-objects.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "743903e05927cefc8247871eba298166cc1df4f2642d0881424f0e4955352f50", + "bytes": 152609, + "width": 1280, + "height": 720 }, { "name": "appearance-02-nets.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "db8ee4fe7e58e954fbf994ce97d83ac81fec3f4aa38ac742f49f7e0f836477c8", + "bytes": 126338, + "width": 1280, + "height": 720 }, { "name": "appearance-03-layers-again.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "075de1dfc3786d2b721eff089de55161524cef578254920134278c82e254a345", + "bytes": 152105, + "width": 1280, + "height": 720 }, { "name": "appearance-10-layers-scrolled.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "1ab1fa82acc129c9d990f7ebc6ec446948966a194966a23fd11b14b9bcc1d454", + "bytes": 151863, + "width": 1280, + "height": 720 }, { "name": "appearance-11-layers-scrolled-back.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "appearance-20-objects-scrolled.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "ddd293ec09852422d4d4fcd5c52d06315845734222da91953ba677acf94d1496", + "bytes": 154490, + "width": 1280, + "height": 720 }, { "name": "calculator-before-switch.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "438152d6d9fa39761f32a8df342a7db27175d05124d6fb8141f73a8c1cc3291f", + "bytes": 109471, + "width": 1280, + "height": 720 }, { "name": "calculator-color-code.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c205d9fbb8d8e9c0174816fca65056924f3b4d33fb6611fc9dda280686981727", + "bytes": 108135, + "width": 1280, + "height": 720 }, { "name": "calculator-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "438152d6d9fa39761f32a8df342a7db27175d05124d6fb8141f73a8c1cc3291f", + "bytes": 109471, + "width": 1280, + "height": 720 }, { "name": "coroutine-01-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "49b10ce00fcbef9a977ed0bdef1fb7a8fef32e9412f55e88a870d538e88d106f", + "bytes": 143828, + "width": 1280, + "height": 720 }, { "name": "coroutine-02-summary.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "49b10ce00fcbef9a977ed0bdef1fb7a8fef32e9412f55e88a870d538e88d106f", + "bytes": 143828, + "width": 1280, + "height": 720 }, { "name": "coroutine-nested-01-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "3c5b72c873bfc2a2ddc350746535317b364e37cfcad0fc5ade498d5df522ea87", + "bytes": 111212, + "width": 1280, + "height": 720 }, { "name": "coroutine-nested-02-summary.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "3c5b72c873bfc2a2ddc350746535317b364e37cfcad0fc5ade498d5df522ea87", + "bytes": 111212, + "width": 1280, + "height": 720 }, { "name": "eefpsel-01-boot.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "07200fdfd7277f1798bc0ed06cc7615255fbc657d77d1fec1005bd3f3456f46a", + "bytes": 99057, + "width": 1280, + "height": 720 }, { "name": "eefpsel-02-chooser.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "0fb4936a14a7c5958ff671d33f58c36b737721a5ad7fee60eb32751ef72f539c", + "bytes": 117983, + "width": 1280, + "height": 720 }, { "name": "eefpsel-03-selected.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "bd2a388b1715e0cee622687707b1be7b63a862951b5370e7eafd88b42c997afb", + "bytes": 138608, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-00-small.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a22eeffff13a9c0322cd74529facb2f682790efcc71fe4d953d70fb305aedde4", + "bytes": 93739, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-01-full.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "880883d92b031d0099579f3bbea04b5790ac87be285096494fd1d41be6ba54d5", + "bytes": 95755, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-02-45.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "44176c2be3731babc8ec2b5221e401d065b917a93b47c69dc09ae83443ccb2e2", + "bytes": 99191, + "width": 1280, + "height": 720 }, { "name": "eeschema-crosshair-03-small-again.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a22eeffff13a9c0322cd74529facb2f682790efcc71fe4d953d70fb305aedde4", + "bytes": 93739, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-00-before-tool-click.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c2721a6679a071285abc4c5b8cd5db66387fb6d5b4384eb62b383d78a7867779", + "bytes": 91180, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-01-after-click.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "d016eca14a1a3310be7caa652e04092eb1d60fd7aa9fba244777d51491c085ce", + "bytes": 94061, + "width": 1280, + "height": 720 }, { "name": "eeschema-draw-wires-02-after-drawing.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "f702c3ebec9c53ea74bc96e17678fe444c882aed7a2222d3d7159452d6db26c9", + "bytes": 94720, + "width": 1280, + "height": 720 }, { "name": "eeschema-load-rendered.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c159e2cd0020d29511fa98a424c8a584af8abdd44018e58d7fc73bfaa471f95c", + "bytes": 101522, + "width": 1280, + "height": 720 }, { "name": "eeschema-loaded-css.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c2721a6679a071285abc4c5b8cd5db66387fb6d5b4384eb62b383d78a7867779", + "bytes": 91180, + "width": 1280, + "height": 720 }, { "name": "eeschema-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c2721a6679a071285abc4c5b8cd5db66387fb6d5b4384eb62b383d78a7867779", + "bytes": 91180, + "width": 1280, + "height": 720 }, { "name": "eeschema-sim-frame.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "8fe0b33efdaf9c3a0a6843c54a4f1508eb68d736a67885d40ffc6a8b5c4b1506", + "bytes": 102937, + "width": 1280, + "height": 720 }, { "name": "eeschema-sim-plot.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "71e9863e4747d14f491fba39269066ca738c678a1ea9bc801064001e7cb85445", + "bytes": 144283, + "width": 1280, + "height": 720 }, { "name": "eeschema-url-regex.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b4ba3159a23a61b31adf087c5c275d519c0fdce891cf41fd385374f3e276cd12", + "bytes": 101034, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-eeschema.html.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c2721a6679a071285abc4c5b8cd5db66387fb6d5b4384eb62b383d78a7867779", + "bytes": 91180, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-footprint_editor.html.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b9ce8aa9d9abbd32728da190ed65a9718201c5021ef67a0f46db93788cafe2ac", + "bytes": 139071, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-pcbnew.html.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "frame-runtime-symbol_editor.html.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "65e96df0706d45e58752ecd1eade9fe7295d8a19cb4bb7cba0bf73b56621ec85", + "bytes": 71495, + "width": 1280, + "height": 720 }, { "name": "gerbview-01-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "70ea0dd9f90d2f77bb37fd8d94d4f8e7ed353e971a5a72a14ca410409dec68be", + "bytes": 65398, + "width": 1280, + "height": 720 }, { "name": "gerbview-02-metrics.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "70ea0dd9f90d2f77bb37fd8d94d4f8e7ed353e971a5a72a14ca410409dec68be", + "bytes": 65398, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-00-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "81cfa4f0dc532d873beda50f9ae4cc8d27553975722e7313278d45b8c6d553d4", + "bytes": 120231, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-01-dialog.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "bf113acba1fc65fe6b5e11fd01e9c62b66e386421cb82db3e8262e9fcb7dcdfd", + "bytes": 151967, + "width": 1280, + "height": 720 }, { "name": "gerbview-print-02-reopened.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "bf113acba1fc65fe6b5e11fd01e9c62b66e386421cb82db3e8262e9fcb7dcdfd", + "bytes": 151967, + "width": 1280, + "height": 720 }, { "name": "import-settings-modal-stack.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "9fe4d72ad53fd3b2262b4e0d1d2de6640b1c83c57e6509d393c4a13ca0aa19e0", + "bytes": 206463, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave-00-pcbnew-ready.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave-01-dialog-open.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "dc0c7e34a3101cd0c54ab250a4f731a82b3b5463b8eda7f9d6c3e49e34f9bb0b", + "bytes": 171687, + "width": 1280, + "height": 720 }, { "name": "load-pcb-microwave.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "aa69ba3349f5e6d6c608cd34a1ebace79eff118a2ff2a794b36e703a8d4395d0", + "bytes": 153450, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer-00-pcbnew-ready.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer-01-dialog-open.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "66706697943908b2bc9f89fcdff79b3f60bb6c9ad918d0332e095da2f5fcfae5", + "bytes": 172011, + "width": 1280, + "height": 720 }, { "name": "load-pcb-pic_programmer.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "7770ead25e3136a0fe9ecc3515c7a57fcbfde42d2ee9bf66965d1a80d0e2fb5f", + "bytes": 304662, + "width": 1280, + "height": 720 }, { "name": "occ-export-dialog.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "14cd3d061a423f4e8c0a75793944fb5afdb005048a794b16936cc27397c9ec6e", + "bytes": 261455, + "width": 1280, + "height": 720 }, { "name": "occ-export-done.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "8a6bef1afcf21d2cfdcc694b0eecf68f831998caedd7542b64a7a147e0e36ad4", + "bytes": 250311, + "width": 1280, + "height": 720 }, { "name": "occ-probe-done.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "dc062e24106eed983c41d63db637b6bb5be886bb5013959c8ab675a71ff91eeb", + "bytes": 20684, + "width": 1280, + "height": 720 }, { "name": "pcbnew-context-menu.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "03f101c60e72ba7f40fa4a519d2547a0d34cf8813985fc6a7ac6222b1f8da5a1", + "bytes": 163466, + "width": 1280, + "height": 720 }, { "name": "pcbnew-context-submenu.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "86ba7dd4aa1040533eddb906fb689961f25c1ef63213fcd50bbcc227ce3f6891", + "bytes": 183352, + "width": 1280, + "height": 720 }, { "name": "pcbnew-dark-mode-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-00-before-tool-click.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-01-after-click.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "426b98c0c05c80b504df5f441fc39fbe8a58da6b4a20a80ac546417391fe6be2", + "bytes": 154557, + "width": 1280, + "height": 720 }, { "name": "pcbnew-draw-lines-02-after-drawing.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "1e56a4aaeeb6b0876f1cac6d5473cb87f9757b564c0541686abec2e7110343ad", + "bytes": 162571, + "width": 1280, + "height": 720 }, { "name": "pcbnew-loaded-css.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "pcbnew-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "pcbnew-move-00-before.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "7236c3ff14751e8f5b5da5295c693341a9c53141651aad7c34eb62c056a81bdd", + "bytes": 154925, + "width": 1280, + "height": 720 }, { "name": "pcbnew-move-01-after.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "e7f41335c260d1dd99b706f02c5d20f601241ca669cfbc568232415f0bc40415", + "bytes": 159481, + "width": 1280, + "height": 720 }, { "name": "pcbnew-sidebar-scrollbar-dragged.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "4f2f476a2c6db6c9ef9919e36329ab3fa5d8a1eb50fabe647c36912919a19ce8", + "bytes": 149279, + "width": 1280, + "height": 720 }, { "name": "pcbnew-sidebar-scrollbar.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "pl_editor-01-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "38027e75473ad505f8675fe52f1c7d4e85a42e59b68ba6ea0d93964ed7db6d86", + "bytes": 61645, + "width": 1280, + "height": 720 }, { "name": "pl_editor-02-no-wizard.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "38027e75473ad505f8675fe52f1c7d4e85a42e59b68ba6ea0d93964ed7db6d86", + "bytes": 61645, + "width": 1280, + "height": 720 }, { "name": "pl_editor-03-file-menu.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "48c4d631fad6e3208fe84ba71dc333c86f4a3814e2fb7cbdadc874c6c15ec31f", + "bytes": 70091, + "width": 1280, + "height": 720 }, { "name": "pl_editor-04-save-as-dialog.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a38b717669ff3431d45685b2ed10bf1e1e7b82a32ce0fefa8a8759d4fbc543bf", + "bytes": 79049, + "width": 1280, + "height": 720 }, { "name": "pl_editor-04b-after-enter.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a38b717669ff3431d45685b2ed10bf1e1e7b82a32ce0fefa8a8759d4fbc543bf", + "bytes": 79049, + "width": 1280, + "height": 720 }, { "name": "pl_editor-context-menu.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "27b7c26c669660b689153e5ca6af51f01b4a852b9a4ab72822dea359f85c89a3", + "bytes": 75014, + "width": 1280, + "height": 540 }, { "name": "pl_editor-load-rendered.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a678f48f3db6917b00fd4527bc05de5c0b5d3ec2def9628b408e921abc0d1c93", + "bytes": 66269, + "width": 1280, + "height": 720 }, { "name": "pl_editor-scrollbar-dragged.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "d41a2e85f3266e2d8aee67424305e301bdd341d413c7d9c3e80c705adf0651bf", + "bytes": 65874, + "width": 1210, + "height": 460 }, { "name": "pl_editor-scrollbar.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "e8bd59f74769a46e41aa49c5a6e142907970cc839d1766550959fe8f3e222732", + "bytes": 69769, + "width": 1210, + "height": 523 }, { "name": "probe-00-after-wizard.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "23df9f84dff056f0778f6b5c0ee1a79f357afa7d4620a1f4f80348793e406bea", + "bytes": 152549, + "width": 1280, + "height": 720 }, { "name": "probe-01-file-menu-open.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a3b5ab2be4356e78c2724441669e55f95019f64f712b61bf56e6aa4094b2815d", + "bytes": 165062, + "width": 1280, + "height": 720 }, { "name": "probe-02-after-open-click.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b41631a83cdb97e05d8abb2a4ed3689a854b570e290f379b9afa51806ccfd7ef", + "bytes": 169337, + "width": 1280, + "height": 720 }, { "name": "probe-03-late.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b41631a83cdb97e05d8abb2a4ed3689a854b570e290f379b9afa51806ccfd7ef", + "bytes": 169337, + "width": 1280, + "height": 720 }, { "name": "project-sync-00-board-open.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "81db2eb54e42addd144d68d6e4d1850a763a408a7cc7276317b4ccf405acc090", + "bytes": 141436, + "width": 1280, + "height": 720 }, { "name": "project-sync-01-update-dialog.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "2e72666dbc4c504cc439cb40a8fe33a6e708c2b9c7fa437cf8aea12d3c62876d", + "bytes": 184510, + "width": 1280, + "height": 720 }, { "name": "project-sync-02-resync-first-R777.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "f3ac8eaef6fc7b30c5f65332de85e9f731338a91bb4702a7a5a4c1c8466c95b3", + "bytes": 198146, + "width": 1280, + "height": 720 }, { "name": "project-sync-03-resync-second-R888.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "2f43a8dbdc5ac608396870281c0f2f8a5ab473fbf40f24a59b67cc962b4f72c9", + "bytes": 198596, + "width": 1280, + "height": 720 }, { "name": "symbol_editor-01-loaded.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "65e96df0706d45e58752ecd1eade9fe7295d8a19cb4bb7cba0bf73b56621ec85", + "bytes": 71495, + "width": 1280, + "height": 720 }, { "name": "symbol_editor-02-metrics.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "65e96df0706d45e58752ecd1eade9fe7295d8a19cb4bb7cba0bf73b56621ec85", + "bytes": 71495, + "width": 1280, + "height": 720 }, { "name": "web-calculator.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b485f486376ad6981e637b5f7099325663511ce44b69adf9dec5e3a47705c776", + "bytes": 113676, + "width": 1280, + "height": 720 }, { "name": "web-chrome-hidden.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "e655f32bd91b8a4d776311cbebdccebdca476e1c7547e8bbe5bfc5521c9a042d", + "bytes": 107437, + "width": 1280, + "height": 720 }, { "name": "web-chrome-restored.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "5f9e52c5cde4dde10aea9f1b29254fbdadb8e784cff1addc852d047702e56867", + "bytes": 251747, + "width": 1280, + "height": 720 }, { "name": "web-eeschema.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "761a32eb24c87885bac9d3997aaa80a5c18dfe9e084b18d6fb669954eeec0bd5", + "bytes": 117815, + "width": 1280, + "height": 720 }, { "name": "web-footprint_editor.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c00bf0e62bc72bab868c13e15b4ce976788f085d4c0598a7f52ea91c8c4f0939", + "bytes": 109074, + "width": 1280, + "height": 720 }, { "name": "web-gerbview.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c015870448fde3362b32bf5c723cb90828d9383473fd11dcfe86b0c0a1a3506e", + "bytes": 72286, + "width": 1280, + "height": 720 }, { "name": "web-pcbnew.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "08b3cd699ffb1ee702286504e69dfb95077b53ef428114231e9f50022fb34072", + "bytes": 28621, + "width": 1280, + "height": 720 }, { "name": "web-pl_editor.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "b58841f992ac4d93dcaae1729bf25a22a8751d0e5e27d0aa8c4b3ef9f0b33aed", + "bytes": 27911, + "width": 1280, + "height": 720 }, { "name": "web-read-only-viewer.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "5831b7a8941754109e9d1c0f5216e9189cc6abe64b4718f338b41f56b9c84af2", + "bytes": 145519, + "width": 1280, + "height": 720 }, { "name": "web-switch-missing-pcb-created.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "c4ef619a19e7bcd46df6bd220521a839007c0a98880373ebf8ea3f3846a3330d", + "bytes": 150635, + "width": 1280, + "height": 720 }, { "name": "web-switch-pcb-to-sch.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "300e4a44f78ed6f02dc4716ecb4b85607c84f7d9f3f414ea0a0aa4b167e3cbe5", + "bytes": 119491, + "width": 1280, + "height": 720 }, { "name": "web-switch-sch-to-pcb.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "58b0df26f40ed68d1d9a1a48aa5a524eb6bd5233f21fc52d1d167618442fb458", + "bytes": 247284, + "width": 1280, + "height": 720 }, { "name": "web-symbol_editor.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "252bae8f80ff9042e0e971fab43e2722f7f7ff69598a534dc1266570e99157e2", + "bytes": 74236, + "width": 1280, + "height": 720 }, { "name": "xface-preferences.png", - "engine": "firefox" + "engine": "firefox", + "sha256": "a1667f4697a7dd24e130492a82dccc5647c9c4c468cb21a66eda33f70327923c", + "bytes": 202590, + "width": 1280, + "height": 720 } ] } diff --git a/tests/tools/screenshots/README.md b/tests/tools/screenshots/README.md index 958360f..593a255 100644 --- a/tests/tools/screenshots/README.md +++ b/tests/tools/screenshots/README.md @@ -5,9 +5,35 @@ screenshots. Design and rationale: `~/.claude/plans/…snowglobe.md` (or ask). **Source of truth = CI's Linux render.** The dev never authors baselines on the Mac (Mac fonts/GL ≠ CI). Instead, CI renders on every push; when a render change -is intentional you *promote* CI's artifact into the committed baselines. The -environment isn't pinned — if the host's Mesa/fonts drift, the gate lights up in -Discord and you just re-promote (broad + low-intensity change ⇒ likely drift). +is intentional you *promote* CI's artifact into the baselines. The environment +isn't pinned — if the host's Mesa/fonts drift, the gate lights up in Discord and +you just re-promote (broad + low-intensity change ⇒ likely drift). + +**Baselines live in R2, not git.** The PNGs sit in a private Cloudflare R2 +bucket (`pcbjam-ci-screenshots`), content-addressed as `sha256/.png` and +immutable; the committed `screenshot-manifest.json` pins each `/` +to a hash, so every git commit resolves its exact baselines. The local +`baseline-screenshots/` tree is a gitignored cache — `npm run screenshots:fetch` +materializes it; `promote` uploads new hashes and rewrites the manifest, and the +manifest diff is the only thing you commit. + +**Credentials** (S3 API, bucket-scoped, region `auto`): +``` +CI_SCREENSHOTS_S3_ENDPOINT # https://.r2.cloudflarestorage.com +CI_SCREENSHOTS_S3_BUCKET # optional, default pcbjam-ci-screenshots +CI_SCREENSHOTS_S3_ACCESS_KEY_ID # read-only pair in CI; read-write pair for promote +CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY +``` +CI holds the read-only pair as repo secrets; devs get the read-write pair from +the team vault (ask) and put it in `tests/.env` (gitignored, auto-loaded by +r2-store.ts; shell env vars take precedence): +``` +CI_SCREENSHOTS_S3_ENDPOINT=https://.r2.cloudflarestorage.com +CI_SCREENSHOTS_S3_ACCESS_KEY_ID= +CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY= +``` +Without credentials, fetch and the compare gate skip with a warning (secretless +CI callers stay green); promote refuses to run. **Everything is per-engine.** Specs write `test-results//.png` (engine derived from the running browser via `stableShot`/`shotPath`); baselines @@ -22,15 +48,18 @@ The same spec on chromium + firefox is two independent gated screenshots. - `promote.ts` — churn-free updater: pull a CI run's shots (`gh run download`) or `--from DIR`; overwrite a baseline only when pixels differ beyond the floor (verbatim bytes, no re-encode) → no git churn. - `perf-report.ts` — renders the track-only runtime-perf table (loadMs/openMs/FPS) with Δ vs the previous main run (fetched via `gh`). - `post-discord.ts` — the always-on CI-on-main report: SHA + e2e status + perf table, then screenshot triptychs (batched, size-capped, flood-collapsed). -- `changelog.ts` — Discord trigger B: git-history diff of committed baseline PNGs (no build/GPU). +- `changelog.ts` — Discord trigger B: git-history diff of the manifest between two revs, PNG bytes fetched from R2 (no build/GPU). - `noise.ts` — calibration: diff two identical-input renders → per-engine noise floor. -- `gen-manifest.ts` — regenerate `screenshot-manifest.json` (canonical {name, engine} list) from the committed per-engine baseline tree; `--check` (gating in CI) fails if it drifts. +- `gen-manifest.ts` — regenerate `screenshot-manifest.json` ({name, engine, sha256, bytes, width, height}) from the local baseline cache; `--check` (gating in CI, credential-free) validates the schema and fails if baseline PNGs are ever re-committed to git. +- `r2-store.ts` — minimal aws4fetch S3 client for the CAS bucket (get/put/exists by hash, downloads integrity-checked). +- `r2-sync.ts` — cache sync: `--pull` materializes `baseline-screenshots/` from the manifest (idempotent, deletes unlisted files), `--push` seeds/uploads, `--verify` HEADs every hash. - `spec-map.ts` — best-effort screenshot-name → spec-file attribution for captions (scans `stableShot`/`shotPath` literals). ## npm scripts (run from `tests/`) ``` +npm run screenshots:fetch # materialize the baseline cache from R2 (run before check; needs read creds) npm run screenshots:check # gate: baselines vs test-results → report.json (exit 0; add --fail-on-change to gate) -npm run screenshots:promote -- --run # churn-free re-baseline from a CI run (or --from DIR) +npm run screenshots:promote -- --run # churn-free re-baseline from a CI run (or --from DIR; needs RW creds) npm run screenshots:report -- --e2e pass # post the CI report to Discord (main+push only; needs DISCORD_WEBHOOK_URL) npm run screenshots:changelog # post the baseline changelog (main+push only) npm run screenshots:noise -- run1/ run2/ # calibrate floors diff --git a/tests/tools/screenshots/changelog.ts b/tests/tools/screenshots/changelog.ts index 5a2f5fe..631c83b 100644 --- a/tests/tools/screenshots/changelog.ts +++ b/tests/tools/screenshots/changelog.ts @@ -1,33 +1,40 @@ /** * Baseline changelog (Discord trigger B) — no build, no GPU. * - * On push to main, diff the committed baseline PNGs between two commits and post - * a "Baseline changelog" to Discord: a triptych (old | new+boxes | heatmap) for - * each CHANGED file, the image for each ADDED, and a titled line for each REMOVED. - * "added / removed" only mean anything as a git-history diff, which is why this is - * separate from the re-render drift gate. + * On push to main, diff the committed screenshot MANIFEST between two commits + * and post a "Baseline changelog" to Discord: a triptych (old | new+boxes | + * heatmap) for each CHANGED baseline, the image for each ADDED, and a titled + * line for each REMOVED. "added / removed" only mean anything as a git-history + * diff, which is why this is separate from the re-render drift gate. + * + * The PNGs themselves are not in git — each manifest entry pins a sha256 and + * the bytes are fetched from the R2 CAS bucket (objects are immutable, so the + * base rev's hashes are always still resolvable). Needs the read credential + * pair; a base rev whose manifest predates the R2 migration (v1) is skipped so + * the migration commit itself doesn't post hundreds of bogus entries. * * CLI (from tests/): * tsx tools/screenshots/changelog.ts [--base REV] [--head REV] [--dry-run] [--force] */ import * as fs from 'fs'; -import * as os from 'os'; import * as path from 'path'; import { execFileSync } from 'child_process'; import { PNG } from 'pngjs'; -import { BASELINE_ROOT, DIFF_OUT_DIR, floorFor, labelText, splitKey, LABEL } from './config'; +import { DIFF_OUT_DIR, MANIFEST_PATH, MANIFEST_VERSION, floorFor, labelText, splitKey, LABEL, type Manifest } from './config'; import { comparePair, type Report } from './compare'; -import { loadPng, savePng, withBottomLabel } from './image-ops'; +import { savePng, withBottomLabel } from './image-ops'; import { buildSpecResolver } from './spec-map'; import { buildAttachments, paginate, postMessage } from './post-discord'; +import { missingEnv, storeFromEnv, type R2Store } from './r2-store'; function git(root: string, args: string[]): string { return execFileSync('git', ['-C', root, ...args], { encoding: 'utf8' }).trim(); } -function gitBlob(root: string, rev: string, repoPath: string): Buffer | null { +/** The screenshot manifest as committed at `rev`, or null if absent/unparsable. */ +function manifestAt(repoRoot: string, rev: string, repoPath: string): Manifest | null { try { - return execFileSync('git', ['-C', root, 'show', `${rev}:${repoPath}`], { maxBuffer: 1 << 28 }); + return JSON.parse(execFileSync('git', ['-C', repoRoot, 'show', `${rev}:${repoPath}`], { encoding: 'utf8' })) as Manifest; } catch { return null; } @@ -60,17 +67,41 @@ async function main(): Promise { } } - // Repo-relative baseline root prefix (e.g. tests/baseline-screenshots). - const prefix = path.relative(repoRoot, path.join(cwd, BASELINE_ROOT)); - const diff = git(repoRoot, ['diff', '--name-status', base, head, '--', prefix]); - if (!diff) { + // Repo-relative manifest path (e.g. tests/screenshot-manifest.json). + const manifestPath = path.relative(repoRoot, path.join(cwd, MANIFEST_PATH)).split(path.sep).join('/'); + const baseManifest = manifestAt(repoRoot, base, manifestPath); + const headManifest = manifestAt(repoRoot, head, manifestPath); + if (headManifest?.version !== MANIFEST_VERSION) { + console.log('[changelog] head manifest is not v2 — nothing to diff'); + return; + } + if (baseManifest?.version !== MANIFEST_VERSION) { + console.log('[changelog] base manifest predates the R2 migration — skipping (migration commit)'); + return; + } + + // Engine-qualified key (`/`) → sha256, per rev. + const hashesOf = (m: Manifest): Map => + new Map(m.screenshots.map((e) => [`${e.engine}/${e.name}`, e.sha256])); + const baseHashes = hashesOf(baseManifest); + const headHashes = hashesOf(headManifest); + const added = [...headHashes.keys()].filter((k) => !baseHashes.has(k)); + const removed = [...baseHashes.keys()].filter((k) => !headHashes.has(k)); + const changed = [...headHashes.keys()].filter((k) => baseHashes.has(k) && baseHashes.get(k) !== headHashes.get(k)); + if (!added.length && !removed.length && !changed.length) { console.log('[changelog] no baseline changes between', base.slice(0, 7), 'and', head); return; } + const store = storeFromEnv(); + if (!store) { + console.error(`[changelog] R2 credentials required to fetch baseline bytes: set ${missingEnv().join(', ')}`); + process.exitCode = 1; + return; + } + const outDir = path.join(cwd, DIFF_OUT_DIR); fs.mkdirSync(outDir, { recursive: true }); - const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'changelog-')); const report: Report = { generatedFor: process.env.GITHUB_SHA || head, changed: [], @@ -81,53 +112,25 @@ async function main(): Promise { }; const { specFor } = buildSpecResolver(cwd); - // Load a git blob (a committed PNG at `rev`) as a decoded PNG, or null if absent. - const blobPng = (rev: string, p: string): PNG | null => { - const b = gitBlob(repoRoot, rev, p); - if (!b) return null; - const f = path.join(tmp, `${rev.slice(0, 7)}-${path.basename(p)}`); - fs.writeFileSync(f, b); - return loadPng(f); - }; - // Engine-qualified key (`/.png`) from a repo path under the baseline root. - const keyOf = (repoPath: string): string => path.relative(prefix, repoPath).split(path.sep).join('/'); + const hashPng = async (s: R2Store, hash: string): Promise => PNG.sync.read(await s.get(hash)); // Save a single captioned image (added/removed) and record it in the report. const saveSingle = (img: PNG, key: string, status: 'added' | 'removed'): void => { - const suffix = status === 'added' ? 'added' : 'removed'; - const rel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.${suffix}.png`); + const rel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.${status}.png`); savePng(path.join(cwd, rel), withBottomLabel(img, labelText(status, key, specFor(splitKey(key).name)), LABEL.colors[status])); report[status].push({ name: key, image: rel }); }; - for (const line of diff.split('\n')) { - const parts = line.split('\t'); - const status = parts[0][0]; // M/A/D/R - const repoPath = parts[status === 'R' ? 2 : 1]; - const oldPath = status === 'R' ? parts[1] : repoPath; - const key = keyOf(repoPath); - - if (status === 'A' || status === 'R') { - const img = blobPng(head, repoPath); - if (img) saveSingle(img, key, 'added'); - if (status === 'R') { - const oldImg = blobPng(base, oldPath); - if (oldImg) saveSingle(oldImg, keyOf(oldPath), 'removed'); - } - } else if (status === 'D') { - const img = blobPng(base, repoPath); - if (img) saveSingle(img, key, 'removed'); - } else { - // Modified: captioned triptych old vs new. - const oldImg = blobPng(base, repoPath); - const newImg = blobPng(head, repoPath); - if (!oldImg || !newImg) continue; - const { result, heatmap, triptych } = comparePair(oldImg, newImg, key, floorFor(key)); - const triptychRel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.triptych.png`); - const heatmapRel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.heatmap.png`); - savePng(path.join(cwd, triptychRel), withBottomLabel(triptych, labelText('changed', key, specFor(splitKey(key).name)), LABEL.colors.changed)); - savePng(path.join(cwd, heatmapRel), heatmap); - report.changed.push({ ...result, triptych: triptychRel, heatmap: heatmapRel }); - } + for (const key of added) saveSingle(await hashPng(store, headHashes.get(key)!), key, 'added'); + for (const key of removed) saveSingle(await hashPng(store, baseHashes.get(key)!), key, 'removed'); + for (const key of changed) { + const oldImg = await hashPng(store, baseHashes.get(key)!); + const newImg = await hashPng(store, headHashes.get(key)!); + const { result, heatmap, triptych } = comparePair(oldImg, newImg, key, floorFor(key)); + const triptychRel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.triptych.png`); + const heatmapRel = path.join(DIFF_OUT_DIR, `${key.replace('/', '_')}.heatmap.png`); + savePng(path.join(cwd, triptychRel), withBottomLabel(triptych, labelText('changed', key, specFor(splitKey(key).name)), LABEL.colors.changed)); + savePng(path.join(cwd, heatmapRel), heatmap); + report.changed.push({ ...result, triptych: triptychRel, heatmap: heatmapRel }); } report.changed.sort((a, b) => b.changedRatio - a.changedRatio); diff --git a/tests/tools/screenshots/compare.ts b/tests/tools/screenshots/compare.ts index 1a861fc..9b406cb 100644 --- a/tests/tools/screenshots/compare.ts +++ b/tests/tools/screenshots/compare.ts @@ -228,6 +228,16 @@ function main(): void { return; } const root = process.cwd(); + // Baselines are a local cache fetched from R2 (`npm run screenshots:fetch`). + // When the manifest expects screenshots but the cache is empty — a secretless + // CI caller where the fetch step skipped, or a dev who hasn't fetched — skip + // the gate instead of misreporting every baseline as removed. No report.json + // is written; post-discord tolerates its absence. + const expected = loadManifest(root)?.screenshots.length ?? 0; + if (expected > 0 && listEngineKeys(path.join(root, BASELINE_ROOT)).length === 0) { + console.log('[compare] baseline cache is empty — run `npm run screenshots:fetch` (needs R2 credentials); skipping'); + return; + } const report = classify(root, (args.sha as string) || process.env.GITHUB_SHA || null); fs.writeFileSync(path.join(root, DIFF_OUT_DIR, 'report.json'), JSON.stringify(report, null, 2)); const { changed, added, removed, unchangedCount, driftLikely } = report; diff --git a/tests/tools/screenshots/config.ts b/tests/tools/screenshots/config.ts index 6e07a51..cec778a 100644 --- a/tests/tools/screenshots/config.ts +++ b/tests/tools/screenshots/config.ts @@ -12,15 +12,42 @@ import * as nodeFs from 'fs'; import * as nodePath from 'path'; /** - * Committed baseline root. One PER-ENGINE subdirectory per browser family: - * `baseline-screenshots/{chromium,firefox}/.png`. Renders mirror the - * layout (`test-results//.png`, written by stableShot/shotPath), - * so each engine is gated against its OWN baselines — the old flat namespace - * let two engines running the same spec overwrite each other's PNG, and the - * surviving file was whichever parallel worker wrote last. + * Baseline root — a GITIGNORED local cache, one PER-ENGINE subdirectory per + * browser family: `baseline-screenshots/{chromium,firefox}/.png`. + * Renders mirror the layout (`test-results//.png`, written by + * stableShot/shotPath), so each engine is gated against its OWN baselines — + * the old flat namespace let two engines running the same spec overwrite each + * other's PNG, and the surviving file was whichever parallel worker wrote last. + * + * The baseline PNGs are NOT committed: they live in a private R2 bucket, + * content-addressed by sha256, and the committed manifest + * (screenshot-manifest.json) is what pins each `/` to a hash. + * `npm run screenshots:fetch` (tools/screenshots/r2-sync.ts) materializes this + * tree from the manifest; promote.ts uploads new hashes and rewrites the + * manifest — the manifest diff is the only thing that lands in git. */ export const BASELINE_ROOT = 'baseline-screenshots'; +/** Manifest format version — bumped when baselines moved from git to R2. */ +export const MANIFEST_VERSION = 2; + +/** Default private R2 bucket holding the content-addressed baselines. */ +export const R2_DEFAULT_BUCKET = 'pcbjam-ci-screenshots'; + +/** Key prefix for content-addressed objects: `sha256/<64-hex>.png`. */ +export const R2_KEY_PREFIX = 'sha256/'; + +/** + * Env vars for the bucket's S3 API (read-only keypair in CI, read-write for + * devs running promote). Endpoint form: https://.r2.cloudflarestorage.com + */ +export const R2_ENV = { + endpoint: 'CI_SCREENSHOTS_S3_ENDPOINT', + bucket: 'CI_SCREENSHOTS_S3_BUCKET', + accessKeyId: 'CI_SCREENSHOTS_S3_ACCESS_KEY_ID', + secretAccessKey: 'CI_SCREENSHOTS_S3_SECRET_ACCESS_KEY', +} as const; + /** Engine subdirectories the tooling recognizes (a browser family per dir). */ export const ENGINES = ['chromium', 'firefox', 'webkit'] as const; @@ -152,8 +179,18 @@ export function labelText(status: LabelStatus, key: string, spec: string | null) return spec ? `${head} · ${spec}` : head; } -export type ManifestEntry = { name: string; engine: string }; -export type Manifest = { screenshots: ManifestEntry[] }; +/** + * One expected screenshot. `sha256` is the load-bearing field — it resolves the + * R2 object (`sha256/.png`) holding the baseline bytes; `bytes`/`width`/ + * `height` are sanity metadata (cheap pre-hash check on fetch, dimension info + * in reviews). + */ +export type ManifestEntry = { name: string; engine: string; sha256: string; bytes: number; width: number; height: number }; +export type Manifest = { + version: number; + storage: { bucket: string; keyPrefix: string }; + screenshots: ManifestEntry[]; +}; /** Verdict floor for an engine-qualified key — the engine IS the key prefix now, * no manifest lookup needed. */ diff --git a/tests/tools/screenshots/gen-manifest.ts b/tests/tools/screenshots/gen-manifest.ts index 36f33fc..aff3546 100644 --- a/tests/tools/screenshots/gen-manifest.ts +++ b/tests/tools/screenshots/gen-manifest.ts @@ -1,30 +1,73 @@ /** * Generate tests/screenshot-manifest.json — the canonical list of expected - * screenshots. Each entry is {name, engine}, read STRAIGHT from the per-engine - * baseline tree (baseline-screenshots//.png) — the engine is the - * directory, no spec-scanning guesswork. + * screenshots AND the pointer to their bytes. Each entry is + * {name, engine, sha256, bytes, width, height}: the engine comes from the + * baseline cache tree (baseline-screenshots//.png), the sha256 + * resolves the PNG in the private R2 bucket (`sha256/.png`). The manifest + * is the SOURCE OF TRUTH — the local tree is a cache materialized from it by + * r2-sync (`npm run screenshots:fetch`). * - * The list is what lets compare/promote tell an intentional REMOVAL from a - * flaky/absent render. promote.ts regenerates it automatically after applying; - * --check keeps CI honest if baselines are ever edited by hand. + * promote.ts is the single writer: it regenerates this file after applying and + * uploading a CI run's render. Regeneration therefore needs the local tree + * present; --check deliberately does NOT (it must stay credential- and + * network-free so it can gate every CI caller, secretless ones included). * - * CLI (from tests/): tsx tools/screenshots/gen-manifest.ts [--check] - * --check exits 1 if the committed manifest is stale (for CI hygiene). + * CLI (from tests/): tsx tools/screenshots/gen-manifest.ts [--check [--remote]] + * --check exit 1 unless the committed manifest is well-formed (v2 schema, + * sorted+unique entries, valid hashes) and no baseline PNG has been + * re-committed to git (resurrection guard). + * --remote with --check: also HEAD every hash in R2 (needs credentials; + * manual use only, not wired into CI). */ import * as fs from 'fs'; import * as path from 'path'; -import { BASELINE_ROOT, MANIFEST_PATH, isIgnored, listEngineKeys, splitKey, type Manifest } from './config'; +import { execFileSync } from 'child_process'; +import { PNG } from 'pngjs'; +import { + BASELINE_ROOT, + ENGINES, + IGNORE_SCREENSHOTS, + MANIFEST_PATH, + MANIFEST_VERSION, + R2_DEFAULT_BUCKET, + R2_KEY_PREFIX, + isIgnored, + listEngineKeys, + splitKey, + type Manifest, + type ManifestEntry, +} from './config'; +import { hashFile, missingEnv, storeFromEnv } from './r2-store'; -/** Render the manifest JSON for the current baseline tree. */ +const NOTE = + 'Baselines live in R2, content-addressed by sha256 — the local baseline-screenshots/ tree is a cache ' + + '(`npm run screenshots:fetch`). Regenerated by `npm run screenshots:promote`; never edit hashes by hand. ' + + 'The name list is authoritative for removed-screenshot detection.'; + +/** Render the manifest JSON for the current baseline cache tree (tree must be present). */ export function manifestJson(root: string): string { - const screenshots = listEngineKeys(path.join(root, BASELINE_ROOT)) + const base = path.join(root, BASELINE_ROOT); + const screenshots: ManifestEntry[] = listEngineKeys(base) .filter((key) => !isIgnored(key)) - .map((key) => splitKey(key)) - .map(({ engine, name }) => ({ name, engine })) + .map((key) => { + const { engine, name } = splitKey(key); + const file = path.join(base, key); + const png = PNG.sync.read(fs.readFileSync(file)); + return { + name, + engine, + sha256: hashFile(file), + bytes: fs.statSync(file).size, + width: png.width, + height: png.height, + }; + }) .sort((a, b) => a.engine.localeCompare(b.engine) || a.name.localeCompare(b.name)); const manifest: Manifest & { _note: string } = { - _note: 'Generated from baseline-screenshots// — run `npm run screenshots:manifest`. The name list is authoritative for removed-screenshot detection.', + _note: NOTE, + version: MANIFEST_VERSION, + storage: { bucket: R2_DEFAULT_BUCKET, keyPrefix: R2_KEY_PREFIX }, screenshots, }; return JSON.stringify(manifest, null, 2) + '\n'; @@ -35,27 +78,107 @@ export function writeManifest(root: string): void { fs.writeFileSync(path.join(root, MANIFEST_PATH), manifestJson(root)); } -function main(): void { - const check = process.argv.includes('--check'); - const root = process.cwd(); - const json = manifestJson(root); - const outPath = path.join(root, MANIFEST_PATH); - const count = (JSON.parse(json) as Manifest).screenshots.length; +/** Schema + hygiene problems with the committed manifest (empty = healthy). Credential-free. */ +export function checkManifest(root: string): string[] { + const problems: string[] = []; + const p = path.join(root, MANIFEST_PATH); + if (!fs.existsSync(p)) return [`${MANIFEST_PATH} is missing`]; + let manifest: Manifest; + try { + manifest = JSON.parse(fs.readFileSync(p, 'utf8')) as Manifest; + } catch (e) { + return [`${MANIFEST_PATH} is not valid JSON: ${(e as Error).message}`]; + } + if (manifest.version !== MANIFEST_VERSION) problems.push(`version is ${manifest.version}, expected ${MANIFEST_VERSION}`); + if (!manifest.storage?.bucket || !manifest.storage?.keyPrefix) problems.push('storage.bucket/keyPrefix missing'); + if (!Array.isArray(manifest.screenshots) || manifest.screenshots.length === 0) { + problems.push('screenshots list is missing or empty'); + return problems; + } - console.log(`[manifest] ${count} screenshots across engines`); + const engines = new Set(ENGINES); + let prev: ManifestEntry | null = null; + const seen = new Set(); + for (const e of manifest.screenshots) { + const id = `${e.engine}/${e.name}`; + if (!e.name?.toLowerCase().endsWith('.png')) problems.push(`${id}: name is not a .png`); + if (!engines.has(e.engine)) problems.push(`${id}: unknown engine`); + if (!/^[0-9a-f]{64}$/.test(e.sha256 ?? '')) problems.push(`${id}: sha256 is not 64 lowercase hex chars`); + if (!(e.bytes > 0) || !(e.width > 0) || !(e.height > 0)) problems.push(`${id}: bytes/width/height must be positive`); + if (IGNORE_SCREENSHOTS.has(e.name)) problems.push(`${id}: is in IGNORE_SCREENSHOTS and must not be listed`); + if (seen.has(id)) problems.push(`${id}: duplicate entry`); + seen.add(id); + if (prev && (prev.engine.localeCompare(e.engine) || prev.name.localeCompare(e.name)) > 0) { + problems.push(`${id}: not sorted (engine, then name)`); + } + prev = e; + } + + // Resurrection guard: baselines must never come back as committed files. + try { + const tracked = execFileSync('git', ['ls-files', '--', BASELINE_ROOT], { cwd: root, encoding: 'utf8' }).trim(); + if (tracked) { + problems.push( + `git-tracked PNGs under ${BASELINE_ROOT}/ — baselines live in R2, do not commit them:\n ` + + tracked.split('\n').slice(0, 5).join('\n ') + ); + } + } catch { + console.warn('[manifest] git unavailable — skipping the resurrection guard'); + } + return problems; +} + +async function main(): Promise { + const check = process.argv.includes('--check'); + const remote = process.argv.includes('--remote'); + const root = process.cwd(); + const outPath = path.join(root, MANIFEST_PATH); if (check) { - const current = fs.existsSync(outPath) ? fs.readFileSync(outPath, 'utf8') : ''; - if (current !== json) { - console.error('[manifest] STALE — run `npm run screenshots:manifest` and commit'); + const problems = checkManifest(root); + if (problems.length) { + console.error(`[manifest] INVALID:\n - ${problems.join('\n - ')}`); process.exitCode = 1; - } else { - console.log('[manifest] up to date'); + return; + } + const manifest = JSON.parse(fs.readFileSync(outPath, 'utf8')) as Manifest; + console.log(`[manifest] ok — ${manifest.screenshots.length} screenshots across engines`); + if (remote) { + const store = storeFromEnv(); + if (!store) { + console.error(`[manifest] --remote needs credentials: set ${missingEnv().join(', ')}`); + process.exitCode = 2; + return; + } + const { verifyBaselines } = await import('./r2-sync'); + const missing = await verifyBaselines(root, store); + if (missing.length) { + console.error(`[manifest] ${missing.length} hash(es) missing in R2:\n ${missing.join('\n ')}`); + process.exitCode = 1; + } else { + console.log('[manifest] every hash present in R2'); + } } return; } + + // Regeneration path: requires the cache tree (an absent tree would silently + // produce an empty manifest and disable removed-screenshot detection). + if (listEngineKeys(path.join(root, BASELINE_ROOT)).length === 0) { + console.error('[manifest] baseline cache is empty — run `npm run screenshots:fetch` first (or promote a run)'); + process.exitCode = 1; + return; + } + const json = manifestJson(root); fs.writeFileSync(outPath, json); - console.log(`[manifest] wrote ${MANIFEST_PATH}`); + const count = (JSON.parse(json) as Manifest).screenshots.length; + console.log(`[manifest] wrote ${MANIFEST_PATH} (${count} screenshots)`); } -if (require.main === module) main(); +if (require.main === module) { + main().catch((e) => { + console.error(`[manifest] ${(e as Error).message}`); + process.exitCode = 1; + }); +} diff --git a/tests/tools/screenshots/promote.ts b/tests/tools/screenshots/promote.ts index 3b64da5..d731043 100644 --- a/tests/tools/screenshots/promote.ts +++ b/tests/tools/screenshots/promote.ts @@ -3,10 +3,17 @@ * * CI's x86 render is the source of truth. This pulls a CI run's screenshots * (`gh run download`) — or a local dir via --from — and, for each one, overwrites - * the committed baseline ONLY when the decoded pixels differ beyond the per-engine - * floor. Unchanged baselines are left byte-identical (never re-encoded), so git - * sees no churn. New shots are added; baselines with no render are reported as - * removal candidates and only deleted with --prune. + * the cached baseline ONLY when the decoded pixels differ beyond the per-engine + * floor. Unchanged baselines keep their bytes (never re-encoded), so their hash — + * and therefore the manifest — sees no churn. New shots are added; baselines with + * no render are reported as removal candidates and only dropped with --prune. + * + * Baselines live in a private R2 bucket (content-addressed; see r2-store.ts). + * The flow is: sync the local cache from the committed manifest → build/apply + * the plan locally → upload the updated/added bytes to R2 → regenerate the + * manifest. Only the manifest diff is committed; R2 objects are immutable and + * never deleted (--prune removes the manifest entry, old commits still resolve). + * Needs the READ-WRITE credential pair (see tools/screenshots/README.md). * * CLI (from tests/): * tsx tools/screenshots/promote.ts --run [--repo owner/repo] [--prune] [--dry-run] @@ -19,8 +26,10 @@ import { execFileSync } from 'child_process'; import { BASELINE_ROOT, MANIFEST_PATH, floorFor, isIgnored, listEngineKeys, splitKey, type Manifest } from './config'; import { writeManifest } from './gen-manifest'; import { diffImages, loadPng } from './image-ops'; +import { hashBytes, missingEnv, storeFromEnv, type R2Store } from './r2-store'; +import { loadManifestV2, pool, pullBaselines } from './r2-sync'; -/** key (`/`) → absolute committed baseline path. */ +/** key (`/`) → absolute cached baseline path. */ function baselineIndex(root: string): Map { const abs = path.join(root, BASELINE_ROOT); const index = new Map(); @@ -84,11 +93,11 @@ function buildPlan(root: string, renderDir: string, manifest?: Manifest): { plan plan.updated.push(key); actions.push(() => fs.copyFileSync(src, existing)); // verbatim bytes, no re-encode → no churn } else { - plan.unchanged.push(key); // leave the committed file untouched + plan.unchanged.push(key); // leave the cached file untouched } } - // Removal candidates: a committed baseline the manifest expects but this render didn't produce. + // Removal candidates: a manifest-listed baseline this render didn't produce. for (const [key, abs] of baselines) { if (rendered.has(key)) continue; const { engine, name } = splitKey(key); @@ -101,6 +110,16 @@ function buildPlan(root: string, renderDir: string, manifest?: Manifest): { plan return { plan, apply: () => actions.forEach((a) => a()) }; } +/** Upload the applied updated/added baselines to R2 (skip-if-exists per hash). */ +async function uploadApplied(root: string, store: R2Store, keys: string[]): Promise { + let uploaded = 0; + await pool(keys, 8, async (key) => { + const bytes = fs.readFileSync(path.join(root, BASELINE_ROOT, key)); + if ((await store.put(hashBytes(bytes), bytes)) === 'uploaded') uploaded++; + }); + return uploaded; +} + function parseArgs(argv: string[]): Record { const out: Record = {}; for (let i = 0; i < argv.length; i++) { @@ -114,7 +133,7 @@ function parseArgs(argv: string[]): Record { return out; } -function main(): void { +async function main(): Promise { const args = parseArgs(process.argv.slice(2)); const root = process.cwd(); if (!args.run && !args.from) { @@ -122,6 +141,24 @@ function main(): void { process.exitCode = 2; return; } + // Fail fast BEFORE downloading anything: a promote that can't upload would + // otherwise leave the manifest referencing hashes that don't exist in R2. + const store = storeFromEnv(); + if (!store) { + console.error(`[promote] R2 read-write credentials required: set ${missingEnv().join(', ')}`); + process.exitCode = 2; + return; + } + // The local tree is a cache — sync it to the committed manifest so the plan + // diffs against exactly what the manifest pins (a stale/absent cache would + // otherwise misreport adds/updates). + if (loadManifestV2(root)) { + const { downloaded, cached, deleted } = await pullBaselines(root, store); + console.log(`[promote] cache synced: downloaded=${downloaded} cached=${cached} deleted=${deleted}`); + } else { + console.warn(`[promote] ${MANIFEST_PATH} is not v2 — skipping cache sync (pre-migration tree?)`); + } + const renderDir = args.from ? (args.from as string) : downloadRun(args.run as string, args.repo as string); const manifest = loadManifest(root); const { plan, apply } = buildPlan(root, renderDir, manifest); @@ -135,18 +172,29 @@ function main(): void { for (const n of plan.removedCandidates) console.log(` REMOVE? ${n}${args.prune ? ' (pruning)' : ' (use --prune to delete)'}`); if (args.dryRun) { - console.log('[promote] dry-run — no files written'); + console.log('[promote] dry-run — no files written, nothing uploaded'); return; } apply(); if (args.prune) { const baselines = baselineIndex(root); + // Prune drops the local file (and, below, the manifest entry). The R2 + // object is deliberately kept — old commits must still resolve it. for (const n of plan.removedCandidates) fs.rmSync(baselines.get(n)!, { force: true }); } + // Upload BEFORE regenerating the manifest: a failure here leaves at worst an + // orphaned CAS object, never a committed manifest pointing at a missing hash. + const uploaded = await uploadApplied(root, store, [...plan.updated, ...plan.added]); + console.log(`[promote] uploaded ${uploaded} object(s) to R2`); // Keep the manifest in lockstep with the baseline tree — a stale manifest silently // disables removed-screenshot detection for anything added after the last regen. writeManifest(root); - console.log('[promote] done (manifest regenerated) — review `git status` and commit'); + console.log(`[promote] done — commit the ${MANIFEST_PATH} diff (the only git-visible output)`); } -if (require.main === module) main(); +if (require.main === module) { + main().catch((e) => { + console.error(`[promote] ${(e as Error).message}`); + process.exitCode = 1; + }); +} diff --git a/tests/tools/screenshots/r2-store.ts b/tests/tools/screenshots/r2-store.ts new file mode 100644 index 0000000..6e7a469 --- /dev/null +++ b/tests/tools/screenshots/r2-store.ts @@ -0,0 +1,131 @@ +/** + * Minimal S3 client for the content-addressed screenshot-baseline bucket. + * + * Baselines live in a PRIVATE R2 bucket as immutable objects keyed by content + * hash (`sha256/.png`); the committed manifest (screenshot-manifest.json) + * maps `/` to a hash, so any git commit resolves its exact + * baselines. Auth is a bucket-scoped S3 keypair — read-only in CI, read-write + * for devs (promote) — via the env vars in config.ts R2_ENV; see this + * directory's README for where to get credentials. + * + * aws4fetch does the SigV4 signing (dependency-free; region is always "auto" + * on R2). Objects are never deleted here — a baseline prune only edits the + * manifest, old hashes stay resolvable for old commits. + */ +import * as crypto from 'crypto'; +import * as fs from 'fs'; +import { AwsClient } from 'aws4fetch'; +import { R2_DEFAULT_BUCKET, R2_ENV, R2_KEY_PREFIX } from './config'; + +export function hashBytes(bytes: Buffer): string { + return crypto.createHash('sha256').update(bytes).digest('hex'); +} + +export function hashFile(file: string): string { + return hashBytes(fs.readFileSync(file)); +} + +const RETRIES = 3; +const BACKOFF_MS = 2000; + +export class R2Store { + private client: AwsClient; + private base: string; + + constructor(opts: { endpoint: string; bucket: string; accessKeyId: string; secretAccessKey: string }) { + // aws4fetch has its own 5xx retry loop; disable it (retries: 0) so the + // backoff policy lives in exactly one place (fetchWithRetry below). + this.client = new AwsClient({ + accessKeyId: opts.accessKeyId, + secretAccessKey: opts.secretAccessKey, + region: 'auto', + service: 's3', + retries: 0, + }); + this.base = `${opts.endpoint.replace(/\/+$/, '')}/${opts.bucket}`; + } + + private url(hash: string): string { + return `${this.base}/${R2_KEY_PREFIX}${hash}.png`; + } + + /** Signed fetch, retrying network errors and 5xx — an R2 blip shouldn't fail a whole sync. */ + private async fetchWithRetry(url: string, init: RequestInit): Promise { + let lastErr: unknown; + for (let attempt = 1; attempt <= RETRIES; attempt++) { + try { + const res = await this.client.fetch(url, init); + if (res.status < 500 && res.status !== 429) return res; + lastErr = new Error(`HTTP ${res.status}`); + await res.arrayBuffer().catch(() => undefined); // drain before retrying + } catch (e) { + lastErr = e; + } + if (attempt < RETRIES) await new Promise((r) => setTimeout(r, BACKOFF_MS * attempt)); + } + throw new Error(`request failed after ${RETRIES} attempts: ${(lastErr as Error).message}`); + } + + async exists(hash: string): Promise { + const res = await this.fetchWithRetry(this.url(hash), { method: 'HEAD' }); + if (res.status === 200) return true; + if (res.status === 404) return false; + throw new Error(`HEAD ${R2_KEY_PREFIX}${hash}.png → HTTP ${res.status}`); + } + + /** Download one object; the key IS the sha256, so every download is integrity-checked. */ + async get(hash: string): Promise { + const res = await this.fetchWithRetry(this.url(hash), { method: 'GET' }); + if (res.status === 404) throw new Error(`missing object ${R2_KEY_PREFIX}${hash}.png`); + if (res.status !== 200) throw new Error(`GET ${R2_KEY_PREFIX}${hash}.png → HTTP ${res.status}`); + const bytes = Buffer.from(await res.arrayBuffer()); + const actual = hashBytes(bytes); + if (actual !== hash) throw new Error(`corrupt download for ${hash} (received sha256 ${actual})`); + return bytes; + } + + /** Upload one object unless already present (same-hash PUTs are idempotent regardless). */ + async put(hash: string, bytes: Buffer): Promise<'uploaded' | 'exists'> { + if (await this.exists(hash)) return 'exists'; + const res = await this.fetchWithRetry(this.url(hash), { + method: 'PUT', + // Buffer is a Uint8Array and a valid fetch body; the cast bridges + // @types/node's Buffer vs DOM BufferSource generics. + body: bytes as unknown as BodyInit, + headers: { 'content-type': 'image/png' }, + }); + if (res.status !== 200) throw new Error(`PUT ${R2_KEY_PREFIX}${hash}.png → HTTP ${res.status}`); + await res.arrayBuffer().catch(() => undefined); + return 'uploaded'; + } +} + +let envFileLoaded = false; +/** Best-effort load of ./.env (gitignored) so a dev's keypair can live in a file + * instead of the shell. Node ≥20.12 built-in; CI is unaffected (no .env there). */ +function ensureEnvFileLoaded(): void { + if (envFileLoaded) return; + envFileLoaded = true; + try { + if (fs.existsSync('.env')) process.loadEnvFile('.env'); + } catch { + /* unreadable/malformed .env → shell env only */ + } +} + +/** The required R2 env vars that are currently unset (bucket has a default, so it's not required). */ +export function missingEnv(): string[] { + ensureEnvFileLoaded(); + return [R2_ENV.endpoint, R2_ENV.accessKeyId, R2_ENV.secretAccessKey].filter((v) => !process.env[v]); +} + +/** Build a store from the environment (shell vars, falling back to ./.env), or null when credentials are absent. */ +export function storeFromEnv(): R2Store | null { + if (missingEnv().length) return null; + return new R2Store({ + endpoint: process.env[R2_ENV.endpoint]!, + bucket: process.env[R2_ENV.bucket] || R2_DEFAULT_BUCKET, + accessKeyId: process.env[R2_ENV.accessKeyId]!, + secretAccessKey: process.env[R2_ENV.secretAccessKey]!, + }); +} diff --git a/tests/tools/screenshots/r2-sync.ts b/tests/tools/screenshots/r2-sync.ts new file mode 100644 index 0000000..cccfe38 --- /dev/null +++ b/tests/tools/screenshots/r2-sync.ts @@ -0,0 +1,177 @@ +/** + * Sync the local baseline-screenshots/ cache with the R2 CAS bucket. + * + * The committed manifest (screenshot-manifest.json) is the source of truth; + * baseline-screenshots/ is a gitignored local cache materialized from it. + * + * CLI (from tests/): + * tsx tools/screenshots/r2-sync.ts --pull # manifest → local tree (CI fetch step + local gate) + * tsx tools/screenshots/r2-sync.ts --push # upload manifest entries missing in R2 (seeding) + * tsx tools/screenshots/r2-sync.ts --verify # HEAD every manifest hash, exit 1 on any miss + * + * --pull without credentials (or with a pre-migration manifest) warns and + * exits 0, so secretless callers of the reusable CI workflow (release.yml, + * pcbjam deploy-staging.yml, fork PRs) stay green — compare.ts then skips its + * gate for the same reason. With credentials, any 404/corrupt object is + * collected and the run exits 1. + */ +import * as fs from 'fs'; +import * as path from 'path'; +import { BASELINE_ROOT, MANIFEST_PATH, MANIFEST_VERSION, listEngineKeys, type Manifest, type ManifestEntry } from './config'; +import { R2Store, hashFile, missingEnv, storeFromEnv } from './r2-store'; + +const CONCURRENCY = 16; + +/** Parse the committed manifest if it is the R2-backed v2 format, else null. */ +export function loadManifestV2(root: string): Manifest | null { + const p = path.join(root, MANIFEST_PATH); + if (!fs.existsSync(p)) return null; + try { + const m = JSON.parse(fs.readFileSync(p, 'utf8')) as Manifest; + return m.version === MANIFEST_VERSION ? m : null; + } catch { + return null; + } +} + +/** Run `fn` over `items` with at most `limit` in flight. */ +export async function pool(items: T[], limit: number, fn: (item: T) => Promise): Promise { + let i = 0; + const workers = Array.from({ length: Math.min(limit, items.length) }, async () => { + while (i < items.length) await fn(items[i++]); + }); + await Promise.all(workers); +} + +/** + * Materialize the manifest's baselines into the local cache tree. Files already + * hashing correctly are skipped (idempotent — a warm cache or restored + * actions/cache costs nothing), writes are atomic (tmp + rename), and local + * PNGs the manifest no longer lists are deleted so a stale branch switch can't + * leave ghost baselines for compare.ts to gate against. + */ +export async function pullBaselines( + root: string, + store: R2Store +): Promise<{ downloaded: number; cached: number; deleted: number }> { + const manifest = loadManifestV2(root); + if (!manifest) throw new Error(`no v2 ${MANIFEST_PATH} — nothing to pull`); + const base = path.join(root, BASELINE_ROOT); + const wanted = new Map(); + for (const e of manifest.screenshots) wanted.set(`${e.engine}/${e.name}`, e); + + let downloaded = 0; + let cached = 0; + const errors: string[] = []; + await pool([...wanted.values()], CONCURRENCY, async (e) => { + const dest = path.join(base, e.engine, e.name); + if (fs.existsSync(dest) && hashFile(dest) === e.sha256) { + cached++; + return; + } + try { + const bytes = await store.get(e.sha256); + fs.mkdirSync(path.dirname(dest), { recursive: true }); + const tmp = `${dest}.tmp-${process.pid}`; + fs.writeFileSync(tmp, bytes); + fs.renameSync(tmp, dest); + downloaded++; + } catch (err) { + errors.push(`${e.engine}/${e.name}: ${(err as Error).message}`); + } + }); + + let deleted = 0; + for (const key of listEngineKeys(base)) { + if (wanted.has(key)) continue; + fs.rmSync(path.join(base, key), { force: true }); + deleted++; + } + + if (errors.length) throw new Error(`${errors.length} object(s) failed:\n ${errors.join('\n ')}`); + return { downloaded, cached, deleted }; +} + +/** Upload every manifest entry's local file to R2 (skipping hashes already present). */ +export async function pushBaselines(root: string, store: R2Store): Promise<{ uploaded: number; existing: number }> { + const manifest = loadManifestV2(root); + if (!manifest) throw new Error(`no v2 ${MANIFEST_PATH} — run \`npm run screenshots:manifest\` first`); + const base = path.join(root, BASELINE_ROOT); + let uploaded = 0; + let existing = 0; + const errors: string[] = []; + await pool(manifest.screenshots, CONCURRENCY, async (e) => { + const file = path.join(base, e.engine, e.name); + try { + if (!fs.existsSync(file)) throw new Error('local file missing'); + const bytes = fs.readFileSync(file); + const hash = hashFile(file); + if (hash !== e.sha256) throw new Error(`local sha256 ${hash} ≠ manifest — regenerate the manifest`); + if ((await store.put(hash, bytes)) === 'uploaded') uploaded++; + else existing++; + } catch (err) { + errors.push(`${e.engine}/${e.name}: ${(err as Error).message}`); + } + }); + if (errors.length) throw new Error(`${errors.length} upload(s) failed:\n ${errors.join('\n ')}`); + return { uploaded, existing }; +} + +/** HEAD every manifest hash; returns the missing keys. */ +export async function verifyBaselines(root: string, store: R2Store): Promise { + const manifest = loadManifestV2(root); + if (!manifest) throw new Error(`no v2 ${MANIFEST_PATH}`); + const missing: string[] = []; + await pool(manifest.screenshots, CONCURRENCY, async (e) => { + if (!(await store.exists(e.sha256))) missing.push(`${e.engine}/${e.name} (${e.sha256})`); + }); + return missing; +} + +async function main(): Promise { + const mode = process.argv.find((a) => a === '--pull' || a === '--push' || a === '--verify'); + if (!mode) { + console.error('usage: r2-sync.ts --pull | --push | --verify'); + process.exitCode = 2; + return; + } + const root = process.cwd(); + + if (mode === '--pull' && !loadManifestV2(root)) { + console.log(`[r2-sync] ${MANIFEST_PATH} is not the R2-backed v2 format — nothing to fetch`); + return; + } + const store = storeFromEnv(); + if (!store) { + if (mode === '--pull') { + console.log(`[r2-sync] R2 credentials unset (${missingEnv().join(', ')}) — skipping baseline fetch`); + return; // exit 0: secretless CI callers stay green + } + console.error(`[r2-sync] R2 credentials required for ${mode}: set ${missingEnv().join(', ')}`); + process.exitCode = 2; + return; + } + + if (mode === '--pull') { + const { downloaded, cached, deleted } = await pullBaselines(root, store); + console.log(`[r2-sync] pull done: downloaded=${downloaded} cached=${cached} deleted=${deleted}`); + } else if (mode === '--push') { + const { uploaded, existing } = await pushBaselines(root, store); + console.log(`[r2-sync] push done: uploaded=${uploaded} already-present=${existing}`); + } else { + const missing = await verifyBaselines(root, store); + if (missing.length) { + console.error(`[r2-sync] ${missing.length} manifest hash(es) MISSING in R2:\n ${missing.join('\n ')}`); + process.exitCode = 1; + } else { + console.log('[r2-sync] verify ok — every manifest hash is present in R2'); + } + } +} + +if (require.main === module) { + main().catch((e) => { + console.error(`[r2-sync] ${(e as Error).message}`); + process.exitCode = 1; + }); +} diff --git a/tests/wizard-04-finish-headless.png b/tests/wizard-04-finish-headless.png deleted file mode 100644 index 0b15aa0..0000000 Binary files a/tests/wizard-04-finish-headless.png and /dev/null differ