Skip to content

Commit a59ec91

Browse files
committed
Revert "docs: tighten public privacy guidance"
This reverts commit d4fa653.
1 parent d4fa653 commit a59ec91

9 files changed

Lines changed: 258 additions & 56 deletions

File tree

CLI_FLAGS.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ To keep SOCKS5 proxying but avoid QUIC/HTTP/3, add the standard `--disable-quic`
240240

241241
<a id="pac-request-policy-ent-tier3"></a>
242242
<a id="pac-like-request-callback-ent-tier3"></a>
243-
### PAC Request Policy (ENT Tier3)
244-
ENT Tier3 profiles can use trusted PAC scripts for request-aware policy while preserving standard PAC routing. Configure PAC through the standard `--proxy-pac-url` flag and keep the PAC source explicit.
243+
### PAC-Like Request Callback (ENT Tier3)
244+
ENT Tier3 profiles can use trusted PAC scripts for request callback workflows while preserving standard PAC routing. Configure PAC through the standard `--proxy-pac-url` flag and keep the PAC source explicit.
245245

246246
<a id="flag-proxy-pac-url"></a>
247247

@@ -255,9 +255,22 @@ ENT Tier3 profiles can use trusted PAC scripts for request-aware policy while pr
255255
--proxy-pac-url=http://127.0.0.1:8080/proxy.pac
256256
```
257257

258-
Standard `FindProxyForURL(url, host)` behavior remains available for normal routing.
258+
Standard `FindProxyForURL(url, host)` behavior remains available for normal routing. Approved profiles and trusted PAC sources can also define BotBrowser's request callback:
259259

260-
The enterprise policy can apply approved request-aware routing and handling while standard PAC behavior remains available. Controlled response policy is limited to approved `file:` and `data:` PAC sources. See [PAC Request Policy](docs/guides/network/PAC_REQUEST_POLICY.md) for source requirements and deployment guidance.
260+
```javascript
261+
function BotBrowserFindProxyForRequest(url, host, method, headersB64, bodyB64, bodyState) {
262+
return "CONTINUE";
263+
}
264+
```
265+
266+
Supported callback results:
267+
268+
- Continue or stop: `CONTINUE`, `BLOCK`
269+
- Capture: `CAPTURE`, `CAPTURE_TAG <tag>`, `CAPTURE_FILE <path>`
270+
- Synthetic response: `RESPONSE <raw_http_response_b64>`, `RESPONSE_FILE <path>`
271+
- Standard PAC route: `DIRECT`, `PROXY`, `HTTPS`, `SOCKS`, `SOCKS4`, `SOCKS5`
272+
273+
PAC and callback routes can include credentials, for example `SOCKS5 user:pass@proxy.example.com:1080`. Capture records are written only when `CAPTURE` and `CAPTURE_FILE <path>` are returned together. Synthetic responses are limited to approved `file:` and `data:` PAC sources and fail closed when response input is invalid. See [PAC Request Policy](docs/guides/network/PAC_REQUEST_POLICY.md).
261274

262275
Use this when request-aware policy should stay in PAC routing instead of CDP-level request interception, especially for workflows that need help preserving HTTP/2 connection and stream continuity while directing selected requests to different routes.
263276

docs/guides/deployment/PERFORMANCE_OPTIMIZATION.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,27 @@ BotBrowser performance is influenced by several factors:
6565

6666
BotBrowser ships two builds. **Standard Build** is the default public release and stays the right choice for long-running, interactive workflows. **Trimmed Build** is an ENT Tier3 distribution tuned for short-session, high-concurrency automation. Both share the same fingerprint protection model, profile format, CLI flag surface, and CDP commands; you do not change automation code when you switch.
6767

68-
BotBrowser release testing compares Trimmed Build with Standard Build on context startup, first navigation, CPU load, and shared memory use. Trimmed Build reduces resource pressure for short-session workloads while retaining the same profile and automation interfaces.
68+
The Linux x64 benchmark (400 official samples, `1..20 contexts × 10 repeats × 2 builds`) shows Trimmed Build versus Standard Build:
69+
70+
| Dimension | Trimmed delta | What it drives |
71+
|---|---:|---|
72+
| Wall time | **-61.85%** mean, **-67.79%** p95 | Total throughput per shift |
73+
| Per-context creation | **-85.32%** mean, **-87.51%** p95 | How fast a fleet can rotate contexts |
74+
| Per-context first nav | **-38.71%** mean | Time to first useful work in each context |
75+
| CPU peak | **-67.81%** mean | How many concurrent contexts a host can sustain |
76+
| PSS peak | **-31.25%** mean | Shared memory headroom under bursty load |
77+
| Success rate | unchanged at 100% | Stability and cleanup are not regressed |
6978

7079
Choose Trimmed Build when at least one of the following is true:
7180

72-
- **Context spin-up dominates wall time.** Short-session privacy testing, single-page consistency checks, and high-rotation per-context fleets.
81+
- **Context spin-up dominates wall time.** Short-session privacy testing, single-page consistency checks, and high-rotation per-context fleets. The `-85%` creation delta is the headline.
7382
- **CPU peak per context is the bottleneck.** Hosts already at high CPU utilization recover headroom directly.
74-
- **Shared memory is the binding constraint.** Memory-pressured hosts can recover headroom by using fewer browser processes.
83+
- **Shared memory (PSS/USS) is the binding constraint.** Memory-pressured hosts see `-31%` to `-38%` peak headroom returned.
7584
- **Workloads rotate through many identities per hour.** Each context lives seconds to minutes before the next identity takes over.
7685

7786
Stay on Standard Build when sessions are long-running and interactive, when the workload exercises the full browser feature surface, or when the host has plenty of CPU and memory headroom and per-context spin-up is not the bottleneck.
7887

79-
Trimmed Build ships through the enterprise distribution channel. Product overview and compatibility notes: [TRIMMED_BUILD.md](../../../TRIMMED_BUILD.md). Access: [Enterprise](https://botbrowser.io/enterprise/) or [Pricing](https://botbrowser.io/pricing/).
88+
Trimmed Build is not on the public [Releases](https://github.com/botswin/BotBrowser/releases) page; it ships through the enterprise distribution channel. Product overview, engineering design, and FAQ: [TRIMMED_BUILD.md](../../../TRIMMED_BUILD.md). Full benchmark table and per-context matrix: [BENCHMARK.md#trimmed-build](../../../BENCHMARK.md#trimmed-build). Access: [Enterprise](https://botbrowser.io/enterprise/) or [Pricing](https://botbrowser.io/pricing/).
8089

8190
---
8291

@@ -140,7 +149,7 @@ chromium-browser \
140149
--user-data-dir="$(mktemp -d)"
141150
```
142151

143-
`1:30` means video frames visually update near 1 FPS while media reporting uses 30 FPS. Pixel output follows the actual cadence, so choose a higher actual value when the workload samples video pixels frame by frame. For Per-Context Fingerprint, pass the flag in `botbrowserFlags` before creating pages in the context.
152+
`1:30` means video frames visually update near 1 FPS while media reporting uses 30 FPS. Pixel output follows the actual cadence, so choose a higher actual value when the workload samples video pixels frame by frame. For Per-Context Fingerprint, pass the flag in `botbrowserFlags` before creating pages in the context. See the [Video FPS benchmark](../../../BENCHMARK.md#video-fps-control).
144153

145154
### Reuse browser instances with multiple contexts
146155

docs/guides/fingerprint/CANVAS.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ When a profile is loaded, BotBrowser uses its built-in font libraries and render
6767

6868
### Canvas Color Spaces
6969

70-
BotBrowser 150.0.7871.46 keeps Canvas 2D protection active for standard and wide-gamut canvas color spaces, including `display-p3`. Color-space selection follows the page request while profile-backed protection remains consistent with the session.
70+
Chrome 150 keeps Canvas 2D protection active for standard and wide-gamut canvas color spaces, including `display-p3`. Color-space selection follows the page request while profile-backed replay and deterministic protection remain consistent with the session.
7171

7272
---
7373

@@ -83,7 +83,11 @@ BotBrowser applies deterministic noise to all Canvas 2D output at the rendering
8383

8484
## Effect Verification
8585

86-
For a defensive consistency check, compare separate sessions that use the same BotBrowser build, profile, color-space policy, and noise seed. Repeat the authorized visual workflow on each supported host platform and review unexpected output differences before deployment.
86+
To verify protection is active:
87+
88+
1. Launch BotBrowser with a profile and visit a fingerprint testing site such as [BrowserLeaks](https://browserleaks.com/) or [CreepJS](https://abrahamjuliot.github.io/creepjs/).
89+
2. Confirm that the reported Canvas hash and image data match the profile configuration, not the host machine.
90+
3. To verify reproducibility, launch two sessions with the same `--bot-noise-seed` and confirm that the Canvas fingerprint output is identical.
8791

8892
---
8993

docs/guides/fingerprint/FONT.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ BotBrowser addresses cross-platform font consistency through built-in font libra
9191

9292
### FontFace and Fallback Behavior
9393

94-
BotBrowser 150.0.7871.46 improves profile-backed font handling for local font sources, request-by-name loading, and multilingual fallback. Windows-target profiles also keep their font renderer preferences with the active BrowserContext, including per-context sessions running on another host platform.
94+
Chrome 150 improves profile-backed font handling for `FontFace` local sources, request-by-name loading, and multilingual fallback. Windows-target profiles also keep their font renderer preferences with the active BrowserContext, including per-context sessions running on another host platform.
9595

9696
Keep `--bot-config-fonts=profile` when the profile font inventory and fallback policy should remain authoritative. Use `expand` only when the workflow intentionally allows host fallback beyond the profile bundle.
9797

@@ -101,7 +101,11 @@ Keep `--bot-config-fonts=profile` when the profile font inventory and fallback p
101101

102102
## Effect Verification
103103

104-
For a defensive consistency check, compare separate sessions that use the same BotBrowser build, profile, locale, and noise seed. Repeat the authorized workflow on each supported host platform and record any visible layout differences.
104+
To verify protection is active:
105+
106+
1. Launch BotBrowser with a profile and visit a fingerprint testing site such as [BrowserLeaks](https://browserleaks.com/) or [CreepJS](https://abrahamjuliot.github.io/creepjs/).
107+
2. Confirm that the reported font list and text metrics match the profile configuration, not the host machine.
108+
3. To verify reproducibility, launch two sessions with the same `--bot-noise-seed` and confirm that the font measurement output is identical.
105109

106110
---
107111

@@ -113,7 +117,7 @@ For a defensive consistency check, compare separate sessions that use the same B
113117
|---------|----------|
114118
| Font list shows host system fonts | Ensure `--bot-config-fonts=profile` is set. The `real` mode disables font protection. |
115119
| CJK text renders with missing glyphs | Verify the profile includes appropriate CJK fonts. Windows and macOS profiles include CJK support by default. |
116-
| A local font name resolves differently across hosts | Use `--bot-config-fonts=profile` and a matching BotBrowser 150.0.7871.46 profile package so local and request-by-name font handling follows the profile inventory. |
120+
| A local FontFace name resolves differently across hosts | Use `--bot-config-fonts=profile` and a Chrome 150 profile package so local and request-by-name font handling follows the profile inventory. |
117121
| Font metrics differ between headless and headful mode | Both modes should produce identical metrics with a profile loaded. Check that the same profile and flags are used. |
118122
| ClientRects values vary between sessions | Use `--bot-noise-seed` for reproducible measurements. Without a fixed seed, noise varies per session. |
119123

docs/guides/fingerprint/PERMISSIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Permission state follows the loaded profile together with the browser's normal s
3333

3434
Browser permission results are visible through web APIs, page capability checks, workers, and browser UI decisions. BotBrowser keeps these paths aligned with the selected browser and platform profile family.
3535

36-
BotBrowser 150.0.7871.46 improves profile-backed permission mapping for launch profiles and per-context profiles. Permission queries and browser-side checks follow the active BrowserContext.
36+
Chrome 150 improves profile-backed permission mapping for launch profiles and per-context profiles. Permission queries and browser-side checks follow the active BrowserContext.
3737

3838
For Per-Context Fingerprint, set the profile before creating the first page:
3939

docs/guides/fingerprint/STORAGE_QUOTA.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ The default policy is `profile`: BotBrowser uses the active profile for storage
4242
--bot-js-heap-size-limit=real
4343
--bot-storage-quota=real
4444

45+
# Set explicit byte values
46+
--bot-js-heap-size-limit=4294967296
47+
--bot-storage-quota=10737418240
4548
```
4649

4750
`--bot-js-heap-size-limit` is applied to newly started sessions or contexts. Start a new browser session or create a fresh context when changing this value. `--bot-storage-quota` can be used at launch and in per-context flag workflows.
4851

49-
Approved enterprise profiles can also use explicit values supplied through managed deployment policy. Keep storage quota, JavaScript heap, and device memory settings aligned with the selected profile family. Contact enterprise support for profile-specific configuration.
50-
5152
---
5253

5354
<a id="what-botbrowser-controls"></a>
@@ -97,7 +98,11 @@ await page.goto("https://example.com");
9798
await browser.close();
9899
```
99100

100-
For a defensive consistency check, launch separate sessions with the same build, profile, proxy policy, and runtime settings. Compare the user-visible behavior recorded by your authorized test workflow. Repeat on each supported host platform before deployment.
101+
To verify storage and memory protection is active:
102+
103+
1. Launch BotBrowser with a profile and visit a fingerprint testing site such as [BrowserLeaks](https://browserleaks.com/) or [CreepJS](https://abrahamjuliot.github.io/creepjs/).
104+
2. Confirm that the reported storage quota and device memory values match the profile configuration, not the host machine.
105+
3. Launch a second session with the same profile and confirm identical values are reported.
101106

102107
---
103108

0 commit comments

Comments
 (0)