detached 1b3c460

fix(config): accept default webkit gpu thread values

Treat skia_gpu_painting_threads = 0 as default-compatible during profile validation so older or default-looking WebKit configs do not fail startup under the default profile.
commit
1b3c460474aee30d7e89631208039c1994f95ba9
author
brice · · 2026-04-12 04:28 UTC
parent
5d3e5a8
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
3 files · +17 -1
M internal/infrastructure/config/profile.go +1 -1
@@ -284,7 +284,7 @@ func resolveCustomProfile(cfg *PerformanceConfig) ResolvedPerformanceSettings {
284284 // fields are set to non-default values. Used for validation.
285285 func HasCustomPerformanceFields(cfg *PerformanceConfig) bool {
286286 return cfg.SkiaCPUPaintingThreads != 0 ||
287- cfg.SkiaGPUPaintingThreads != -1 ||
287+ (cfg.SkiaGPUPaintingThreads != -1 && cfg.SkiaGPUPaintingThreads != 0) ||
288288 cfg.SkiaEnableCPURendering ||
289289 cfg.WebProcessMemoryLimitMB != 0 ||
290290 cfg.WebProcessMemoryPollIntervalSec != 0 ||
@@ -284,7 +284,7 @@ func resolveCustomProfile(cfg *PerformanceConfig) ResolvedPerformanceSettings {
284 // fields are set to non-default values. Used for validation.284 // fields are set to non-default values. Used for validation.
285 func HasCustomPerformanceFields(cfg *PerformanceConfig) bool {285 func HasCustomPerformanceFields(cfg *PerformanceConfig) bool {
286 return cfg.SkiaCPUPaintingThreads != 0 ||286 return cfg.SkiaCPUPaintingThreads != 0 ||
287- cfg.SkiaGPUPaintingThreads != -1 ||287+ (cfg.SkiaGPUPaintingThreads != -1 && cfg.SkiaGPUPaintingThreads != 0) ||
288 cfg.SkiaEnableCPURendering ||288 cfg.SkiaEnableCPURendering ||
289 cfg.WebProcessMemoryLimitMB != 0 ||289 cfg.WebProcessMemoryLimitMB != 0 ||
290 cfg.WebProcessMemoryPollIntervalSec != 0 ||290 cfg.WebProcessMemoryPollIntervalSec != 0 ||
M internal/infrastructure/config/profile_test.go +7 -0
@@ -267,6 +267,13 @@ func TestHasCustomPerformanceFields(t *testing.T) {
267267 },
268268 expected: false,
269269 },
270+ {
271+ name: "gpu threads zero treated as default",
272+ cfg: PerformanceConfig{
273+ SkiaGPUPaintingThreads: 0,
274+ },
275+ expected: false,
276+ },
270277 {
271278 name: "skia cpu threads set",
272279 cfg: PerformanceConfig{
@@ -267,6 +267,13 @@ func TestHasCustomPerformanceFields(t *testing.T) {
267 },267 },
268 expected: false,268 expected: false,
269 },269 },
270+ {
271+ name: "gpu threads zero treated as default",
272+ cfg: PerformanceConfig{
273+ SkiaGPUPaintingThreads: 0,
274+ },
275+ expected: false,
276+ },
270 {277 {
271 name: "skia cpu threads set",278 name: "skia cpu threads set",
272 cfg: PerformanceConfig{279 cfg: PerformanceConfig{
M internal/infrastructure/config/validation_test.go +9 -0
@@ -88,3 +88,12 @@ func TestValidateConfig_CEFConfig(t *testing.T) {
8888 })
8989 }
9090 }
91+
92+func TestValidateConfig_WebKitDefaultProfileIgnoresZeroGPUThreads(t *testing.T) {
93+ cfg := DefaultConfig()
94+ cfg.Engine.Profile = ProfileDefault
95+ cfg.Engine.WebKit.SkiaGPUPaintingThreads = 0
96+
97+ err := validateConfig(cfg)
98+ require.NoError(t, err)
99+}
@@ -88,3 +88,12 @@ func TestValidateConfig_CEFConfig(t *testing.T) {
88 })88 })
89 }89 }
90 }90 }
91+
92+func TestValidateConfig_WebKitDefaultProfileIgnoresZeroGPUThreads(t *testing.T) {
93+ cfg := DefaultConfig()
94+ cfg.Engine.Profile = ProfileDefault
95+ cfg.Engine.WebKit.SkiaGPUPaintingThreads = 0
96+
97+ err := validateConfig(cfg)
98+ require.NoError(t, err)
99+}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close