You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLI_FLAGS.md
+17-4Lines changed: 17 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -240,8 +240,8 @@ To keep SOCKS5 proxying but avoid QUIC/HTTP/3, add the standard `--disable-quic`
240
240
241
241
<aid="pac-request-policy-ent-tier3"></a>
242
242
<aid="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.
245
245
246
246
<aid="flag-proxy-pac-url"></a>
247
247
@@ -255,9 +255,22 @@ ENT Tier3 profiles can use trusted PAC scripts for request-aware policy while pr
255
255
--proxy-pac-url=http://127.0.0.1:8080/proxy.pac
256
256
```
257
257
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:
259
259
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.
- 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).
261
274
262
275
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.
Copy file name to clipboardExpand all lines: docs/guides/deployment/PERFORMANCE_OPTIMIZATION.md
+14-5Lines changed: 14 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,18 +65,27 @@ BotBrowser performance is influenced by several factors:
65
65
66
66
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.
67
67
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 |
69
78
70
79
Choose Trimmed Build when at least one of the following is true:
-**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.
73
82
-**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.
75
84
-**Workloads rotate through many identities per hour.** Each context lives seconds to minutes before the next identity takes over.
76
85
77
86
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.
78
87
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/).
80
89
81
90
---
82
91
@@ -140,7 +149,7 @@ chromium-browser \
140
149
--user-data-dir="$(mktemp -d)"
141
150
```
142
151
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).
144
153
145
154
### Reuse browser instances with multiple contexts
Copy file name to clipboardExpand all lines: docs/guides/fingerprint/CANVAS.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -67,7 +67,7 @@ When a profile is loaded, BotBrowser uses its built-in font libraries and render
67
67
68
68
### Canvas Color Spaces
69
69
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.
71
71
72
72
---
73
73
@@ -83,7 +83,11 @@ BotBrowser applies deterministic noise to all Canvas 2D output at the rendering
83
83
84
84
## Effect Verification
85
85
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.
Copy file name to clipboardExpand all lines: docs/guides/fingerprint/FONT.md
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -91,7 +91,7 @@ BotBrowser addresses cross-platform font consistency through built-in font libra
91
91
92
92
### FontFace and Fallback Behavior
93
93
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.
95
95
96
96
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.
97
97
@@ -101,7 +101,11 @@ Keep `--bot-config-fonts=profile` when the profile font inventory and fallback p
101
101
102
102
## Effect Verification
103
103
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.
105
109
106
110
---
107
111
@@ -113,7 +117,7 @@ For a defensive consistency check, compare separate sessions that use the same B
113
117
|---------|----------|
114
118
| Font list shows host system fonts | Ensure `--bot-config-fonts=profile` is set. The `real` mode disables font protection. |
115
119
| 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. |
117
121
| 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. |
118
122
| ClientRects values vary between sessions | Use `--bot-noise-seed` for reproducible measurements. Without a fixed seed, noise varies per session. |
Copy file name to clipboardExpand all lines: docs/guides/fingerprint/PERMISSIONS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ Permission state follows the loaded profile together with the browser's normal s
33
33
34
34
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.
35
35
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.
37
37
38
38
For Per-Context Fingerprint, set the profile before creating the first page:
Copy file name to clipboardExpand all lines: docs/guides/fingerprint/STORAGE_QUOTA.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,12 +42,13 @@ The default policy is `profile`: BotBrowser uses the active profile for storage
42
42
--bot-js-heap-size-limit=real
43
43
--bot-storage-quota=real
44
44
45
+
# Set explicit byte values
46
+
--bot-js-heap-size-limit=4294967296
47
+
--bot-storage-quota=10737418240
45
48
```
46
49
47
50
`--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.
48
51
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.
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.
0 commit comments