diff --git a/v2/go.mod b/v2/go.mod index 8b390e657..9a35eb0e9 100644 --- a/v2/go.mod +++ b/v2/go.mod @@ -22,7 +22,7 @@ require ( github.com/leaanthony/debme v1.2.1 github.com/leaanthony/go-ansi-parser v1.0.1 github.com/leaanthony/go-common-file-dialog v1.0.3 - github.com/leaanthony/go-webview2 v1.0.2 + github.com/leaanthony/go-webview2 v1.0.3-0.20220125181555-00f20a61c17d github.com/leaanthony/gosod v1.0.3 github.com/leaanthony/idgen v1.0.0 github.com/leaanthony/slicer v1.5.0 diff --git a/v2/go.sum b/v2/go.sum index 1f5f5a824..0c9c84808 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -118,8 +118,8 @@ github.com/leaanthony/go-ansi-parser v1.0.1 h1:97v6c5kYppVsbScf4r/VZdXyQ21KQIfeQ github.com/leaanthony/go-ansi-parser v1.0.1/go.mod h1:7arTzgVI47srICYhvgUV4CGd063sGEeoSlych5yeSPM= github.com/leaanthony/go-common-file-dialog v1.0.3 h1:O0uGjKnWtdEADGrkg+TyAAbZylykMwwx/MNEXn9fp+Y= github.com/leaanthony/go-common-file-dialog v1.0.3/go.mod h1:TGhEc9eSJgRsupZ+iH1ZgAOnEo9zp05cRH2j08RPrF0= -github.com/leaanthony/go-webview2 v1.0.2 h1:IjTbpAXUig33G3LUqf+8EClZutg2Z/C1cbxqhHKPxbU= -github.com/leaanthony/go-webview2 v1.0.2/go.mod h1:iX54IaVk1FnDqMuHJ47VYLPQOcVqQiOe9SJACt9CAbU= +github.com/leaanthony/go-webview2 v1.0.3-0.20220125181555-00f20a61c17d h1:xJZ3wwHc0BgvXz3NL2PUMGa3Ee4jPuTFeK/N7LDnV74= +github.com/leaanthony/go-webview2 v1.0.3-0.20220125181555-00f20a61c17d/go.mod h1:iX54IaVk1FnDqMuHJ47VYLPQOcVqQiOe9SJACt9CAbU= github.com/leaanthony/gosod v1.0.3 h1:Fnt+/B6NjQOVuCWOKYRREZnjGyvg+mEhd1nkkA04aTQ= github.com/leaanthony/gosod v1.0.3/go.mod h1:BJ2J+oHsQIyIQpnLPjnqFGTMnOZXDbvWtRCSG7jGxs4= github.com/leaanthony/idgen v1.0.0 h1:IZreR+JGEzFV4yeVuBZA25gM0keUoFy+RDUldncQ+Jw= diff --git a/v2/internal/frontend/desktop/windows/frontend.go b/v2/internal/frontend/desktop/windows/frontend.go index da1302e13..381b96088 100644 --- a/v2/internal/frontend/desktop/windows/frontend.go +++ b/v2/internal/frontend/desktop/windows/frontend.go @@ -280,6 +280,9 @@ func (f *Frontend) Quit() { func (f *Frontend) setupChromium() { chromium := edge.NewChromium() f.chromium = chromium + if opts := f.frontendOptions.Windows; opts != nil && opts.WebviewUserDataPath != "" { + chromium.DataPath = opts.WebviewUserDataPath + } chromium.MessageCallback = f.processMessage chromium.WebResourceRequestedCallback = f.processRequest chromium.NavigationCompletedCallback = f.navigationCompleted diff --git a/v2/pkg/options/windows/windows.go b/v2/pkg/options/windows/windows.go index 4dc92cfee..af2b2d7ad 100644 --- a/v2/pkg/options/windows/windows.go +++ b/v2/pkg/options/windows/windows.go @@ -8,4 +8,8 @@ type Options struct { // Draw a border around the window, even if the window is frameless EnableFramelessBorder bool + + // Path where the WebView2 stores the user data. If empty %APPDATA%\[BinaryName.exe] will be used. + // If the path is not valid, a messagebox will be displayed with the error and the app will exit with error code. + WebviewUserDataPath string } diff --git a/website/docs/reference/options.mdx b/website/docs/reference/options.mdx index 57ce5065b..0bb60a260 100644 --- a/website/docs/reference/options.mdx +++ b/website/docs/reference/options.mdx @@ -46,6 +46,7 @@ func main() { WindowIsTranslucent: false, DisableWindowIcon: false, EnableFramelessBorder: false, + WebviewUserDataPath: "", }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -363,6 +364,14 @@ Type: bool Setting this to `true` will add a border around the window if [Frameless](#Frameless) has been activated. This allows hiding the title bar but still having a border around the window. +### WebviewUserDataPath + +Name: WebviewUserDataPath + +Type: string + +This defines the path where the WebView2 stores the user data. If empty `%APPDATA%\[BinaryName.exe]` will be used. + ## Mac Specific Options ### TitleBar