Group browser proxy settings in accordion
Place the internal Browser proxy fields in a native disclosure and keep its styling borderless. Refresh the guide screenshot and cover the config markup.
Alessandro committed
Jul 27, 2026 at 14:57 UTC
87e1e591e1ba2e8b1a19d34e134fcae490c8dded
3 files changed
+66
-47
docs/res/usage/browser/browser-plugin-settings.png
Binary files a/docs/res/usage/browser/browser-plugin-settings.png and b/docs/res/usage/browser/browser-plugin-settings.png differ
plugins/_browser/webui/config.html
+64
-47
@@ -49,58 +49,54 @@
49
<span>Internal Docker browser selected. Host-browser CLI settings are ignored for Browser tool runs.</span>
50
</div>
51
52
- <label
53
- class="browser-config-field"
52
+ <details
53
+ class="browser-config-proxy"
54
x-show="$store.browserConfig.config.runtime_backend === 'container'"
55
>
56
- <span class="browser-config-field-label">Proxy server</span>
57
- <input
58
- type="text"
59
- x-model="$store.browserConfig.config.proxy_server"
60
- placeholder="http://proxy.example:3128 or socks5://proxy.example:1080"
61
- autocomplete="off"
62
- />
63
- <span class="browser-config-field-help">Optional. Routes the internal browser through this HTTP or SOCKS proxy.</span>
64
- </label>
56
+ <summary>Proxy server</summary>
57
+ <div class="browser-config-proxy-body">
58
+ <label class="browser-config-field">
59
+ <input
60
+ type="text"
61
+ x-model="$store.browserConfig.config.proxy_server"
62
+ placeholder="http://proxy.example:3128 or socks5://proxy.example:1080"
63
+ aria-label="Proxy server"
64
+ autocomplete="off"
65
+ />
66
+ <span class="browser-config-field-help">Optional. Routes the internal browser through this HTTP or SOCKS proxy.</span>
67
+ </label>
68
66
- <label
67
- class="browser-config-field"
68
- x-show="$store.browserConfig.config.runtime_backend === 'container'"
69
- >
70
- <span class="browser-config-field-label">Bypass proxy for</span>
71
- <input
72
- type="text"
73
- x-model="$store.browserConfig.config.proxy_bypass"
74
- placeholder="localhost, .example.com"
75
- autocomplete="off"
76
- />
77
- <span class="browser-config-field-help">Optional comma-separated domains that should connect directly.</span>
78
- </label>
69
+ <label class="browser-config-field">
70
+ <span class="browser-config-field-label">Bypass proxy for</span>
71
+ <input
72
+ type="text"
73
+ x-model="$store.browserConfig.config.proxy_bypass"
74
+ placeholder="localhost, .example.com"
75
+ autocomplete="off"
76
+ />
77
+ <span class="browser-config-field-help">Optional comma-separated domains that should connect directly.</span>
78
+ </label>
79
80
- <label
81
- class="browser-config-field"
82
- x-show="$store.browserConfig.config.runtime_backend === 'container'"
83
- >
84
- <span class="browser-config-field-label">Proxy username</span>
85
- <input
86
- type="text"
87
- x-model="$store.browserConfig.config.proxy_username"
88
- autocomplete="off"
89
- />
90
- </label>
80
+ <label class="browser-config-field">
81
+ <span class="browser-config-field-label">Proxy username</span>
82
+ <input
83
+ type="text"
84
+ x-model="$store.browserConfig.config.proxy_username"
85
+ autocomplete="off"
86
+ />
87
+ </label>
88
92
- <label
93
- class="browser-config-field"
94
- x-show="$store.browserConfig.config.runtime_backend === 'container'"
95
- >
96
- <span class="browser-config-field-label">Proxy password</span>
97
- <input
98
- type="password"
99
- x-model="$store.browserConfig.config.proxy_password"
100
- autocomplete="off"
101
- />
102
- <span class="browser-config-field-help">Saving proxy changes restarts active internal Browser sessions.</span>
103
- </label>
89
+ <label class="browser-config-field">
90
+ <span class="browser-config-field-label">Proxy password</span>
91
+ <input
92
+ type="password"
93
+ x-model="$store.browserConfig.config.proxy_password"
94
+ autocomplete="off"
95
+ />
96
+ <span class="browser-config-field-help">Saving proxy changes restarts active internal Browser sessions.</span>
97
+ </label>
98
+ </div>
99
+ </details>
100
101
<label
102
class="browser-config-field"
@@ -376,6 +372,27 @@
372
line-height: 1.35;
373
}
374
375
+ .browser-config-proxy {
376
+ overflow: hidden;
377
+ border-radius: 8px;
378
+ }
379
+
380
+ .browser-config-proxy summary {
381
+ padding: 10px 12px;
382
+ color: var(--color-text);
383
+ font-size: 0.84rem;
384
+ font-weight: 650;
385
+ cursor: pointer;
386
+ }
387
+
388
+ .browser-config-proxy-body {
389
+ display: flex;
390
+ flex-direction: column;
391
+ gap: 14px;
392
+ padding: 14px;
393
+ border-top: 1px solid color-mix(in srgb, var(--color-border) 74%, transparent);
394
+ }
395
+
396
.browser-config-field input[type="text"],
397
.browser-config-field input[type="password"],
398
.browser-config-field input[type="number"],
tests/test_browser_agent_regressions.py
+2
@@ -1259,6 +1259,8 @@ def test_browser_extension_settings_stay_user_facing():
1259
assert 'x-model="$store.browserConfig.config.proxy_bypass"' in config_html
1260
assert 'x-model="$store.browserConfig.config.proxy_username"' in config_html
1261
assert 'x-model="$store.browserConfig.config.proxy_password"' in config_html
1262
+ assert '<details\n class="browser-config-proxy"' in config_html
1263
+ assert "<summary>Proxy server</summary>" in config_html
1264
assert 'type="password"' in config_html
1265
assert "normalizeMaxOpenTabs()" in config_html
1266
assert "BROWSER_TAB_SCOPES" in config_store