You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate the Wails v3 Windows runtime from the hand-maintained pkg/edge bindings to the generated pkg/webview2 bindings, then retire pkg/edge.
Background
PR #5768 landed the overhauled binding generator and the generated bindings at v3/internal/webview2/pkg/webview2 (following the module fold #5711). Those bindings are currently dormant — nothing in the runtime imports them; the runtime still drives WebView2 entirely through pkg/edge + webviewloader.
The generated bindings are validated at their own layer (100%-covered generator, 1,020+ hermetic ABI tests, a live smoke test against the real DLL, and three example apps), but they have not been exercised as the production WebView2 driver.
Once the runtime is on pkg/webview2, move/remove pkg/edge.
Testing considerations
Fix the flaky pkg/edge integration test TestCookieManager while migrating (it CoInitializes without runtime.LockOSThread(), so a goroutine thread-migration mid-test yields "CoInitialize has not been called" and hangs to the 10-minute timeout — observed on CI).
Add real-DLL coverage across more than the handful of interfaces the live smoke test exercises today.
Goal
Migrate the Wails v3 Windows runtime from the hand-maintained
pkg/edgebindings to the generatedpkg/webview2bindings, then retirepkg/edge.Background
PR #5768 landed the overhauled binding generator and the generated bindings at
v3/internal/webview2/pkg/webview2(following the module fold #5711). Those bindings are currently dormant — nothing in the runtime imports them; the runtime still drives WebView2 entirely throughpkg/edge+webviewloader.The generated bindings are validated at their own layer (100%-covered generator, 1,020+ hermetic ABI tests, a live smoke test against the real DLL, and three example apps), but they have not been exercised as the production WebView2 driver.
Plan (from
v3/internal/webview2/ARCHITECTURE.md)Land the generator + tested— done in feat(webview2): port generator overhaul, generated tests and examples to v3/internal/webview2 #5768.pkg/webview2v3/pkg/application/...(chromium.goand friends) to importpkg/webview2instead ofpkg/edge.pkg/edgeruntime behaviour that the generator does not produce (it emits bindings, not orchestration/policy):SetSize/PutBounds(fix(webview2): never treat a failed SetSize/PutBounds as fatal #5597)Focus()guard until controller init (fix(webview2): guard Focus() until controller initialisation completes #5568)pkg/webview2, move/removepkg/edge.Testing considerations
pkg/edgeintegration testTestCookieManagerwhile migrating (it CoInitializes withoutruntime.LockOSThread(), so a goroutine thread-migration mid-test yields "CoInitialize has not been called" and hangs to the 10-minute timeout — observed on CI).