Skip to main content

🛡️ BrowserMulti — Chromium Core & SDK

Custom Chromium build with native C++ source patches and a Python Playwright SDK.

PyPI Version PyPI Downloads Chromium Version Windows x64 License

BrowserMulti is an experimental Chromium distribution for authorized browser automation, compatibility testing, and fingerprint research. Changes apply at Chromium C++ source level across Blink and V8; this project does not rely on JavaScript injection.

🚀 Key Highlights

  • Native C++ engine patches: User-Agent and Client Hints branding, navigator.webdriver, plugin/mime-type defaults, and selected V8 Inspector behavior.
  • Playwright and CDP integration: Persistent contexts, profiles, proxy configuration, and Chrome DevTools Protocol workflows.
  • Static non-component runtime: is_component_build = false produces a static Chromium layout centered on chrome.dll, with Windows assembly manifest 152.0.7977.54.manifest.
  • Smooth UI input helpers: Optional cubic Bézier pointer interpolation and per-character typing delays for authorized UI testing. These helpers are not a security control and do not guarantee human-like behavior or bypass detection.
  • Native network stack: Chromium SOCKS5, HTTP/HTTPS proxy, proxy authentication, and TLS networking support.
  • Automated upstream pipeline: Stable version detection, single-tag fetch, dependency sync, separate Chromium/V8 patches, GN regeneration, build, benchmark, and packaging.

📊 Benchmark Results — v152.0.7977.54

Results from the project benchmark suite run against an extracted BrowserMulti binary. Results are environment- and profile-dependent; they are not guarantees for other sites, networks, or automation setups.

Test Result Detail
Google reCAPTCHA v3 PASS Score: 0.9 in recorded run
Cloudflare Turnstile PASS Resolved in recorded run
Sannysoft Detection Suite PASS WebDriver missing, Chrome present, Plugins=5
TLS fingerprint PASS JA4: t13d1517h2_8daaf6152771_cb7bf5808d99; HTTP/2
DeviceAndBrowserInfo PASS isBot=false in recorded run

Recorded total: 5/5 benchmark checks passed.

Direct CLI smoke testing on the development Windows host remained sensitive to sandbox token and ACL behavior. See handoff.md for evidence, limitations, and troubleshooting notes.

📦 Installation

Install SDK from PyPI:

pip install browsermulti

Or install the local checkout:

git clone https://github.com/DungDT293/antidetech-browsermulti.git
cd antidetech-browsermulti
pip install -e .

💡 Quick Start — Python Playwright

import asyncio
from browsermulti import launch_persistent_context


async def main():
    context = await launch_persistent_context(
        user_data_dir="./profiles/profile_01",
        headless=False,
        locale="en-US",
        timezone_id="America/New_York",
        enable_smooth_input=True,
        # proxy="socks5://127.0.0.1:1080",
    )
    try:
        page = context.pages[0] if context.pages else await context.new_page()
        await page.goto("https://example.com")
        if hasattr(page, "input_controller"):
            await page.input_controller.move_to(400, 300)
    finally:
        await context.close()


if __name__ == "__main__":
    asyncio.run(main())

Use only against sites and systems where you have authorization. Do not use BrowserMulti to bypass access controls, fraud controls, CAPTCHAs, WAFs, or third-party protections without permission.

🔄 Feature Comparison

Capability Stock Playwright BrowserMulti Core
Chromium source build No Yes
Blink/V8 source patches No Yes
Static x64 build Runtime-dependent is_component_build = false
Python SDK Playwright package browsermulti package
Persistent context Yes Yes
Smooth UI input helper No Optional
Upstream synchronization User-managed PowerShell pipeline

🧩 Repository Structure

Path Purpose
browsermulti/ Python SDK with launcher and UI input helpers
BrowserMulti_chromium_v154.patch Chromium-root Blink, branding, UA, plugin, and search patches
BrowserMulti_v8_v154.patch V8 Inspector patch
auto_sync_and_build.ps1 Stable sync, patch, build, benchmark, and package pipeline
auto_benchmark.js Playwright benchmark suite
handoff.md Architecture notes, failure history, validation status, and lessons
current_version.txt Recorded Stable version
setup.py Python package metadata

🔄 Upstream Synchronization Pipeline

When a new Chrome Stable version is available, review local changes and disk space before running. The pipeline can reset the Chromium checkout with git checkout . and git clean -df.

powershell -ExecutionPolicy Bypass -File ./auto_sync_and_build.ps1

Pipeline stages:

  1. Select newest valid Stable version.
  2. Fetch one version tag.
  3. Sync Chromium dependencies with gclient.bat.
  4. Apply Chromium-root and V8 patches independently.
  5. Regenerate GN files.
  6. Build with Ninja.
  7. Run benchmark suite.
  8. Package runtime files and manifest/XML identity files.

📦 Release Artifact

Current local artifact:

D:\dichchrome\dist\browsermulti-152.0.7977.54-win64.zip
  • Size: 252,757,503 bytes (241.05 MB).
  • Build: Static x64, is_component_build = false.
  • Manifest: 152.0.7977.54.manifest.

Create a GitHub release at:

https://github.com/DungDT293/antidetech-browsermulti/releases/new

  • Tag: v152.0.7977.54
  • Title: BrowserMulti v152.0.7977.54 - Static Release
  • Asset: browsermulti-152.0.7977.54-win64.zip

🏷️ Repository Metadata

Description: Custom Chromium core with native Blink/V8 patches and a Python Playwright SDK for authorized automation testing.

Topics: chromium, playwright, cdp, blink, v8, chromium-build, cpp, browser-automation

📄 License and Notices

This project contains Chromium-derived source and patches. Review Chromium's license, notices, and redistribution requirements before distributing binaries. Project-specific scripts and documentation are MIT-licensed unless stated otherwise.

Metadata

Release files for browsermulti 152.0.7977.65

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for browsermulti 152.0.7977.65
File Size Uploaded
browsermulti-152.0.7977.65.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for browsermulti 152.0.7977.65
File Interpreter ABI Platform
browsermulti-152.0.7977.65-py3-none-any.whl Python 3 none any Details

Total release size: 17.7 kB

Release files / browsermulti-152.0.7977.65.tar.gz

Download URL browsermulti-152.0.7977.65.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7963d89ac14112ae17f1aaa168632ce9e8589d7480c1c516a456dbd4bf555761
BLAKE2b-256 checksum
How to use checksums
d451cc88e1d3523ca0e4502d8a57c5fa8781486f4ee75fde315e8eff0737cc48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.6

Release files / browsermulti-152.0.7977.65-py3-none-any.whl

Download URL browsermulti-152.0.7977.65-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34a9193390a97bc9b1b4104e5af99d6a770d6cea4326b7551eaa709abee26744
BLAKE2b-256 checksum
How to use checksums
405353009769da98b33d174adb940a2a67a87245536134618c9872f73faa6864
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

152.0.7977.65 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page