refactor(engine): remove stubbed SchemeHandler and MessageRouter from Engine interface
- commit
- 3d33f1dcc5756618dae03723d1cfba856759b48c
- author
- brice · · 2026-03-18 05:45 UTC
- parent
- 9cd7713
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
4 files · +0 -156
M internal/application/port/engine.go +0 -6
| @@ -98,15 +98,9 @@ type Engine interface { | |||
| 98 | 98 | // Pool returns the WebViewPool for acquiring pre-warmed WebView instances. | |
| 99 | 99 | Pool() WebViewPool | |
| 100 | 100 | ||
| 101 | - | // SchemeHandler returns the SchemeHandler for registering custom URI schemes. | |
| 102 | - | SchemeHandler() SchemeHandler | |
| 103 | - | ||
| 104 | 101 | // ContentInjector returns the ContentInjector for injecting scripts and styles. | |
| 105 | 102 | ContentInjector() ContentInjector | |
| 106 | 103 | ||
| 107 | - | // MessageRouter returns the MessageRouter for JS-to-Go message passing. | |
| 108 | - | MessageRouter() MessageRouter | |
| 109 | - | ||
| 110 | 104 | // SettingsApplier returns the SettingsApplier for applying browser settings. | |
| 111 | 105 | SettingsApplier() SettingsApplier | |
| 112 | 106 | ||
| @@ -98,15 +98,9 @@ type Engine interface { | |||||
| 98 | // Pool returns the WebViewPool for acquiring pre-warmed WebView instances. | 98 | // Pool returns the WebViewPool for acquiring pre-warmed WebView instances. | ||
| 99 | Pool() WebViewPool | 99 | Pool() WebViewPool | ||
| 100 | 100 | ||||
| 101 | - | // SchemeHandler returns the SchemeHandler for registering custom URI schemes. | |||
| 102 | - | SchemeHandler() SchemeHandler | |||
| 103 | - | ||||
| 104 | // ContentInjector returns the ContentInjector for injecting scripts and styles. | 101 | // ContentInjector returns the ContentInjector for injecting scripts and styles. | ||
| 105 | ContentInjector() ContentInjector | 102 | ContentInjector() ContentInjector | ||
| 106 | 103 | ||||
| 107 | - | // MessageRouter returns the MessageRouter for JS-to-Go message passing. | |||
| 108 | - | MessageRouter() MessageRouter | |||
| 109 | - | ||||
| 110 | // SettingsApplier returns the SettingsApplier for applying browser settings. | 104 | // SettingsApplier returns the SettingsApplier for applying browser settings. | ||
| 111 | SettingsApplier() SettingsApplier | 105 | SettingsApplier() SettingsApplier | ||
| 112 | 106 | ||||
M internal/application/port/mocks/mocks.go +0 -92
| @@ -2966,52 +2966,6 @@ func (_c *MockEngine_InternalSchemePath_Call) RunAndReturn(run func() string) *M | |||
| 2966 | 2966 | return _c | |
| 2967 | 2967 | } | |
| 2968 | 2968 | ||
| 2969 | - | // MessageRouter provides a mock function for the type MockEngine | |
| 2970 | - | func (_mock *MockEngine) MessageRouter() port.MessageRouter { | |
| 2971 | - | ret := _mock.Called() | |
| 2972 | - | ||
| 2973 | - | if len(ret) == 0 { | |
| 2974 | - | panic("no return value specified for MessageRouter") | |
| 2975 | - | } | |
| 2976 | - | ||
| 2977 | - | var r0 port.MessageRouter | |
| 2978 | - | if returnFunc, ok := ret.Get(0).(func() port.MessageRouter); ok { | |
| 2979 | - | r0 = returnFunc() | |
| 2980 | - | } else { | |
| 2981 | - | if ret.Get(0) != nil { | |
| 2982 | - | r0 = ret.Get(0).(port.MessageRouter) | |
| 2983 | - | } | |
| 2984 | - | } | |
| 2985 | - | return r0 | |
| 2986 | - | } | |
| 2987 | - | ||
| 2988 | - | // MockEngine_MessageRouter_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MessageRouter' | |
| 2989 | - | type MockEngine_MessageRouter_Call struct { | |
| 2990 | - | *mock.Call | |
| 2991 | - | } | |
| 2992 | - | ||
| 2993 | - | // MessageRouter is a helper method to define mock.On call | |
| 2994 | - | func (_e *MockEngine_Expecter) MessageRouter() *MockEngine_MessageRouter_Call { | |
| 2995 | - | return &MockEngine_MessageRouter_Call{Call: _e.mock.On("MessageRouter")} | |
| 2996 | - | } | |
| 2997 | - | ||
| 2998 | - | func (_c *MockEngine_MessageRouter_Call) Run(run func()) *MockEngine_MessageRouter_Call { | |
| 2999 | - | _c.Call.Run(func(args mock.Arguments) { | |
| 3000 | - | run() | |
| 3001 | - | }) | |
| 3002 | - | return _c | |
| 3003 | - | } | |
| 3004 | - | ||
| 3005 | - | func (_c *MockEngine_MessageRouter_Call) Return(messageRouter port.MessageRouter) *MockEngine_MessageRouter_Call { | |
| 3006 | - | _c.Call.Return(messageRouter) | |
| 3007 | - | return _c | |
| 3008 | - | } | |
| 3009 | - | ||
| 3010 | - | func (_c *MockEngine_MessageRouter_Call) RunAndReturn(run func() port.MessageRouter) *MockEngine_MessageRouter_Call { | |
| 3011 | - | _c.Call.Return(run) | |
| 3012 | - | return _c | |
| 3013 | - | } | |
| 3014 | - | ||
| 3015 | 2969 | // OnToolkitReady provides a mock function for the type MockEngine | |
| 3016 | 2970 | func (_mock *MockEngine) OnToolkitReady(ctx context.Context) error { | |
| 3017 | 2971 | ret := _mock.Called(ctx) | |
| @@ -3223,52 +3177,6 @@ func (_c *MockEngine_RegisterHandlers_Call) RunAndReturn(run func(ctx context.Co | |||
| 3223 | 3177 | return _c | |
| 3224 | 3178 | } | |
| 3225 | 3179 | ||
| 3226 | - | // SchemeHandler provides a mock function for the type MockEngine | |
| 3227 | - | func (_mock *MockEngine) SchemeHandler() port.SchemeHandler { | |
| 3228 | - | ret := _mock.Called() | |
| 3229 | - | ||
| 3230 | - | if len(ret) == 0 { | |
| 3231 | - | panic("no return value specified for SchemeHandler") | |
| 3232 | - | } | |
| 3233 | - | ||
| 3234 | - | var r0 port.SchemeHandler | |
| 3235 | - | if returnFunc, ok := ret.Get(0).(func() port.SchemeHandler); ok { | |
| 3236 | - | r0 = returnFunc() | |
| 3237 | - | } else { | |
| 3238 | - | if ret.Get(0) != nil { | |
| 3239 | - | r0 = ret.Get(0).(port.SchemeHandler) | |
| 3240 | - | } | |
| 3241 | - | } | |
| 3242 | - | return r0 | |
| 3243 | - | } | |
| 3244 | - | ||
| 3245 | - | // MockEngine_SchemeHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SchemeHandler' | |
| 3246 | - | type MockEngine_SchemeHandler_Call struct { | |
| 3247 | - | *mock.Call | |
| 3248 | - | } | |
| 3249 | - | ||
| 3250 | - | // SchemeHandler is a helper method to define mock.On call | |
| 3251 | - | func (_e *MockEngine_Expecter) SchemeHandler() *MockEngine_SchemeHandler_Call { | |
| 3252 | - | return &MockEngine_SchemeHandler_Call{Call: _e.mock.On("SchemeHandler")} | |
| 3253 | - | } | |
| 3254 | - | ||
| 3255 | - | func (_c *MockEngine_SchemeHandler_Call) Run(run func()) *MockEngine_SchemeHandler_Call { | |
| 3256 | - | _c.Call.Run(func(args mock.Arguments) { | |
| 3257 | - | run() | |
| 3258 | - | }) | |
| 3259 | - | return _c | |
| 3260 | - | } | |
| 3261 | - | ||
| 3262 | - | func (_c *MockEngine_SchemeHandler_Call) Return(schemeHandler port.SchemeHandler) *MockEngine_SchemeHandler_Call { | |
| 3263 | - | _c.Call.Return(schemeHandler) | |
| 3264 | - | return _c | |
| 3265 | - | } | |
| 3266 | - | ||
| 3267 | - | func (_c *MockEngine_SchemeHandler_Call) RunAndReturn(run func() port.SchemeHandler) *MockEngine_SchemeHandler_Call { | |
| 3268 | - | _c.Call.Return(run) | |
| 3269 | - | return _c | |
| 3270 | - | } | |
| 3271 | - | ||
| 3272 | 3180 | // SetHandlerContext provides a mock function for the type MockEngine | |
| 3273 | 3181 | func (_mock *MockEngine) SetHandlerContext(ctx context.Context) { | |
| 3274 | 3182 | _mock.Called(ctx) | |
| @@ -2966,52 +2966,6 @@ func (_c *MockEngine_InternalSchemePath_Call) RunAndReturn(run func() string) *M | |||||
| 2966 | return _c | 2966 | return _c | ||
| 2967 | } | 2967 | } | ||
| 2968 | 2968 | ||||
| 2969 | - | // MessageRouter provides a mock function for the type MockEngine | |||
| 2970 | - | func (_mock *MockEngine) MessageRouter() port.MessageRouter { | |||
| 2971 | - | ret := _mock.Called() | |||
| 2972 | - | ||||
| 2973 | - | if len(ret) == 0 { | |||
| 2974 | - | panic("no return value specified for MessageRouter") | |||
| 2975 | - | } | |||
| 2976 | - | ||||
| 2977 | - | var r0 port.MessageRouter | |||
| 2978 | - | if returnFunc, ok := ret.Get(0).(func() port.MessageRouter); ok { | |||
| 2979 | - | r0 = returnFunc() | |||
| 2980 | - | } else { | |||
| 2981 | - | if ret.Get(0) != nil { | |||
| 2982 | - | r0 = ret.Get(0).(port.MessageRouter) | |||
| 2983 | - | } | |||
| 2984 | - | } | |||
| 2985 | - | return r0 | |||
| 2986 | - | } | |||
| 2987 | - | ||||
| 2988 | - | // MockEngine_MessageRouter_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MessageRouter' | |||
| 2989 | - | type MockEngine_MessageRouter_Call struct { | |||
| 2990 | - | *mock.Call | |||
| 2991 | - | } | |||
| 2992 | - | ||||
| 2993 | - | // MessageRouter is a helper method to define mock.On call | |||
| 2994 | - | func (_e *MockEngine_Expecter) MessageRouter() *MockEngine_MessageRouter_Call { | |||
| 2995 | - | return &MockEngine_MessageRouter_Call{Call: _e.mock.On("MessageRouter")} | |||
| 2996 | - | } | |||
| 2997 | - | ||||
| 2998 | - | func (_c *MockEngine_MessageRouter_Call) Run(run func()) *MockEngine_MessageRouter_Call { | |||
| 2999 | - | _c.Call.Run(func(args mock.Arguments) { | |||
| 3000 | - | run() | |||
| 3001 | - | }) | |||
| 3002 | - | return _c | |||
| 3003 | - | } | |||
| 3004 | - | ||||
| 3005 | - | func (_c *MockEngine_MessageRouter_Call) Return(messageRouter port.MessageRouter) *MockEngine_MessageRouter_Call { | |||
| 3006 | - | _c.Call.Return(messageRouter) | |||
| 3007 | - | return _c | |||
| 3008 | - | } | |||
| 3009 | - | ||||
| 3010 | - | func (_c *MockEngine_MessageRouter_Call) RunAndReturn(run func() port.MessageRouter) *MockEngine_MessageRouter_Call { | |||
| 3011 | - | _c.Call.Return(run) | |||
| 3012 | - | return _c | |||
| 3013 | - | } | |||
| 3014 | - | ||||
| 3015 | // OnToolkitReady provides a mock function for the type MockEngine | 2969 | // OnToolkitReady provides a mock function for the type MockEngine | ||
| 3016 | func (_mock *MockEngine) OnToolkitReady(ctx context.Context) error { | 2970 | func (_mock *MockEngine) OnToolkitReady(ctx context.Context) error { | ||
| 3017 | ret := _mock.Called(ctx) | 2971 | ret := _mock.Called(ctx) | ||
| @@ -3223,52 +3177,6 @@ func (_c *MockEngine_RegisterHandlers_Call) RunAndReturn(run func(ctx context.Co | |||||
| 3223 | return _c | 3177 | return _c | ||
| 3224 | } | 3178 | } | ||
| 3225 | 3179 | ||||
| 3226 | - | // SchemeHandler provides a mock function for the type MockEngine | |||
| 3227 | - | func (_mock *MockEngine) SchemeHandler() port.SchemeHandler { | |||
| 3228 | - | ret := _mock.Called() | |||
| 3229 | - | ||||
| 3230 | - | if len(ret) == 0 { | |||
| 3231 | - | panic("no return value specified for SchemeHandler") | |||
| 3232 | - | } | |||
| 3233 | - | ||||
| 3234 | - | var r0 port.SchemeHandler | |||
| 3235 | - | if returnFunc, ok := ret.Get(0).(func() port.SchemeHandler); ok { | |||
| 3236 | - | r0 = returnFunc() | |||
| 3237 | - | } else { | |||
| 3238 | - | if ret.Get(0) != nil { | |||
| 3239 | - | r0 = ret.Get(0).(port.SchemeHandler) | |||
| 3240 | - | } | |||
| 3241 | - | } | |||
| 3242 | - | return r0 | |||
| 3243 | - | } | |||
| 3244 | - | ||||
| 3245 | - | // MockEngine_SchemeHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SchemeHandler' | |||
| 3246 | - | type MockEngine_SchemeHandler_Call struct { | |||
| 3247 | - | *mock.Call | |||
| 3248 | - | } | |||
| 3249 | - | ||||
| 3250 | - | // SchemeHandler is a helper method to define mock.On call | |||
| 3251 | - | func (_e *MockEngine_Expecter) SchemeHandler() *MockEngine_SchemeHandler_Call { | |||
| 3252 | - | return &MockEngine_SchemeHandler_Call{Call: _e.mock.On("SchemeHandler")} | |||
| 3253 | - | } | |||
| 3254 | - | ||||
| 3255 | - | func (_c *MockEngine_SchemeHandler_Call) Run(run func()) *MockEngine_SchemeHandler_Call { | |||
| 3256 | - | _c.Call.Run(func(args mock.Arguments) { | |||
| 3257 | - | run() | |||
| 3258 | - | }) | |||
| 3259 | - | return _c | |||
| 3260 | - | } | |||
| 3261 | - | ||||
| 3262 | - | func (_c *MockEngine_SchemeHandler_Call) Return(schemeHandler port.SchemeHandler) *MockEngine_SchemeHandler_Call { | |||
| 3263 | - | _c.Call.Return(schemeHandler) | |||
| 3264 | - | return _c | |||
| 3265 | - | } | |||
| 3266 | - | ||||
| 3267 | - | func (_c *MockEngine_SchemeHandler_Call) RunAndReturn(run func() port.SchemeHandler) *MockEngine_SchemeHandler_Call { | |||
| 3268 | - | _c.Call.Return(run) | |||
| 3269 | - | return _c | |||
| 3270 | - | } | |||
| 3271 | - | ||||
| 3272 | // SetHandlerContext provides a mock function for the type MockEngine | 3180 | // SetHandlerContext provides a mock function for the type MockEngine | ||
| 3273 | func (_mock *MockEngine) SetHandlerContext(ctx context.Context) { | 3181 | func (_mock *MockEngine) SetHandlerContext(ctx context.Context) { | ||
| 3274 | _mock.Called(ctx) | 3182 | _mock.Called(ctx) | ||
M internal/infrastructure/webkit/engine.go +0 -10
| @@ -60,16 +60,6 @@ func (e *Engine) Close() error { | |||
| 60 | 60 | return nil | |
| 61 | 61 | } | |
| 62 | 62 | ||
| 63 | - | // SchemeHandler returns a port.SchemeHandler adapter for the DumbSchemeHandler. | |
| 64 | - | func (e *Engine) SchemeHandler() port.SchemeHandler { | |
| 65 | - | return &schemeHandlerAdapter{handler: e.schemeHandler, logger: e.logger} | |
| 66 | - | } | |
| 67 | - | ||
| 68 | - | // MessageRouter returns a port.MessageRouter adapter for the internal MessageRouter. | |
| 69 | - | func (e *Engine) MessageRouter() port.MessageRouter { | |
| 70 | - | return &messageRouterAdapter{router: e.messageRouter, logger: e.logger} | |
| 71 | - | } | |
| 72 | - | ||
| 73 | 63 | // SettingsApplier returns a port.SettingsApplier adapter for the SettingsManager. | |
| 74 | 64 | func (e *Engine) SettingsApplier() port.SettingsApplier { | |
| 75 | 65 | return &settingsApplierAdapter{settings: e.settings} | |
| @@ -60,16 +60,6 @@ func (e *Engine) Close() error { | |||||
| 60 | return nil | 60 | return nil | ||
| 61 | } | 61 | } | ||
| 62 | 62 | ||||
| 63 | - | // SchemeHandler returns a port.SchemeHandler adapter for the DumbSchemeHandler. | |||
| 64 | - | func (e *Engine) SchemeHandler() port.SchemeHandler { | |||
| 65 | - | return &schemeHandlerAdapter{handler: e.schemeHandler, logger: e.logger} | |||
| 66 | - | } | |||
| 67 | - | ||||
| 68 | - | // MessageRouter returns a port.MessageRouter adapter for the internal MessageRouter. | |||
| 69 | - | func (e *Engine) MessageRouter() port.MessageRouter { | |||
| 70 | - | return &messageRouterAdapter{router: e.messageRouter, logger: e.logger} | |||
| 71 | - | } | |||
| 72 | - | ||||
| 73 | // SettingsApplier returns a port.SettingsApplier adapter for the SettingsManager. | 63 | // SettingsApplier returns a port.SettingsApplier adapter for the SettingsManager. | ||
| 74 | func (e *Engine) SettingsApplier() port.SettingsApplier { | 64 | func (e *Engine) SettingsApplier() port.SettingsApplier { | ||
| 75 | return &settingsApplierAdapter{settings: e.settings} | 65 | return &settingsApplierAdapter{settings: e.settings} | ||
M internal/infrastructure/webkit/engine_adapters.go +0 -48
| @@ -8,7 +8,6 @@ import ( | |||
| 8 | 8 | "github.com/bnema/dumber/internal/infrastructure/filtering" | |
| 9 | 9 | "github.com/bnema/dumber/internal/logging" | |
| 10 | 10 | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 11 | - | "github.com/rs/zerolog" | |
| 12 | 11 | ) | |
| 13 | 12 | ||
| 14 | 13 | // --- WebViewFactory adapter --- | |
| @@ -84,53 +83,6 @@ func (a *webViewPoolAdapter) Close() { | |||
| 84 | 83 | a.pool.Close(a.ctx) | |
| 85 | 84 | } | |
| 86 | 85 | ||
| 87 | - | // --- SchemeHandler adapter --- | |
| 88 | - | ||
| 89 | - | // schemeHandlerAdapter bridges *DumbSchemeHandler to port.SchemeHandler. | |
| 90 | - | // DumbSchemeHandler uses a page-based registration pattern (RegisterPage) rather | |
| 91 | - | // than a generic scheme+handler registration; this adapter is a stub until | |
| 92 | - | // consumers are migrated. | |
| 93 | - | type schemeHandlerAdapter struct { | |
| 94 | - | handler *DumbSchemeHandler | |
| 95 | - | logger zerolog.Logger | |
| 96 | - | } | |
| 97 | - | ||
| 98 | - | func (a *schemeHandlerAdapter) RegisterScheme(scheme string, _ func(uri string) ([]byte, string, error)) { | |
| 99 | - | // DumbSchemeHandler handles the "dumb" scheme exclusively via RegisterPage/RegisterWithContext. | |
| 100 | - | // Generic scheme registration is not yet wired through this adapter. | |
| 101 | - | a.logger.Warn(). | |
| 102 | - | Str("scheme", scheme). | |
| 103 | - | Msg("schemeHandlerAdapter.RegisterScheme: not implemented — DumbSchemeHandler uses RegisterPage/RegisterWithContext pattern") | |
| 104 | - | } | |
| 105 | - | ||
| 106 | - | // --- MessageRouter adapter --- | |
| 107 | - | ||
| 108 | - | // messageRouterAdapter bridges *MessageRouter to port.MessageRouter. | |
| 109 | - | // The internal MessageRouter uses a typed MessageHandler interface rather than | |
| 110 | - | // the simple func(string)(string,error) signature in the port interface. | |
| 111 | - | // PostMessage is also not directly available on the internal type. | |
| 112 | - | type messageRouterAdapter struct { | |
| 113 | - | router *MessageRouter | |
| 114 | - | logger zerolog.Logger | |
| 115 | - | } | |
| 116 | - | ||
| 117 | - | func (a *messageRouterAdapter) RegisterHandler(name string, _ func(message string) (string, error)) { | |
| 118 | - | // Internal MessageRouter.RegisterHandler takes a MessageHandler interface, not a plain func. | |
| 119 | - | // Wire up via RegisterHandler(msgType, MessageHandlerFunc{...}) when consumers are migrated. | |
| 120 | - | a.logger.Warn(). | |
| 121 | - | Str("handler", name). | |
| 122 | - | Msg("messageRouterAdapter.RegisterHandler: not implemented — use MessageRouter.RegisterHandler(msgType, MessageHandler) directly") | |
| 123 | - | } | |
| 124 | - | ||
| 125 | - | func (*messageRouterAdapter) PostMessage(webviewID port.WebViewID, message string) error { | |
| 126 | - | wv := LookupWebView(webviewID) | |
| 127 | - | if wv == nil { | |
| 128 | - | return fmt.Errorf("webview %d not found", webviewID) | |
| 129 | - | } | |
| 130 | - | wv.RunJavaScript(context.Background(), message) | |
| 131 | - | return nil | |
| 132 | - | } | |
| 133 | - | ||
| 134 | 86 | // --- SettingsApplier adapter --- | |
| 135 | 87 | ||
| 136 | 88 | // settingsApplierAdapter bridges *SettingsManager to port.SettingsApplier. | |
| @@ -8,7 +8,6 @@ import ( | |||||
| 8 | "github.com/bnema/dumber/internal/infrastructure/filtering" | 8 | "github.com/bnema/dumber/internal/infrastructure/filtering" | ||
| 9 | "github.com/bnema/dumber/internal/logging" | 9 | "github.com/bnema/dumber/internal/logging" | ||
| 10 | "github.com/jwijenbergh/puregotk/v4/gio" | 10 | "github.com/jwijenbergh/puregotk/v4/gio" | ||
| 11 | - | "github.com/rs/zerolog" | |||
| 12 | ) | 11 | ) | ||
| 13 | 12 | ||||
| 14 | // --- WebViewFactory adapter --- | 13 | // --- WebViewFactory adapter --- | ||
| @@ -84,53 +83,6 @@ func (a *webViewPoolAdapter) Close() { | |||||
| 84 | a.pool.Close(a.ctx) | 83 | a.pool.Close(a.ctx) | ||
| 85 | } | 84 | } | ||
| 86 | 85 | ||||
| 87 | - | // --- SchemeHandler adapter --- | |||
| 88 | - | ||||
| 89 | - | // schemeHandlerAdapter bridges *DumbSchemeHandler to port.SchemeHandler. | |||
| 90 | - | // DumbSchemeHandler uses a page-based registration pattern (RegisterPage) rather | |||
| 91 | - | // than a generic scheme+handler registration; this adapter is a stub until | |||
| 92 | - | // consumers are migrated. | |||
| 93 | - | type schemeHandlerAdapter struct { | |||
| 94 | - | handler *DumbSchemeHandler | |||
| 95 | - | logger zerolog.Logger | |||
| 96 | - | } | |||
| 97 | - | ||||
| 98 | - | func (a *schemeHandlerAdapter) RegisterScheme(scheme string, _ func(uri string) ([]byte, string, error)) { | |||
| 99 | - | // DumbSchemeHandler handles the "dumb" scheme exclusively via RegisterPage/RegisterWithContext. | |||
| 100 | - | // Generic scheme registration is not yet wired through this adapter. | |||
| 101 | - | a.logger.Warn(). | |||
| 102 | - | Str("scheme", scheme). | |||
| 103 | - | Msg("schemeHandlerAdapter.RegisterScheme: not implemented — DumbSchemeHandler uses RegisterPage/RegisterWithContext pattern") | |||
| 104 | - | } | |||
| 105 | - | ||||
| 106 | - | // --- MessageRouter adapter --- | |||
| 107 | - | ||||
| 108 | - | // messageRouterAdapter bridges *MessageRouter to port.MessageRouter. | |||
| 109 | - | // The internal MessageRouter uses a typed MessageHandler interface rather than | |||
| 110 | - | // the simple func(string)(string,error) signature in the port interface. | |||
| 111 | - | // PostMessage is also not directly available on the internal type. | |||
| 112 | - | type messageRouterAdapter struct { | |||
| 113 | - | router *MessageRouter | |||
| 114 | - | logger zerolog.Logger | |||
| 115 | - | } | |||
| 116 | - | ||||
| 117 | - | func (a *messageRouterAdapter) RegisterHandler(name string, _ func(message string) (string, error)) { | |||
| 118 | - | // Internal MessageRouter.RegisterHandler takes a MessageHandler interface, not a plain func. | |||
| 119 | - | // Wire up via RegisterHandler(msgType, MessageHandlerFunc{...}) when consumers are migrated. | |||
| 120 | - | a.logger.Warn(). | |||
| 121 | - | Str("handler", name). | |||
| 122 | - | Msg("messageRouterAdapter.RegisterHandler: not implemented — use MessageRouter.RegisterHandler(msgType, MessageHandler) directly") | |||
| 123 | - | } | |||
| 124 | - | ||||
| 125 | - | func (*messageRouterAdapter) PostMessage(webviewID port.WebViewID, message string) error { | |||
| 126 | - | wv := LookupWebView(webviewID) | |||
| 127 | - | if wv == nil { | |||
| 128 | - | return fmt.Errorf("webview %d not found", webviewID) | |||
| 129 | - | } | |||
| 130 | - | wv.RunJavaScript(context.Background(), message) | |||
| 131 | - | return nil | |||
| 132 | - | } | |||
| 133 | - | ||||
| 134 | // --- SettingsApplier adapter --- | 86 | // --- SettingsApplier adapter --- | ||
| 135 | 87 | ||||
| 136 | // settingsApplierAdapter bridges *SettingsManager to port.SettingsApplier. | 88 | // settingsApplierAdapter bridges *SettingsManager to port.SettingsApplier. | ||