03e68e2efe
On Linux, `isEncryptionAvailable()` was crashing instead of returning a boolean before the 'ready' event was emitted by the app. The reason of the crash is that [`CreateKeyStorage()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=74;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0) expects the config to be set but the function responsible for setting the config, [`SetConfig()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=237;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0), is called only after the app is ready inside [`PostCreateMainMessageLoop()`](https://github.com/electron/electron/blob/main/shell/browser/electron_browser_main_parts.cc#L499). So this changes `IsEncryptionAvailable()` to return `false` when the app is not ready on Linux and uses that instead of the raw API in other places like `EncryptString()` and `DecryptString()`. Fixes: https://github.com/electron/electron/issues/32206 Signed-off-by: Darshan Sen <raisinten@gmail.com> |
||
---|---|---|
.. | ||
api-browser-destroy | ||
early-in-memory-session-create | ||
fs-promises-renderer-crash | ||
in-memory-session-double-free | ||
js-execute-iframe | ||
native-window-open-exit | ||
quit-on-crashed-event | ||
safe-storage | ||
setimmediate-renderer-crash | ||
setimmediate-window-open-crash | ||
transparent-window-get-background-color | ||
webcontents-create-leak-exit | ||
webcontentsview-create-leak-exit | ||
webview-attach-destroyed | ||
webview-contents-error-on-creation |