Fidelity protection suite

Cloak Browser

Verify browser environment consistency before it breaks a QA report, preset, or CI run.

Scan browser-visible state, compare IP, locale, timezone, WebRTC, and runtime signals, then export a coherent Playwright preset.

Scan system signals Map timezone and geo Fix first Generate safe presets
qa-run.cloak-browser score >= 90
95
Structure aligned

Locale, timezone, device, and route signals describe one profile.

Locale
en-US
Timezone
America/New_York
Network
GB / ASN
CI
fail-under 90
use: {
  locale: "en-US",
  timezoneId: "America/New_York",
  hasTouch: false
}

Common QA jobs

Jump straight to the browser consistency failure you need to prove.

Interactive diagnostic dashboard

Advanced browser signal auditor

QA scenario controls

Optional checks run only after consent and use the current browser session.

Scanner is ready.

Data use: the scan reads browser-visible signals in this tab and calls the edge IP endpoint. JSON download is local. Share stores a redacted report for seven days by default and removes raw IP from stored report JSON.

Audit scan engine idle

Start a scan to inspect browser-visible signals, edge geography, language, timezone, storage, rendering, and optional WebRTC state.

Deterministic preset generator

Generate coherent testing profiles for Playwright

Preset pixel-8-us
Manual parameter overrides
412 x 915Viewport
2.625xDPR
en-USLocale
America/New_YorkTimezone
USmobileandroidchromiumus
Manual overrides affect generated config, Node, Python, and JSON exports. The CI recipe keeps the saved preset ID so repository gates stay reviewable.
import { defineConfig } from '@playwright/test';

export default defineConfig({
  projects: [
    {
      name: "pixel-8-us",
      use: {
        userAgent: "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
        viewport: {"width":412,"height":915},
        screen: {"width":412,"height":915},
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true,
        locale: "en-US",
        timezoneId: "America/New_York",
        permissions: ["geolocation"],
        colorScheme: "light",
        geolocation: {"latitude":40.7128,"longitude":-74.006}
      }
    }
  ]
});

Exports are deterministic; the CI recipe uses a 90-point fail-under threshold.

Copy preset export

Fingerprint comparison matrix

Current browser vs. target preset

Awaiting scan

Compare the latest real scan with the selected preset before copying the generated Playwright configuration.

Preset alignment comparison
MetricObserved browserTarget presetAlignment
Timezone IDRun a scanAmerica/New_YorkPendingThe matrix links to browser telemetry after the scanner completes.
Locale setupRun a scanen-USPendingLocale comparison needs the active browser language list.
Viewport / DPRRun a scan412 x 915 / 2.625xPendingViewport and DPR are compared from the latest scan.
Network regionRun a scanUSPendingNetwork comparison uses the edge IP response when available.

CI gate preview

Deterministic threshold check

Awaiting scan
--fail-under 90

$ pnpm exec browser-fidelity audit "$BROWSER_FIDELITY_TARGET_URL" --preset pixel-8-us --fail-under 90 --json

Run a browser scan to preview the threshold outcome for the selected preset.

Preset: Pixel 8 - US English