Skip to content

Commit 01c35f2

Browse files
committed
docs: add 2026-02-23 release notes, update CanvasLab for WebGL/WebGL2, bump profiles to 145.0.7632.110
1 parent 8d6ab1f commit 01c35f2

11 files changed

Lines changed: 1044 additions & 68 deletions

File tree

ADVANCED_FEATURES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ All commands live under the `BotBrowser` CDP domain. Send them through a CDP ses
453453
- [Per-Context Fingerprint](PER_CONTEXT_FINGERPRINT.md) - Independent fingerprint per BrowserContext
454454
- [Validation Results](VALIDATION.md) - Research and testing data
455455
- [Mirror](tools/mirror/) - Distributed privacy consistency verification
456-
- [CanvasLab](tools/canvaslab/) - Canvas forensics and tracking analysis tool
456+
- [CanvasLab](tools/canvaslab/) - Canvas 2D / WebGL / WebGL2 forensics and tracking analysis tool
457457
- [Examples](examples/) - Playwright, Puppeteer, bot-script integration
458458
- [Main README](README.md) - Project overview and quick start
459459

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@
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-23]
7+
### Major
8+
- **Chromium Core → 145.0.7632.110**: Updated to Chrome 145 stable (145.0.7632.110). Web Platform consistency, rendering accuracy, and security patches stay aligned with upstream Chrome.
9+
10+
### New
11+
- **CanvasLab WebGL/WebGL2 Recording**: CanvasLab now records WebGL and WebGL2 API calls in addition to Canvas 2D, enabling complete analysis of graphics-based fingerprint collection across all canvas contexts.
12+
13+
- **Profile Compression**: Optimized fingerprint profile format to reduce file size by 25-30% without affecting privacy protection. Reduces disk I/O and speeds up profile loading, especially beneficial for large-scale deployments.
14+
15+
### Improvements
16+
- **Per-Context Proxy Routing Completeness**: `botbrowserFlags` now supports the full proxy parameter set (`--proxy-server`, `--proxy-ip`, `--proxy-bypass-list`, `--proxy-bypass-rgx`) across both `Target.createBrowserContext` and `BotBrowser.setBrowserContextFlags` CDP paths.
17+
18+
### Fixes
19+
- **SpeechSynthesis Voice Consistency**: `speechSynthesis.getVoices()` now returns profile-defined voices on headless Linux hosts and Docker containers, matching the target platform's voice list regardless of host TTS availability.
20+
21+
- **Cross-Platform Renderer Stability**: Resolved a rare renderer crash when loading certain pages with cross-platform profile configurations on macOS.
22+
23+
624
## [2026-02-18]
725
### Major
826
- **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.

CLI_FLAGS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,17 @@ Accepts a JSON string containing bookmark data for startup.
222222
### `--bot-canvas-record-file`
223223
Canvas forensics and tracking analysis.
224224

225-
Records all Canvas 2D API calls to a JSONL file for forensic analysis and future replay capabilities.
225+
Records all Canvas 2D, WebGL, and WebGL2 API calls to a JSONL file for forensic analysis and replay.
226226

227227
```bash
228228
--bot-canvas-record-file="/tmp/canvaslab.jsonl"
229229
```
230230

231231
**Key Features:**
232-
- Complete Canvas 2D API call recording with full parameter serialization
232+
- Complete Canvas 2D, WebGL, and WebGL2 API call recording with full parameter serialization
233233
- Deterministic capture (noise variance disabled during recording)
234234
- JSONL format for easy parsing and analysis
235-
- HTML viewer included for interactive event inspection
235+
- HTML replay viewer with WebGL enum reverse-lookup and source location mapping
236236

237237
Learn more: [CanvasLab Documentation](tools/canvaslab/)
238238

PER_CONTEXT_FINGERPRINT.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,12 @@ await page.goto('https://example.com');
128128

129129
### Via Target.createBrowserContext
130130

131-
Pass fingerprint flags when creating the context:
131+
Pass fingerprint and proxy flags when creating the context:
132132

133133
```javascript
134134
const client = await browser.target().createCDPSession();
135135

136+
// Fingerprint-only context
136137
const { browserContextId } = await client.send('Target.createBrowserContext', {
137138
botbrowserFlags: [
138139
'--bot-profile=/path/to/windows-profile.enc',
@@ -141,6 +142,17 @@ const { browserContextId } = await client.send('Target.createBrowserContext', {
141142
]
142143
});
143144

145+
// Context with proxy configured at creation time
146+
const { browserContextId: ctxWithProxy } = await client.send('Target.createBrowserContext', {
147+
botbrowserFlags: [
148+
'--bot-profile=/path/to/profile.enc',
149+
'--proxy-server=socks5://user:pass@proxy.example.com:1080',
150+
'--proxy-ip=203.0.113.1',
151+
'--proxy-bypass-list=localhost;127.0.0.1',
152+
'--proxy-bypass-rgx=\\.example\\.com$'
153+
]
154+
});
155+
144156
const { targetId } = await client.send('Target.createTarget', {
145157
url: 'about:blank',
146158
browserContextId
@@ -242,11 +254,12 @@ await client1.send('BotBrowser.setBrowserContextFlags', {
242254
'--bot-profile=/path/to/profile.enc',
243255
'--proxy-server=socks5://user:pass@us-proxy.example.com:1080',
244256
'--proxy-ip=203.0.113.1',
257+
'--proxy-bypass-list=localhost;127.0.0.1',
245258
'--bot-config-timezone=America/Chicago'
246259
]
247260
});
248261

249-
// Context 2: UK proxy via botbrowserFlags
262+
// Context 2: UK proxy via botbrowserFlags (with regex bypass)
250263
const ctx2 = await browser.createBrowserContext();
251264
const page2 = await ctx2.newPage();
252265
const client2 = await page2.createCDPSession();
@@ -256,6 +269,7 @@ await client2.send('BotBrowser.setBrowserContextFlags', {
256269
'--bot-profile=/path/to/profile.enc',
257270
'--proxy-server=socks5://user:pass@uk-proxy.example.com:1080',
258271
'--proxy-ip=198.51.100.1',
272+
'--proxy-bypass-rgx=\\.static\\.example\\.com$',
259273
'--bot-config-timezone=Europe/London'
260274
]
261275
});
@@ -267,7 +281,7 @@ await Promise.all([
267281
]);
268282
```
269283

270-
You can now configure proxy directly in `botbrowserFlags` without using `createBrowserContext({ proxyServer })`. This provides unified configuration for proxy and other per-context settings in a single call.
284+
Configure proxy directly in `botbrowserFlags` for unified proxy and fingerprint settings in a single call. Supported proxy flags: `--proxy-server`, `--proxy-ip`, `--proxy-bypass-list`, `--proxy-bypass-rgx`.
271285

272286
> **Tip:** Need to switch proxies at runtime without restarting a context? See [Dynamic Proxy Switching (ENT Tier2)](ADVANCED_FEATURES.md#dynamic-proxy-switching) in Advanced Features.
273287

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Examples: [Playwright](examples/playwright/) • [Puppeteer](examples/puppeteer/
161161
| Console message suppression | [Behavior Toggles](CLI_FLAGS.md#behavior--protection-toggles) |
162162
| Headless / GUI parity | [Headless Compatibility](ADVANCED_FEATURES.md#headless-incognito-compatibility) |
163163
| Mirror: distributed privacy consistency | [Mirror Documentation](tools/mirror/) |
164-
| CanvasLab: Canvas 2D API recorder | [--bot-canvas-record-file](CLI_FLAGS.md#--bot-canvas-record-file) |
164+
| CanvasLab: Canvas 2D / WebGL / WebGL2 recorder | [--bot-canvas-record-file](CLI_FLAGS.md#--bot-canvas-record-file) |
165165

166166
### Session & Behavior
167167

0 commit comments

Comments
 (0)