From ebc653a58419dd9874273a29d4d60fd0513712ed Mon Sep 17 00:00:00 2001 From: stffabi Date: Mon, 2 Jan 2023 22:41:56 +0100 Subject: [PATCH] [windows] Add support for AdditionalBrowserArgs to the legacy Webview2Loader (#2267) --- .../go-webview2/pkg/edge/create_env_native.go | 2 +- .../go-webview2/webviewloader/native_module.go | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/v2/internal/frontend/desktop/windows/go-webview2/pkg/edge/create_env_native.go b/v2/internal/frontend/desktop/windows/go-webview2/pkg/edge/create_env_native.go index 39e13a2e..9b4f02bf 100644 --- a/v2/internal/frontend/desktop/windows/go-webview2/pkg/edge/create_env_native.go +++ b/v2/internal/frontend/desktop/windows/go-webview2/pkg/edge/create_env_native.go @@ -26,8 +26,8 @@ func createCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataF hr, err := webviewloader.CreateCoreWebView2EnvironmentWithOptions( browserPathPtr, userPathPtr, - 0, uintptr(unsafe.Pointer(environmentCompletedHandle)), + additionalBrowserArgs, ) if hr != 0 { diff --git a/v2/internal/frontend/desktop/windows/go-webview2/webviewloader/native_module.go b/v2/internal/frontend/desktop/windows/go-webview2/webviewloader/native_module.go index 277290ca..3e02fe98 100644 --- a/v2/internal/frontend/desktop/windows/go-webview2/webviewloader/native_module.go +++ b/v2/internal/frontend/desktop/windows/go-webview2/webviewloader/native_module.go @@ -15,7 +15,7 @@ import ( ) func init() { - preventEnvAndRegistryOverrides(nil, nil) + preventEnvAndRegistryOverrides(nil, nil, "") } var ( @@ -97,7 +97,7 @@ func GetAvailableCoreWebView2BrowserVersionString(path string) (string, error) { } } - preventEnvAndRegistryOverrides(browserPath, nil) + preventEnvAndRegistryOverrides(browserPath, nil, "") var result *uint16 res, _, err := memGetAvailableCoreWebView2BrowserVersionString.Call( uint64(uintptr(unsafe.Pointer(browserPath))), @@ -119,17 +119,17 @@ func GetAvailableCoreWebView2BrowserVersionString(path string) (string, error) { // CreateCoreWebView2EnvironmentWithOptions tries to load WebviewLoader2 and // call the CreateCoreWebView2EnvironmentWithOptions routine. -func CreateCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataFolder *uint16, environmentOptions uintptr, environmentCompletedHandle uintptr) (uintptr, error) { +func CreateCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataFolder *uint16, environmentCompletedHandle uintptr, additionalBrowserArgs string) (uintptr, error) { err := loadFromMemory() if err != nil { return 0, err } - preventEnvAndRegistryOverrides(browserExecutableFolder, userDataFolder) + preventEnvAndRegistryOverrides(browserExecutableFolder, userDataFolder, additionalBrowserArgs) res, _, _ := memCreate.Call( uint64(uintptr(unsafe.Pointer(browserExecutableFolder))), uint64(uintptr(unsafe.Pointer(userDataFolder))), - uint64(environmentOptions), + 0, uint64(environmentCompletedHandle), ) return uintptr(res), nil @@ -151,13 +151,13 @@ func loadFromMemory() error { return err } -func preventEnvAndRegistryOverrides(browserFolder, userDataFolder *uint16) { +func preventEnvAndRegistryOverrides(browserFolder, userDataFolder *uint16, additionalBrowserArgs string) { // Setting these env variables to empty string also prevents registry overrides because webview2loader // checks for existence and not for empty value os.Setenv("WEBVIEW2_PIPE_FOR_SCRIPT_DEBUGGER", "") - os.Setenv("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "") // Set these overrides to the values or empty to prevent registry and external env overrides + os.Setenv("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", additionalBrowserArgs) os.Setenv("WEBVIEW2_RELEASE_CHANNEL_PREFERENCE", "0") os.Setenv("WEBVIEW2_BROWSER_EXECUTABLE_FOLDER", windows.UTF16PtrToString(browserFolder)) os.Setenv("WEBVIEW2_USER_DATA_FOLDER", windows.UTF16PtrToString(userDataFolder))