fix: add engine defaults to config schema for correct migrate diff
Engine config had no defaults registered, causing `dumber config migrate` to show engine.* settings as "deprecated" and old sections as "new" (inverted). Add Engine/WebKit defaults to DefaultConfig() and setEngineDefaults() so the schema diff correctly classifies old sections as deprecated after migration.
- commit
- 4afa706afc4d4fc7b633c47f71ef6131eee9bdb9
- author
- brice · · 2026-03-15 19:47 UTC
- parent
- 71664a3
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
2 files · +52 -0
M internal/infrastructure/config/defaults.go +14 -0
| @@ -142,6 +142,20 @@ func DefaultConfig() *Config { | |||
| 142 | 142 | Debug: DebugConfig{ | |
| 143 | 143 | EnableDevTools: true, | |
| 144 | 144 | }, | |
| 145 | + | Engine: EngineConfig{ | |
| 146 | + | Type: "webkit", | |
| 147 | + | Profile: ProfileDefault, | |
| 148 | + | PoolPrewarmCount: defaultWebViewPoolPrewarmCount, | |
| 149 | + | ZoomCacheSize: defaultZoomCacheSize, | |
| 150 | + | CookiePolicy: CookiePolicyNoThirdParty, | |
| 151 | + | WebKit: WebKitEngineConfig{ | |
| 152 | + | ITPEnabled: true, | |
| 153 | + | SkiaCPUPaintingThreads: defaultSkiaCPUPaintingThreads, | |
| 154 | + | SkiaGPUPaintingThreads: defaultSkiaGPUPaintingThreads, | |
| 155 | + | GSKRenderer: GSKRendererAuto, | |
| 156 | + | GLRenderingMode: GLRenderingModeAuto, | |
| 157 | + | }, | |
| 158 | + | }, | |
| 145 | 159 | Rendering: RenderingConfig{ | |
| 146 | 160 | Mode: RenderingModeGPU, | |
| 147 | 161 | DisableDMABufRenderer: false, | |
| @@ -142,6 +142,20 @@ func DefaultConfig() *Config { | |||||
| 142 | Debug: DebugConfig{ | 142 | Debug: DebugConfig{ | ||
| 143 | EnableDevTools: true, | 143 | EnableDevTools: true, | ||
| 144 | }, | 144 | }, | ||
| 145 | + | Engine: EngineConfig{ | |||
| 146 | + | Type: "webkit", | |||
| 147 | + | Profile: ProfileDefault, | |||
| 148 | + | PoolPrewarmCount: defaultWebViewPoolPrewarmCount, | |||
| 149 | + | ZoomCacheSize: defaultZoomCacheSize, | |||
| 150 | + | CookiePolicy: CookiePolicyNoThirdParty, | |||
| 151 | + | WebKit: WebKitEngineConfig{ | |||
| 152 | + | ITPEnabled: true, | |||
| 153 | + | SkiaCPUPaintingThreads: defaultSkiaCPUPaintingThreads, | |||
| 154 | + | SkiaGPUPaintingThreads: defaultSkiaGPUPaintingThreads, | |||
| 155 | + | GSKRenderer: GSKRendererAuto, | |||
| 156 | + | GLRenderingMode: GLRenderingModeAuto, | |||
| 157 | + | }, | |||
| 158 | + | }, | |||
| 145 | Rendering: RenderingConfig{ | 159 | Rendering: RenderingConfig{ | ||
| 146 | Mode: RenderingModeGPU, | 160 | Mode: RenderingModeGPU, | ||
| 147 | DisableDMABufRenderer: false, | 161 | DisableDMABufRenderer: false, | ||
M internal/infrastructure/config/loader.go +38 -0
| @@ -428,6 +428,7 @@ func (m *Manager) setDefaults() { | |||
| 428 | 428 | m.setLoggingDefaults(defaults) | |
| 429 | 429 | m.setDebugDefaults(defaults) | |
| 430 | 430 | m.setAppearanceDefaults(defaults) | |
| 431 | + | m.setEngineDefaults(defaults) | |
| 431 | 432 | m.setRenderingDefaults(defaults) | |
| 432 | 433 | m.setPrivacyDefaults(defaults) | |
| 433 | 434 | m.setWorkspaceDefaults(defaults) | |
| @@ -615,6 +616,43 @@ func (m *Manager) setDownloadsDefaults(defaults *Config) { | |||
| 615 | 616 | m.viper.SetDefault("downloads.path", defaults.Downloads.Path) | |
| 616 | 617 | } | |
| 617 | 618 | ||
| 619 | + | func (m *Manager) setEngineDefaults(defaults *Config) { | |
| 620 | + | e := defaults.Engine | |
| 621 | + | m.viper.SetDefault("engine.type", e.Type) | |
| 622 | + | m.viper.SetDefault("engine.profile", string(e.Profile)) | |
| 623 | + | m.viper.SetDefault("engine.pool_prewarm_count", e.PoolPrewarmCount) | |
| 624 | + | m.viper.SetDefault("engine.zoom_cache_size", e.ZoomCacheSize) | |
| 625 | + | m.viper.SetDefault("engine.cookie_policy", string(e.CookiePolicy)) | |
| 626 | + | ||
| 627 | + | wk := e.WebKit | |
| 628 | + | m.viper.SetDefault("engine.webkit.itp_enabled", wk.ITPEnabled) | |
| 629 | + | m.viper.SetDefault("engine.webkit.skia_cpu_painting_threads", wk.SkiaCPUPaintingThreads) | |
| 630 | + | m.viper.SetDefault("engine.webkit.skia_gpu_painting_threads", wk.SkiaGPUPaintingThreads) | |
| 631 | + | m.viper.SetDefault("engine.webkit.skia_enable_cpu_rendering", wk.SkiaEnableCPURendering) | |
| 632 | + | m.viper.SetDefault("engine.webkit.disable_dmabuf_renderer", wk.DisableDMABufRenderer) | |
| 633 | + | m.viper.SetDefault("engine.webkit.force_compositing_mode", wk.ForceCompositingMode) | |
| 634 | + | m.viper.SetDefault("engine.webkit.disable_compositing_mode", wk.DisableCompositingMode) | |
| 635 | + | m.viper.SetDefault("engine.webkit.gsk_renderer", string(wk.GSKRenderer)) | |
| 636 | + | m.viper.SetDefault("engine.webkit.disable_mipmaps", wk.DisableMipmaps) | |
| 637 | + | m.viper.SetDefault("engine.webkit.prefer_gl", wk.PreferGL) | |
| 638 | + | m.viper.SetDefault("engine.webkit.draw_compositing_indicators", wk.DrawCompositingIndicators) | |
| 639 | + | m.viper.SetDefault("engine.webkit.show_fps", wk.ShowFPS) | |
| 640 | + | m.viper.SetDefault("engine.webkit.sample_memory", wk.SampleMemory) | |
| 641 | + | m.viper.SetDefault("engine.webkit.debug_frames", wk.DebugFrames) | |
| 642 | + | m.viper.SetDefault("engine.webkit.force_vsync", wk.ForceVSync) | |
| 643 | + | m.viper.SetDefault("engine.webkit.gl_rendering_mode", string(wk.GLRenderingMode)) | |
| 644 | + | m.viper.SetDefault("engine.webkit.gstreamer_debug_level", wk.GStreamerDebugLevel) | |
| 645 | + | m.viper.SetDefault("engine.webkit.prefix", wk.Prefix) | |
| 646 | + | m.viper.SetDefault("engine.webkit.web_process_memory_limit_mb", wk.WebProcessMemoryLimitMB) | |
| 647 | + | m.viper.SetDefault("engine.webkit.web_process_memory_poll_interval_sec", wk.WebProcessMemoryPollIntervalSec) | |
| 648 | + | m.viper.SetDefault("engine.webkit.web_process_memory_conservative_threshold", wk.WebProcessMemoryConservativeThreshold) | |
| 649 | + | m.viper.SetDefault("engine.webkit.web_process_memory_strict_threshold", wk.WebProcessMemoryStrictThreshold) | |
| 650 | + | m.viper.SetDefault("engine.webkit.network_process_memory_limit_mb", wk.NetworkProcessMemoryLimitMB) | |
| 651 | + | m.viper.SetDefault("engine.webkit.network_process_memory_poll_interval_sec", wk.NetworkProcessMemoryPollIntervalSec) | |
| 652 | + | m.viper.SetDefault("engine.webkit.network_process_memory_conservative_threshold", wk.NetworkProcessMemoryConservativeThreshold) | |
| 653 | + | m.viper.SetDefault("engine.webkit.network_process_memory_strict_threshold", wk.NetworkProcessMemoryStrictThreshold) | |
| 654 | + | } | |
| 655 | + | ||
| 618 | 656 | // New returns a new default configuration instance. | |
| 619 | 657 | // This is a convenience function for getting default config without the full manager. | |
| 620 | 658 | func New() *Config { | |
| @@ -428,6 +428,7 @@ func (m *Manager) setDefaults() { | |||||
| 428 | m.setLoggingDefaults(defaults) | 428 | m.setLoggingDefaults(defaults) | ||
| 429 | m.setDebugDefaults(defaults) | 429 | m.setDebugDefaults(defaults) | ||
| 430 | m.setAppearanceDefaults(defaults) | 430 | m.setAppearanceDefaults(defaults) | ||
| 431 | + | m.setEngineDefaults(defaults) | |||
| 431 | m.setRenderingDefaults(defaults) | 432 | m.setRenderingDefaults(defaults) | ||
| 432 | m.setPrivacyDefaults(defaults) | 433 | m.setPrivacyDefaults(defaults) | ||
| 433 | m.setWorkspaceDefaults(defaults) | 434 | m.setWorkspaceDefaults(defaults) | ||
| @@ -615,6 +616,43 @@ func (m *Manager) setDownloadsDefaults(defaults *Config) { | |||||
| 615 | m.viper.SetDefault("downloads.path", defaults.Downloads.Path) | 616 | m.viper.SetDefault("downloads.path", defaults.Downloads.Path) | ||
| 616 | } | 617 | } | ||
| 617 | 618 | ||||
| 619 | + | func (m *Manager) setEngineDefaults(defaults *Config) { | |||
| 620 | + | e := defaults.Engine | |||
| 621 | + | m.viper.SetDefault("engine.type", e.Type) | |||
| 622 | + | m.viper.SetDefault("engine.profile", string(e.Profile)) | |||
| 623 | + | m.viper.SetDefault("engine.pool_prewarm_count", e.PoolPrewarmCount) | |||
| 624 | + | m.viper.SetDefault("engine.zoom_cache_size", e.ZoomCacheSize) | |||
| 625 | + | m.viper.SetDefault("engine.cookie_policy", string(e.CookiePolicy)) | |||
| 626 | + | ||||
| 627 | + | wk := e.WebKit | |||
| 628 | + | m.viper.SetDefault("engine.webkit.itp_enabled", wk.ITPEnabled) | |||
| 629 | + | m.viper.SetDefault("engine.webkit.skia_cpu_painting_threads", wk.SkiaCPUPaintingThreads) | |||
| 630 | + | m.viper.SetDefault("engine.webkit.skia_gpu_painting_threads", wk.SkiaGPUPaintingThreads) | |||
| 631 | + | m.viper.SetDefault("engine.webkit.skia_enable_cpu_rendering", wk.SkiaEnableCPURendering) | |||
| 632 | + | m.viper.SetDefault("engine.webkit.disable_dmabuf_renderer", wk.DisableDMABufRenderer) | |||
| 633 | + | m.viper.SetDefault("engine.webkit.force_compositing_mode", wk.ForceCompositingMode) | |||
| 634 | + | m.viper.SetDefault("engine.webkit.disable_compositing_mode", wk.DisableCompositingMode) | |||
| 635 | + | m.viper.SetDefault("engine.webkit.gsk_renderer", string(wk.GSKRenderer)) | |||
| 636 | + | m.viper.SetDefault("engine.webkit.disable_mipmaps", wk.DisableMipmaps) | |||
| 637 | + | m.viper.SetDefault("engine.webkit.prefer_gl", wk.PreferGL) | |||
| 638 | + | m.viper.SetDefault("engine.webkit.draw_compositing_indicators", wk.DrawCompositingIndicators) | |||
| 639 | + | m.viper.SetDefault("engine.webkit.show_fps", wk.ShowFPS) | |||
| 640 | + | m.viper.SetDefault("engine.webkit.sample_memory", wk.SampleMemory) | |||
| 641 | + | m.viper.SetDefault("engine.webkit.debug_frames", wk.DebugFrames) | |||
| 642 | + | m.viper.SetDefault("engine.webkit.force_vsync", wk.ForceVSync) | |||
| 643 | + | m.viper.SetDefault("engine.webkit.gl_rendering_mode", string(wk.GLRenderingMode)) | |||
| 644 | + | m.viper.SetDefault("engine.webkit.gstreamer_debug_level", wk.GStreamerDebugLevel) | |||
| 645 | + | m.viper.SetDefault("engine.webkit.prefix", wk.Prefix) | |||
| 646 | + | m.viper.SetDefault("engine.webkit.web_process_memory_limit_mb", wk.WebProcessMemoryLimitMB) | |||
| 647 | + | m.viper.SetDefault("engine.webkit.web_process_memory_poll_interval_sec", wk.WebProcessMemoryPollIntervalSec) | |||
| 648 | + | m.viper.SetDefault("engine.webkit.web_process_memory_conservative_threshold", wk.WebProcessMemoryConservativeThreshold) | |||
| 649 | + | m.viper.SetDefault("engine.webkit.web_process_memory_strict_threshold", wk.WebProcessMemoryStrictThreshold) | |||
| 650 | + | m.viper.SetDefault("engine.webkit.network_process_memory_limit_mb", wk.NetworkProcessMemoryLimitMB) | |||
| 651 | + | m.viper.SetDefault("engine.webkit.network_process_memory_poll_interval_sec", wk.NetworkProcessMemoryPollIntervalSec) | |||
| 652 | + | m.viper.SetDefault("engine.webkit.network_process_memory_conservative_threshold", wk.NetworkProcessMemoryConservativeThreshold) | |||
| 653 | + | m.viper.SetDefault("engine.webkit.network_process_memory_strict_threshold", wk.NetworkProcessMemoryStrictThreshold) | |||
| 654 | + | } | |||
| 655 | + | ||||
| 618 | // New returns a new default configuration instance. | 656 | // New returns a new default configuration instance. | ||
| 619 | // This is a convenience function for getting default config without the full manager. | 657 | // This is a convenience function for getting default config without the full manager. | ||
| 620 | func New() *Config { | 658 | func New() *Config { | ||