engine_config.go RawHistoryFolder
1package webkit
2
3import "github.com/bnema/dumber/internal/infrastructure/config"
4
5// WebKitEngineConfig holds all WebKit-specific engine configuration.
6// This is the infrastructure-side version (no TOML tags).
7type WebKitEngineConfig struct {
8 // Skia
9 SkiaCPUPaintingThreads int
10 SkiaGPUPaintingThreads int
11 SkiaEnableCPURendering bool
12 // WebKit compositor
13 DisableDMABufRenderer bool
14 ForceCompositingMode bool
15 DisableCompositingMode bool
16 // GTK/GSK
17 GSKRenderer string
18 DisableMipmaps bool
19 PreferGL bool
20 // Debug
21 ShowFPS bool
22 SampleMemory bool
23 DebugFrames bool
24 DrawCompositingIndicators bool
25 // Privacy
26 ITPEnabled bool
27 // GStreamer
28 ForceVSync bool
29 GLRenderingMode string
30 GStreamerDebugLevel int
31 // Runtime
32 Prefix string
33 // Memory pressure (all fields from config)
34 WebProcessMemoryLimitMB int
35 WebProcessMemoryPollIntervalSec float64
36 WebProcessMemoryConservativeThreshold float64
37 WebProcessMemoryStrictThreshold float64
38 NetworkProcessMemoryLimitMB int
39 NetworkProcessMemoryPollIntervalSec float64
40 NetworkProcessMemoryConservativeThreshold float64
41 NetworkProcessMemoryStrictThreshold float64
42}
43
44// EngineConfigFromConfig converts config.WebKitEngineConfig to the infra type.
45func EngineConfigFromConfig(cfg config.WebKitEngineConfig) WebKitEngineConfig {
46 return WebKitEngineConfig{
47 SkiaCPUPaintingThreads: cfg.SkiaCPUPaintingThreads,
48 SkiaGPUPaintingThreads: cfg.SkiaGPUPaintingThreads,
49 SkiaEnableCPURendering: cfg.SkiaEnableCPURendering,
50 DisableDMABufRenderer: cfg.DisableDMABufRenderer,
51 ForceCompositingMode: cfg.ForceCompositingMode,
52 DisableCompositingMode: cfg.DisableCompositingMode,
53 GSKRenderer: string(cfg.GSKRenderer),
54 DisableMipmaps: cfg.DisableMipmaps,
55 PreferGL: cfg.PreferGL,
56 ShowFPS: cfg.ShowFPS,
57 SampleMemory: cfg.SampleMemory,
58 DebugFrames: cfg.DebugFrames,
59 DrawCompositingIndicators: cfg.DrawCompositingIndicators,
60 ITPEnabled: cfg.ITPEnabled,
61 ForceVSync: cfg.ForceVSync,
62 GLRenderingMode: string(cfg.GLRenderingMode),
63 GStreamerDebugLevel: cfg.GStreamerDebugLevel,
64 Prefix: cfg.Prefix,
65 WebProcessMemoryLimitMB: cfg.WebProcessMemoryLimitMB,
66 WebProcessMemoryPollIntervalSec: cfg.WebProcessMemoryPollIntervalSec,
67 WebProcessMemoryConservativeThreshold: cfg.WebProcessMemoryConservativeThreshold,
68 WebProcessMemoryStrictThreshold: cfg.WebProcessMemoryStrictThreshold,
69 NetworkProcessMemoryLimitMB: cfg.NetworkProcessMemoryLimitMB,
70 NetworkProcessMemoryPollIntervalSec: cfg.NetworkProcessMemoryPollIntervalSec,
71 NetworkProcessMemoryConservativeThreshold: cfg.NetworkProcessMemoryConservativeThreshold,
72 NetworkProcessMemoryStrictThreshold: cfg.NetworkProcessMemoryStrictThreshold,
73 }
74}