Skip to content

feat(fingerprints): add BrowserFamily/Platform enums, OS-tagged profi…#17

Merged
smeinecke merged 11 commits intomainfrom
feat/add-fingerprinting
Apr 4, 2026
Merged

feat(fingerprints): add BrowserFamily/Platform enums, OS-tagged profi…#17
smeinecke merged 11 commits intomainfrom
feat/add-fingerprinting

Conversation

@smeinecke
Copy link
Copy Markdown
Owner

…les, and CI capture pipeline

  • Add BrowserFamily and Platform enums for typed registry lookups
  • Add FingerprintRegistry.by_family(family, platform=None), latest(), random() with optional family/platform filters; refactor shared _candidates() helper
  • Rename all built-in profiles in fingerprints.json with platform suffix derived from user-agent (_win/_linux/_mac/_android); update _PROFILE_EXPORTS accordingly
  • Add _platform_suffix() to capture script; all new Playwright captures get OS-tagged names (e.g. chrome_146_0_0_0_linux, chrome_146_0_0_0_win)
  • Add Android ADB capture mode (--android-only) and chrome_*_android profiles
  • Add GitHub Actions fingerprint-tests workflow: Playwright capture across Linux/macOS/Windows, Android emulator capture, fingerprint replication tests
  • Add make fingerprint-tests target for local end-to-end runs
  • Add full unit test coverage for new enum/registry methods (TestBrowserFamilyAndPlatform)

Fixes #

Changes proposed in this pull request:

Before submitting

  • I've read and followed all steps in the Making a pull request
    section of the CONTRIBUTING docs.
  • I've updated or added any relevant docstrings following the syntax described in the
    Writing docstrings section of the CONTRIBUTING docs.
  • If this PR fixes a bug, I've added a test that will fail without my fix.
  • If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

  • All GitHub Actions jobs for my pull request have passed.

@smeinecke smeinecke force-pushed the feat/add-fingerprinting branch 2 times, most recently from 2747210 to c5cb048 Compare March 22, 2026 17:18
Comment thread scripts/capture_browser_fingerprints.py Fixed
Comment thread scripts/capture_browser_fingerprints.py Dismissed
@smeinecke smeinecke force-pushed the feat/add-fingerprinting branch from a842188 to 563e5a9 Compare March 22, 2026 21:56
…les, and CI capture pipeline

- Add BrowserFamily and Platform enums for typed registry lookups
- Add FingerprintRegistry.by_family(family, platform=None), latest(), random()
  with optional family/platform filters; refactor shared _candidates() helper
- Rename all built-in profiles in fingerprints.json with platform suffix derived
  from user-agent (_win/_linux/_mac/_android); update _PROFILE_EXPORTS accordingly
- Add _platform_suffix() to capture script; all new Playwright captures get
  OS-tagged names (e.g. chrome_146_0_0_0_linux, chrome_146_0_0_0_win)
- Add Android ADB capture mode (--android-only) and chrome_*_android profiles
- Add GitHub Actions fingerprint-tests workflow: Playwright capture across
  Linux/macOS/Windows, Android emulator capture, fingerprint replication tests
- Add make fingerprint-tests target for local end-to-end runs
- Add full unit test coverage for new enum/registry methods (TestBrowserFamilyAndPlatform)
pw.android is a JS-only Playwright API not exposed in the Python SDK.
Replace with:
- subprocess.run(["adb", "devices"]) to discover connected devices
- adb shell am start to launch Chrome on the device
- adb forward tcp:9222 localabstract:chrome_devtools_remote for CDP
- pw.chromium.connect_over_cdp() + Security.setIgnoreCertificateErrors
  via CDP session to navigate and capture the fingerprint

Also switch the CI emulator target from "default" to "google_apis" since
the default AOSP image does not include Chrome.
…container

Avoids re-downloading Chrome (~200 MB) on every run and the headed-Chrome
hang inside xvfb-run. The host runner already has chromium/chrome/firefox/
webkit installed from the previous Install step. TrackMe is port-mapped to
localhost:8443 so --url https://localhost:8443 reaches it directly.
@smeinecke smeinecke force-pushed the feat/add-fingerprinting branch from 5f73df2 to d0d7a66 Compare March 24, 2026 10:32
- actions/checkout@v4 → v6
- actions/setup-python@v5 → v6  
- actions/setup-go@v5 → v6
- actions/upload-artifact@v4 → v7
- actions/download-artifact@v4 → v8
@smeinecke smeinecke merged commit 1bd5edc into main Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants