Runs the original IPQS pixel under emulated profiles. Stubs network. Captures hard signals (dtr, dtt, dtll, dtoo, fp*, webgl, audio, canvas, webrtc) + full variables. Produces structured oracle bundles for profile.render.golden and Verifier tests.
Rule 11 / Rule 12 compliant
Emulation Profile
Influence navigator, screen & environment before script execution
These are applied via getters before script load (partial in locked browsers; works for most collectors).
Import real payload (paste --data-raw from browser devtools on the real site):
This will populate variables + oracles directly from a real request (great for goldens when extraction is tricky).
Capture Controls
Ready. Click RUN CAPTURE to load patched IPQS script and intercept.
This is the form-urlencoded body the Rust port produces for the captured profile + oracles + behavioral data (GFP order, x64hash128 on ~~~ join for dtoo, IndexMap serialization, etc.). Matches the collector exactly.
Every Field: What it is + How it is generated (current Rust port)
Intercepted Network
Populated by event listeners attached inside the original script (dtcu, dtcw, dtcx, etc). Use the Interaction Pad.
Using the Oracle Bundle with Rust goldens / profile.render.golden
Download the Oracle Bundle JSON.
Place values into output/goldens/v0.1.2/ (or tests/goldens/) under appropriate profile.
For render-dependent: put "golden_dtr", webgl hashes, audio samples, fonts into profile.render.golden (see rust/src/profile/render.rs).
Update or add a new *.json + *.payload for the Verifier + E2E.
Run cargo test --test e2e_equivalence --features strict to confirm no drift.
Example profile snippet (YAML for tests/profiles/):
The bundle also contains raw_variables (full Storage.Variables) and full_payload_preview that can be directly diffed against Rust generate_payload(profile) output.
capture-worker • served via Cloudflare Pages (wrangler pages deploy). Pure client-side capture + stub. No data leaves your browser except what you download. Designed for generating exact oracles for the pure-Rust port (Rule 1, 2, 11, 12).
Pre/post E2E always run on main rust tests. Only edits inside capture-worker/ + report.