Repository navigation
Conversation
…in parallel Add `--renderer web` to the conformance tool. Each page is rendered by the browser stack (pdf-web on a Canvas 2D plus its annotation layer) in the installed headless Chrome, driven over the DevTools protocol, and compared with PDFium's render of page content, annotations and form fields. The web pass writes its own report (`<corpus>-web`) with its own baseline, viewer and issues; its signatures carry a `[web]` tag so they cluster apart from the Skia renderer's. CI renders the PDFium corpus with both renderers on main. `run` now reads every document first and then schedules each page as its own job, so the pages of long documents render side by side. `render` takes repeated `--page`, `--all-pages` and `--jobs`, sharing one browser. The web-canvas example gains `render_fitted` and an optional password. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conformance readsDocuments that Safe-PDF reads differently from the base commit, compared with PDFium. A read pdf.js corpus1009 documents compared with Improvements
840 documents of the PDFium corpus read as on Details are in the job summaries of the workflow run. Rerun a case locally with |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cargo conformance run --renderer webrenders each page with the browser stack (pdf-webon a Canvas 2D plus its annotation layer) in the installed headless Chrome, driven over the DevTools protocol. It compares the result with PDFium's render of page content, annotations and form fields. Nothing is downloaded: it uses the system Chrome or Chromium (--chrome/CHROME_PATH).target/conformance/<corpus>-web/with its own baseline, Pages viewer (/conformance/pdfium-web/) and issues. Its signatures carry[web]after the status, so they never merge with or close Skia issues.issuesandreprotake report names such as--corpus pdfium-web.runnow reads every document first, then schedules each (document, page) as its own job, so the pages of long documents render side by side. The Skia pass benefits too.render. Takes repeated--page,--all-pagesand--jobs, sharing one browser. It writes one combinedsummary.md, andreport.jsonis now an array of page results.main, the PDFium corpus is rendered by both renderers (a matrix entry with the runner's preinstalled Chrome,wasm-bindgen-cli0.2.100 andCONFORMANCE_CHROME_NO_SANDBOX=1), andpdfium-webis filed and published.render_fitted(page, canvas, width, height)for exact pixel sizes, and an optional password in theWebDocumentconstructor.tungstenite(TLS off) andbase64inpdf-conformance.Notes
baselines/pdfium-web.jsonyet, so the first web runs only report. Record one with the workflow'sacceptinput.Test plan
cargo fmt --checkcargo check --workspace --all-targetscargo clippy -p pdf-conformance --all-targets -- -D warningscargo clippy -p web-canvas-example --target wasm32-unknown-unknown -- -D warningscargo xtask web-canvas --profile debugcargo conformance render <pdf> --renderer web: one page, run locally by the authorcargo conformance render <pdf> --all-pages --renderer webcargo conformance run --corpus pdfium --filter <multi-page case>:results.jsonstatuses and signatures matchmainmain: thepdfium, webjob completes and publishespdfium-web🤖 Generated with Claude Code