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 Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· 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 { | |||
| 284 | 284 | // fields are set to non-default values. Used for validation. | |
| 285 | 285 | func HasCustomPerformanceFields(cfg *PerformanceConfig) bool { | |
| 286 | 286 | return cfg.SkiaCPUPaintingThreads != 0 || | |
| 287 | - | cfg.SkiaGPUPaintingThreads != -1 || | |
| 287 | + | (cfg.SkiaGPUPaintingThreads != -1 && cfg.SkiaGPUPaintingThreads != 0) || | |
| 288 | 288 | cfg.SkiaEnableCPURendering || | |
| 289 | 289 | cfg.WebProcessMemoryLimitMB != 0 || | |
| 290 | 290 | 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) { | |||
| 267 | 267 | }, | |
| 268 | 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 | 278 | name: "skia cpu threads set", | |
| 272 | 279 | 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) { | |||
| 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 | + | } | |
| @@ -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 | + | } | |||