mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 00:22:57 +08:00
[windows] Add support for AdditionalBrowserArgs to the legacy Webview2Loader (#2267)
This commit is contained in:
parent
ef5f547d27
commit
ebc653a584
@ -26,8 +26,8 @@ func createCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataF
|
||||
hr, err := webviewloader.CreateCoreWebView2EnvironmentWithOptions(
|
||||
browserPathPtr,
|
||||
userPathPtr,
|
||||
0,
|
||||
uintptr(unsafe.Pointer(environmentCompletedHandle)),
|
||||
additionalBrowserArgs,
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user