Skip to content

Commit 6c7f9f2

Browse files
committed
docs: update all documentation for 2025-09-15 release features and proxy system rewrite
1 parent 8fd79f2 commit 6c7f9f2

File tree

5 files changed

+89
-6
lines changed

5 files changed

+89
-6
lines changed

ADVANCED_FEATURES.md

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ chrome.exe --bot-profile="profile.enc" \
6262
--bot-bookmarks='[{"name":"Research","url":"https://example.com","folder":"Work"}]'
6363
```
6464

65-
### Advanced Proxy Authentication
66-
Enhanced proxy support with embedded credentials and automatic geo-detection.
65+
### Enhanced Proxy System
66+
Rewritten proxy subsystem with stability improvements, per-context support, and DNS leak protection.
6767

6868
**Embedded Credentials:**
6969
```bash
@@ -76,7 +76,36 @@ Enhanced proxy support with embedded credentials and automatic geo-detection.
7676
```
7777

7878

79-
**Important:** Use BotBrowser's `--proxy-server` flag instead of framework-specific proxy options (like `page.authenticate()` in Puppeteer) to ensure proper geo-detection for timezone/locale auto-configuration.
79+
**Per-Context Proxy Support:**
80+
```javascript
81+
// Playwright example with different proxies per context
82+
const browser = await chromium.launch({
83+
executablePath: './chrome', // BotBrowser path
84+
args: ['--bot-profile=profile.enc']
85+
});
86+
87+
// Context 1 with proxy A
88+
const context1 = await browser.newContext({
89+
proxy: { server: 'http://user1:[email protected]:8080' }
90+
});
91+
92+
// Context 2 with proxy B
93+
const context2 = await browser.newContext({
94+
proxy: { server: 'socks5://user2:[email protected]:1080' }
95+
});
96+
```
97+
98+
**Performance Optimization:**
99+
```bash
100+
# Skip IP lookups for faster page loads
101+
--proxy-server="http://user:[email protected]:8080" --proxy-ip="203.0.113.1"
102+
```
103+
104+
**DNS Leak Protection:**
105+
- SOCKS5 proxies now prevent local DNS resolution
106+
- All domain lookups go through the proxy tunnel
107+
108+
**Important:** Use BotBrowser's proxy options instead of framework-specific settings to ensure proper geo-detection for timezone/locale auto-configuration.
80109

81110
---
82111

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,38 @@ This software and its documented capabilities are provided for **academic study
99
⚠️ **This software is for compatibility validation in controlled, academic test environments only. It must not be used to bypass security controls on production systems.**
1010

1111

12+
## [2025-09-15]
13+
14+
### Major
15+
- **Chromium Core Upgrade → 140.0.7339.128**
16+
Keeps BotBrowser in lock‑step with the latest stable Chrome for improved performance, security patches, and parity across modern web/APIs.
17+
18+
- **Proxy Subsystem Rewrite (faster • more stable • unified config)**
19+
Re‑architected proxy stack to reduce connection latency and flakiness. **Deprecated** `--proxy-username` / `--proxy-password`; now use a single **`--proxy-server`** (or profile) endpoint that supports **auth & multiple protocols** (e.g., `http(s)`, `socks5`). Example: `socks5://user:pass@host:port`.
20+
21+
- **Per‑Context Proxy (createBrowserContext)**
22+
You can assign a **different `proxy-server` per BrowserContext**, including authenticated endpoints. Enables multi‑proxy, high‑concurrency tasks in one process.
23+
Resolves: https://github.com/botswin/BotBrowser/issues/61
24+
25+
### Improved / Fixed
26+
- **DNS Leak Hardening for SOCKS5**
27+
Fixed a case where domain resolution might occur locally under SOCKS5, preventing DNS leaks and strengthening stealth.
28+
29+
### New
30+
- **CLI: `--proxy-ip` (profile key: `configs.proxy.ip`)**
31+
Provide the proxy’s public IP via CLI or profile so BotBrowser **skips per‑page IP lookups**, speeding up page open. Combine with `--bot-config-timezone` to emulate regions/timezones consistently.
32+
33+
- **CLI: `--bot-config-mobile-force-touch` (profile key: `configs.mobileForceTouch`)**
34+
Force **on/off** touch emission when simulating mobile devices. Useful for sites that require touch events regardless of the detected environment.
35+
Resolves: https://github.com/botswin/BotBrowser/issues/65
36+
37+
### Migration Notes
38+
- Replace `--proxy-username/--proxy-password` with **embedded credentials in `--proxy-server`** (or in the profile).
39+
Example: `http://user:pass@ip:port`, `socks5://user:pass@ip:port`.
40+
41+
42+
---
43+
1244
## [2025-09-06]
1345

1446
### Major

CLI_FLAGS.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ BotBrowser enhanced the standard `--proxy-server` flag to accept embedded creden
5959

6060
**Supported protocols:** HTTP, HTTPS, SOCKS5
6161

62+
### `--proxy-ip`
63+
**Specify proxy's public IP to optimize performance**
64+
65+
Provide the proxy's public IP address to skip per-page IP lookups, improving page load performance.
66+
67+
```bash
68+
--proxy-ip="203.0.113.1"
69+
```
70+
71+
**Benefits:**
72+
- Eliminates IP detection overhead on each page load
73+
- Faster browsing when using proxies
74+
- Combine with `--bot-config-timezone` for consistent region emulation
75+
6276

6377
⚠️ **Important:** Use `--proxy-server` flag instead of framework-specific proxy options (like `page.authenticate()` in Puppeteer or `proxy` parameter in Playwright's `launch()`). This ensures BotBrowser can retrieve geo information from proxy IP for accurate timezone/locale auto-configuration.
6478

@@ -159,6 +173,7 @@ The following `--bot-config-*` flags correspond directly to profile `configs` pr
159173
--bot-config-webrtc=profile # WebRTC: profile (use profile), real (native), disabled (off)
160174
--bot-config-window=profile # Window dimensions: profile (use profile), real (system window)
161175
--bot-config-media-types=profile # Media types: profile, real, expand (allow expanding via local decoders)
176+
--bot-config-mobile-force-touch=false # Mobile touch: force touch events on/off for mobile device simulation
162177
```
163178

164179
### Key Benefits of CLI Configuration Flags

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ Automatic touch simulation, device metrics, and consistent fingerprint rendering
5656
BotBrowser provides sophisticated browser fingerprint consistency testing through multiple layers of emulation and control:
5757

5858
**🔧 Configuration & Control**
59-
- **21+ `--bot-config-*` flags** - Override browser brand, WebGL, timezone, etc.
59+
- **22+ `--bot-config-*` flags** - Override browser brand, WebGL, timezone, mobile touch, etc.
6060
- **Session Management** - Custom titles, cookies, bookmarks with `--bot-title`
61-
- **Advanced Proxy Auth** - Direct credentials: `--proxy-server="http://user:[email protected]:8080"`
61+
- **Enhanced Proxy System** - Rewritten for stability, per-context proxies, DNS leak protection
62+
- **Performance Optimization** - `--proxy-ip` skips IP lookups for faster page loads
6263

6364
**🎭 Automation Research**
6465
- **Multi-Layer Noise Injection** - Canvas, WebGL, Audio with per-session consistency

profiles/PROFILE_CONFIGS.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,14 @@ All configurations are embedded in the `configs` field inside your profile JSON
9393
| `disableDebugger` | Prevents unintended interruptions from JavaScript debugger statements during automated academic workflows. | `true` |
9494
| `keyboard` | Choose keyboard fingerprint source: `profile` (emulated from profile) or `real` (use system keyboard). | `profile` |
9595
| `mediaTypes` | Media types behavior: `profile` (use profile settings), `real` (native system), `expand` (allow expanding via local decoders). | `profile` |
96+
| `mobileForceTouch` | Force touch events on/off when simulating mobile devices (`true`, `false`). | `false` |
9697

9798
### Proxy Settings
9899

99100
| Field | Description | Default |
100101
| ---------------- | ----------------------------------------- | ------- |
101102
| `proxy.server` | Proxy server address (`scheme://username:password@hostname:port`). | `""` |
103+
| `proxy.ip` | Proxy's public IP address (skips IP lookups for better performance). | `""` |
102104

103105
> 💡 **Better Approach:** Use CLI flags for proxy configuration:
104106
> ```bash
@@ -158,7 +160,8 @@ All configurations are embedded in the `configs` field inside your profile JSON
158160
159161
// Proxy settings: hostname:port, with optional basic auth
160162
"proxy": {
161-
"server": "1.2.3.4:8080"
163+
"server": "1.2.3.4:8080",
164+
"ip": "1.2.3.4"
162165
},
163166
164167
// Disable GUI scaling based on device scale factor (ignore DevicePixelRatio for UI scaling)
@@ -225,6 +228,9 @@ All configurations are embedded in the `configs` field inside your profile JSON
225228
226229
// keyboard: choose keyboard fingerprint source: "profile" (emulated from profile) or "real" (use system keyboard)
227230
"keyboard": "profile",
231+
232+
// mobileForceTouch: Force touch events on/off when simulating mobile devices
233+
"mobileForceTouch": false,
228234
}
229235
}
230236

0 commit comments

Comments
 (0)