Skip to content

Commit 6b5a959

Browse files
committed
docs: add 2026-02-18 release notes, cross-link features, update profiles to 145.0.7632.76
1 parent d702ced commit 6b5a959

12 files changed

Lines changed: 154 additions & 53 deletions

ADVANCED_FEATURES.md

Lines changed: 77 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Technical architecture and implementation details behind BotBrowser's fingerprin
88

99
## Capabilities Index
1010

11-
[navigator.webdriver removal](#chrome-behavior-emulation), [main-world isolation](#playwright-puppeteer-integration), [JS hook isolation](#playwright-puppeteer-integration), [Canvas noise](#multi-layer-fingerprint-noise), [WebGL/WebGPU param control](#multi-layer-fingerprint-noise), [Skia anti-alias](#cross-platform-font-engine), [HarfBuzz shaping](#cross-platform-font-engine), [MediaDevices protection](#complete-fingerprint-control), [font list authenticity](#cross-platform-font-engine), [UA congruence](#browser-os-fingerprinting), [custom User-Agent (ENT Tier3)](CLI_FLAGS.md#profile-configuration-override-flags), [per-context proxy (ENT Tier1) geo](CLI_FLAGS.md#enhanced-proxy-configuration), [DNS-through-proxy](#network-fingerprint-control), [active window emulation](#active-window-emulation), [HTTP headers/HTTP2/HTTP3](#chrome-behavior-emulation), [headless parity](#headless-incognito-compatibility), [WebRTC SDP/ICE control](#webrtc-leak-protection), [TLS fingerprint (JA3/JARM)](#network-fingerprint-control), [distributed privacy consistency](#mirror-distributed-privacy-consistency)
11+
[navigator.webdriver removal](#chrome-behavior-emulation), [main-world isolation](#playwright-puppeteer-integration), [JS hook isolation](#playwright-puppeteer-integration), [Canvas noise](#multi-layer-fingerprint-noise), [WebGL/WebGPU param control](#multi-layer-fingerprint-noise), [Skia anti-alias](#cross-platform-font-engine), [HarfBuzz shaping](#cross-platform-font-engine), [MediaDevices protection](#complete-fingerprint-control), [font list authenticity](#cross-platform-font-engine), [UA congruence](#browser-os-fingerprinting), [custom User-Agent (ENT Tier3)](CLI_FLAGS.md#profile-configuration-override-flags), [per-context proxy (ENT Tier1) geo](CLI_FLAGS.md#enhanced-proxy-configuration), [DNS-through-proxy](#network-fingerprint-control), [active window emulation](#active-window-emulation), [HTTP headers/HTTP2/HTTP3](#chrome-behavior-emulation), [headless parity](#headless-incognito-compatibility), [WebRTC SDP/ICE control](#webrtc-leak-protection), [TLS fingerprint (JA3/JARM)](#network-fingerprint-control), [port protection (PRO)](#port-protection), [dynamic proxy switching (ENT Tier2)](#dynamic-proxy-switching), [distributed privacy consistency](#mirror-distributed-privacy-consistency), [CDP quick reference](#cdp-quick-reference)
1212

1313
---
1414

@@ -18,7 +18,7 @@ BotBrowser offers three configuration interfaces with a clear priority order:
1818

1919
1. **CLI `--bot-config-*` flags** (highest priority) — [CLI Flags Reference](CLI_FLAGS.md)
2020
2. **Profile `configs` JSON** (medium priority) — [Profile Configuration Guide](profiles/PROFILE_CONFIGS.md)
21-
3. **CDP commands** (runtime, per-context) — [Per-Context Fingerprint](PER_CONTEXT_FINGERPRINT.md)
21+
3. **CDP commands** (runtime, per-context) — [Per-Context Fingerprint](PER_CONTEXT_FINGERPRINT.md) | [CDP Quick Reference](#cdp-quick-reference)
2222

2323
Smart auto-configuration: timezone, locale, and languages derive from your proxy IP. Override only when your scenario requires it.
2424

@@ -36,16 +36,58 @@ Smart auto-configuration: timezone, locale, and languages derive from your proxy
3636
- **TLS Fingerprints (JA3/JARM/ALPN):** Roadmap: cipher/extension ordering and ALPN tuning under evaluation.
3737

3838
**Stack differentiators:**
39-
- Per-context proxies with proxy-based geo detection (timezone/locale/language) across contexts and sessions
39+
- [Per-context proxies](PER_CONTEXT_FINGERPRINT.md) with proxy-based geo detection (timezone/locale/language) across contexts and sessions
4040
- DNS-through-proxy plus credentialed proxy URLs keep browser-level geo signals protected
4141
- UDP-over-SOCKS5 tunnel (ENT Tier3) for QUIC/STUN so ICE presets are only needed when UDP is unavailable
42-
- Optional ICE control via `--bot-webrtc-ice` (ENT Tier1) when the proxy lacks UDP support
42+
- Optional ICE control via [`--bot-webrtc-ice`](CLI_FLAGS.md#behavior--protection-toggles) (ENT Tier1) when the proxy lacks UDP support
4343
- Chromium-level implementation: tunneling lives inside the network stack, no external proxy-chain hijacking
4444

4545
> Note: Many privacy-oriented browsers disable QUIC or skip UDP entirely. BotBrowser implements UDP-over-SOCKS5 directly inside Chromium's network stack so QUIC/STUN stay proxied and consistent with TCP traffic.
4646
4747
For proxy configuration syntax and examples, see [CLI Flags: Enhanced Proxy Configuration](CLI_FLAGS.md#enhanced-proxy-configuration).
4848

49+
<a id="port-protection"></a>
50+
### Port Protection (PRO)
51+
52+
Protect local service ports (VNC, RDP, development servers, etc.) from being scanned by remote pages. Prevents detection of which services are running on localhost.
53+
54+
Covers 30 commonly-probed ports across:
55+
- IPv4 loopback (`127.0.0.0/8`)
56+
- IPv6 loopback (`::1`)
57+
- `localhost` hostname
58+
59+
Enable via CLI (`--bot-port-protection`) or profile JSON (`configs.portProtection`). See [CLI Flags](CLI_FLAGS.md#--bot-port-protection-pro) for details.
60+
61+
<a id="dynamic-proxy-switching"></a>
62+
### Dynamic Per-Context Proxy Switching (ENT Tier2)
63+
64+
Switch proxy servers for a specific BrowserContext at runtime without restarting the context. Use the CDP command `BotBrowser.setBrowserContextProxy` to change proxies on the fly. Supports multiple switches per context, with automatic timezone and language adaptation after each switch.
65+
66+
```javascript
67+
const ctx = await browser.createBrowserContext();
68+
const page = await ctx.newPage();
69+
const client = await page.createCDPSession();
70+
71+
// Set initial proxy - US endpoint
72+
await client.send('BotBrowser.setBrowserContextProxy', {
73+
browserContextId: ctx._contextId,
74+
proxyServer: 'socks5://user:pass@us-proxy.example.com:1080',
75+
proxyIp: '203.0.113.1' // optional: skip IP lookup for faster geo detection
76+
});
77+
await page.goto('https://example.com');
78+
79+
// Switch to UK proxy at runtime - no context restart needed
80+
await client.send('BotBrowser.setBrowserContextProxy', {
81+
browserContextId: ctx._contextId,
82+
proxyServer: 'socks5h://user:pass@uk-proxy.example.com:1080'
83+
});
84+
await page.goto('https://example.co.uk');
85+
```
86+
87+
**Supported protocols:** `socks5://`, `socks5h://`, `http://`, `https://`, all with embedded authentication (`user:pass@host:port`).
88+
89+
**Optional parameter:** `proxyIp` provides the proxy's exit IP to skip automatic IP detection, resulting in faster geo-based timezone and language adaptation.
90+
4991
---
5092

5193
## Privacy Protection & Fingerprint Consistency
@@ -60,7 +102,7 @@ Deterministic noise generation prevents fingerprint collection while maintaining
60102
- **WebGPU**: Deterministic noise applied to WebGPU canvases by default so GPU-only probes inherit the same reproducible noise characteristics
61103
- **AudioContext**: Inaudible noise calibration (Chromium 141+) with cross-worker consistency
62104
- **ClientRects/TextRects**: Realistic font measurement variance with cross-worker consistency
63-
- **Deterministic noise seeds (ENT Tier2)**: Reproducible yet distinct noise fields per tenant; each seed shapes Canvas 2D, WebGL, WebGPU imagery, text metrics, HarfBuzz layout, ClientRects, and offline audio hashes
105+
- **Deterministic noise seeds (ENT Tier2)**: Reproducible yet distinct noise fields per tenant; each seed shapes Canvas 2D, WebGL, WebGPU imagery, text metrics, HarfBuzz layout, ClientRects, and offline audio hashes. See [`--bot-noise-seed`](CLI_FLAGS.md#behavior--protection-toggles)
64106

65107
Protection model:
66108
- Stable noise algorithms maintain session consistency while varying across different sessions
@@ -74,7 +116,7 @@ For noise configuration flags, see [CLI Flags: Rendering, Noise & Media/RTC](CLI
74116

75117
Maintains protected window state to prevent focus-based tracking even when the host window is unfocused.
76118

77-
- `--bot-always-active` (PRO, default true) maintains protected `blur` and `visibilitychange` event patterns, keeping `document.hidden=false`
119+
- [`--bot-always-active`](CLI_FLAGS.md#behavior--protection-toggles) (PRO, default true) maintains protected `blur` and `visibilitychange` event patterns, keeping `document.hidden=false`
78120
- Protects against window-focus-based tracking heuristics that monitor caret blinking, FocusManager events, or inactive viewport throttling
79121

80122
<a id="headless-incognito-compatibility"></a>
@@ -105,8 +147,8 @@ Complete WebRTC fingerprint protection and network privacy.
105147
- MediaStream API protection across execution contexts
106148
- RTCPeerConnection behavior standardization
107149
- Network topology protection through controlled signal patterns
108-
- ICE server presets and custom lists via `--bot-webrtc-ice` (ENT Tier1) to standardize STUN and TURN endpoints observed by page JavaScript
109-
- Combined with UDP-over-SOCKS5 (ENT Tier3) for Chromium-level QUIC and STUN tunneling
150+
- ICE server presets and custom lists via [`--bot-webrtc-ice`](CLI_FLAGS.md#behavior--protection-toggles) (ENT Tier1) to standardize STUN and TURN endpoints observed by page JavaScript
151+
- Combined with [UDP-over-SOCKS5](CLI_FLAGS.md#udp-over-socks5-ent-tier3) (ENT Tier3) for Chromium-level QUIC and STUN tunneling
110152

111153
<a id="chrome-behavior-emulation"></a>
112154
### Chrome Behavior Emulation
@@ -216,14 +258,14 @@ Comprehensive hardware emulation and fingerprint management.
216258
- Emulate target refresh rates (60Hz, 120Hz, 144Hz, etc.)
217259
- Simulate high-FPS macOS behavior on Ubuntu hosts (Ubuntu requires ENT Tier1)
218260
- Authentic vsync and frame timing patterns
219-
- Runtime timing scaling via `--bot-time-scale` to compress `performance.now()` deltas
261+
- Runtime timing scaling via [`--bot-time-scale`](CLI_FLAGS.md#behavior--protection-toggles) to compress `performance.now()` deltas
220262

221263
### Performance Fingerprint Controls
222264

223265
- Realistic memory allocation patterns and garbage collection timing
224266
- IndexedDB, localStorage, and Cache API response timing
225267
- JavaScript execution timing and WebAssembly performance simulation
226-
- Deterministic noise seeds via `--bot-noise-seed` (ENT Tier2) to stabilize noise distributions across sessions
268+
- Deterministic noise seeds via [`--bot-noise-seed`](CLI_FLAGS.md#behavior--protection-toggles) (ENT Tier2) to stabilize noise distributions across sessions
227269

228270
### Extended Media Types & WebCodecs APIs
229271

@@ -334,7 +376,7 @@ Comprehensive hardware emulation and fingerprint management.
334376

335377
## Integration with Automation Frameworks
336378

337-
### Framework-Less Automation (`--bot-script`)
379+
### Framework-Less Automation ([`--bot-script`](CLI_FLAGS.md#--bot-script))
338380

339381
Execute JavaScript with privileged `chrome.debugger` access, with no framework dependencies.
340382

@@ -374,6 +416,30 @@ Assign independent fingerprint bundles per BrowserContext without spawning new b
374416

375417
---
376418

419+
<a id="cdp-quick-reference"></a>
420+
## CDP Quick Reference
421+
422+
All commands live under the `BotBrowser` CDP domain. Send them through a CDP session (`page.createCDPSession()` or `browser.target().createCDPSession()` depending on the command scope).
423+
424+
| Command | Scope | Tier | Description | Documentation |
425+
|---------|-------|------|-------------|---------------|
426+
| `SetBrowserContextFlags` | page | ENT Tier3 | Assign independent fingerprint flags to a BrowserContext | [Per-Context Fingerprint](PER_CONTEXT_FINGERPRINT.md) |
427+
| `SetBrowserContextProxy` | page | ENT Tier2 | Switch proxy for a BrowserContext at runtime | [Dynamic Proxy Switching](#dynamic-proxy-switching) |
428+
| `ClearBrowserContextProxy` | page | ENT Tier2 | Remove proxy override from a BrowserContext | [Dynamic Proxy Switching](#dynamic-proxy-switching) |
429+
| `SetCustomHeaders` | browser | PRO | Replace all custom HTTP request headers | [CLI Flags](CLI_FLAGS.md#--bot-custom-headers-pro) |
430+
| `GetCustomHeaders` | browser | PRO | Retrieve current custom headers | [CLI Flags](CLI_FLAGS.md#--bot-custom-headers-pro) |
431+
| `AddCustomHeader` | browser | PRO | Add or update a single custom header | [CLI Flags](CLI_FLAGS.md#--bot-custom-headers-pro) |
432+
| `RemoveCustomHeader` | browser | PRO | Remove a single custom header | [CLI Flags](CLI_FLAGS.md#--bot-custom-headers-pro) |
433+
| `ClearCustomHeaders` | browser | PRO | Remove all custom headers | [CLI Flags](CLI_FLAGS.md#--bot-custom-headers-pro) |
434+
| `StartMirrorController` | browser | ENT Tier3 | Start this instance as a Mirror controller | [Mirror](tools/mirror/) |
435+
| `StartMirrorClient` | browser | ENT Tier3 | Connect this instance as a Mirror client | [Mirror](tools/mirror/) |
436+
| `StopMirror` | browser | ENT Tier3 | Stop Mirror controller or client role | [Mirror](tools/mirror/) |
437+
| `GetMirrorStatus` | browser | ENT Tier3 | Query current Mirror connection status | [Mirror](tools/mirror/) |
438+
439+
> **Scope**: `browser` = send to browser-level CDP session; `page` = send to page-level CDP session.
440+
441+
---
442+
377443
## Related Documentation
378444

379445
- **[CLI Flags Reference](CLI_FLAGS.md)** — Complete command-line options and usage examples

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@
33
> **Research scope:** Entries in this changelog describe features evaluated in authorized labs and defensive benchmarking programs. Follow the [Legal Disclaimer](DISCLAIMER.md) and [Responsible Use Guidelines](RESPONSIBLE_USE.md). We work with security vendors to investigate any misuse, so report concerns to [support@botbrowser.io](mailto:support@botbrowser.io).
44
55

6+
## [2026-02-18]
7+
### Major
8+
- **Chromium Core → 145.0.7632.76**: Updated to Chrome 145 stable. This ensures Web Platform consistency, rendering accuracy, and security patches stay aligned with upstream Chrome.
9+
10+
### New
11+
- **[Per-Context Proxy Switching](ADVANCED_FEATURES.md#dynamic-proxy-switching) (ENT Tier2)**: Dynamically switch proxy servers per BrowserContext at runtime without restarting contexts via CDP `BotBrowser.setBrowserContextProxy()`. Supports SOCKS5, SOCKS5h, HTTP, HTTPS protocols with authentication. Automatically adapts timezone and language based on proxy location.
12+
13+
- **[Port Protection](ADVANCED_FEATURES.md#port-protection) (PRO)**: Protect local service ports (VNC, RDP, development servers, etc.) from being scanned by remote pages. Covers 30 commonly-probed ports across IPv4 (`127.0.0.0/8`), IPv6 (`::1`), and `localhost`. Enable via `--bot-port-protection` or profile JSON (`configs.portProtection`).
14+
15+
### Improvements
16+
- **CSS Media Feature Consistency**: CSS media queries now authentically reflect the profile's display characteristics, ensuring consistency between CSS-level and JavaScript-level reporting.
17+
18+
619
## [2026-02-11]
720
### Major
821
- **Chromium Core → 145.0.7632.46**: Updated the engine to Chrome 145 stable (145.0.7632.46). This keeps Web Platform behavior, rendering consistency, and security patches aligned with upstream Chrome.

0 commit comments

Comments
 (0)