V8Log Forensics
May 31, 2026 · View on GitHub
Use V8Log only for authorized privacy validation sessions.
Overview
V8Log is a gated, privacy-focused browser-runtime forensics mode that records calls into local JSONL files. It is intended for short, controlled validation sessions where teams need evidence of how page scripts collect browser signals.
This is useful when source review is incomplete because a page uses packed JavaScript, VM-style bundles, or WebAssembly. V8Log records the runtime call sequence, arguments, return previews, frame context, and event order so the collection behavior can be reviewed directly.
V8Log does not change normal browsing behavior when disabled. Release use is gated by profile entitlement and build policy.
For background on browser fingerprinting as a privacy issue, see Fingerprint Privacy.
Quick Start
Create a writable directory and launch BotBrowser with V8Log enabled:
mkdir -p /tmp/botbrowser-v8log
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-v8-log=sample \
--bot-v8-log-dir=/tmp/botbrowser-v8log \
--user-data-dir="$(mktemp -d)" \
"https://example.com"
For deeper validation review, use full only when requested:
--bot-v8-log=full
--bot-v8-log-dir=/tmp/botbrowser-v8log
Disable V8Log explicitly with:
--bot-v8-log=none
Modes
| Mode | Use |
|---|---|
none | V8Log disabled. This is the normal default. |
sample | Reduced evidence trace for most validation reproductions. |
full | Fuller evidence trace for short, guided reproductions. |
Use the shortest page flow that reproduces the behavior. Evidence files can grow quickly on complex pages.
Sample JSONL
An interactive sample is available in the V8Log Viewer.
The viewer is preloaded with a short public-page capture. It shows how V8Log connects call expressions, arguments, return previews, frame context, API group, and event order.
Playwright Example
import { chromium } from "playwright-core";
const browser = await chromium.launch({
executablePath: process.env.BOTBROWSER_EXEC_PATH,
headless: true,
args: [
`--bot-profile=${process.env.BOT_PROFILE_PATH}`,
"--bot-v8-log=sample",
"--bot-v8-log-dir=/tmp/botbrowser-v8log",
],
});
const page = await browser.newPage();
await page.goto("https://example.com");
await page.waitForTimeout(5000);
await browser.close();
Troubleshooting
| Problem | Solution |
|---|---|
| No files are written | Confirm --bot-v8-log is not none, the directory exists, and the browser process can write to it. |
| Files are too large | Use sample, shorten the reproduction, and close the browser immediately after the target behavior appears. |
| V8Log does not start in release | Confirm the profile and subscription include V8Log support. |
Related Documentation
Legal Disclaimer & Terms of Use • Responsible Use Guidelines. BotBrowser is for authorized fingerprint protection and privacy research only.