Skip to content

Commit 8e8d1d3

Browse files
committed
Add userDataFolder config option
1 parent 94d3d23 commit 8e8d1d3

3 files changed

Lines changed: 11 additions & 1 deletion

File tree

src/Config.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ ConfigJson LoadConfigJson(const std::string& path)
1414
ret.additionalBrowserArguments = "";
1515
ret.hostingMode = "";
1616
ret.browserExecutableFolder = "";
17+
ret.userDataFolder = "";
1718

1819
// If file does not exist, just use defaults
1920
if (!FileExists(path))
@@ -47,5 +48,8 @@ ConfigJson LoadConfigJson(const std::string& path)
4748
if (parsedJson.contains("browserExecutableFolder"))
4849
ret.browserExecutableFolder = parsedJson["browserExecutableFolder"].get<std::string>();
4950

51+
if (parsedJson.contains("userDataFolder"))
52+
ret.userDataFolder = parsedJson["userDataFolder"].get<std::string>();
53+
5054
return ret;
5155
}

src/Config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ struct ConfigJson {
88
std::string additionalBrowserArguments;
99
std::string hostingMode;
1010
std::string browserExecutableFolder;
11+
std::string userDataFolder;
1112
};
1213

1314
ConfigJson LoadConfigJson(const std::string& path);

src/WebView.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,12 @@ int CALLBACK WinMain(
138138
options->put_AdditionalBrowserArguments(Utf8ToWide(configJson.additionalBrowserArguments).c_str());
139139
}
140140

141-
CreateCoreWebView2EnvironmentWithOptions(browserExecutableFolder, nullptr, options.Get(),
141+
// If the userDataFolder option is specified, pass it as an LPCWSTR; however if it is not specified,
142+
// pass nullptr for the corresponding parameter in CreateCoreWebView2EnvironmentWithOptions().
143+
std::wstring userDataFolderWstr = Utf8ToWide(configJson.userDataFolder);
144+
LPCWSTR userDataFolder = (userDataFolderWstr.empty() ? nullptr : userDataFolderWstr.c_str());
145+
146+
CreateCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataFolder, options.Get(),
142147
Callback<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler>(
143148
[hWnd, configJson](HRESULT result, ICoreWebView2Environment* env) -> HRESULT
144149
{

0 commit comments

Comments
 (0)