diff --git a/app/scripts/comp/launcher/launcher-electron.js b/app/scripts/comp/launcher/launcher-electron.js index f1c924fe..d359c073 100644 --- a/app/scripts/comp/launcher/launcher-electron.js +++ b/app/scripts/comp/launcher/launcher-electron.js @@ -191,7 +191,7 @@ const Launcher = { } }, quitOnRealQuitEventIfMinimizeOnQuitIsEnabled() { - return !!(this.platform() === 'darwin' || this.pendingUpdateFile); + return !!this.pendingUpdateFile; }, minimizeApp() { this.remoteApp().minimizeApp({ diff --git a/desktop/main.js b/desktop/main.js index ba7a113b..be4aecb5 100644 --- a/desktop/main.js +++ b/desktop/main.js @@ -202,7 +202,9 @@ main.minimizeApp = function (menuItemLabels) { if (!appIcon) { const image = electron.nativeImage.createFromPath(path.join(__dirname, 'img', imagePath)); appIcon = new electron.Tray(image); - appIcon.on('click', restoreMainWindow); + if (process.platform !== 'darwin') { + appIcon.on('click', restoreMainWindow); + } const contextMenu = electron.Menu.buildFromTemplate([ { label: menuItemLabels.restore, click: restoreMainWindow }, { label: menuItemLabels.quit, click: closeMainWindow } diff --git a/desktop/package.json b/desktop/package.json index 1dfaee73..262c40ca 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "KeeWeb", - "version": "1.18.5", + "version": "1.18.6", "description": "Free cross-platform password manager compatible with KeePass", "main": "main.js", "homepage": "https://keeweb.info", diff --git a/desktop/scripts/ipc-handlers/browser-extension-connector.js b/desktop/scripts/ipc-handlers/browser-extension-connector.js index 00f9a064..70d6b09d 100644 --- a/desktop/scripts/ipc-handlers/browser-extension-connector.js +++ b/desktop/scripts/ipc-handlers/browser-extension-connector.js @@ -306,24 +306,29 @@ async function processFirstMessageFromSocket(socket, message) { let parentProcessInfo; try { - parentProcessInfo = await getProcessInfo(message.ppid); - } catch (e) { - logger.error(`Cannot get info for PID ${message.ppid}: ${e}`); - socket.destroy(); - return; - } - - if (process.platform === 'win32' && parentProcessInfo.appName === 'cmd') { try { - parentProcessInfo = await getProcessInfo(parentProcessInfo.ppid); + parentProcessInfo = await getProcessInfo(message.ppid); } catch (e) { - logger.error( - `Cannot get info for PID ${parentProcessInfo.ppid}: ${e}, assuming cmd is the launcher` - ); + logger.error(`Cannot get info for PID ${message.ppid}: ${e}`); + throw e; } + + if (process.platform === 'win32' && parentProcessInfo.appName === 'cmd') { + try { + parentProcessInfo = await getProcessInfo(parentProcessInfo.ppid); + } catch (e) { + logger.error( + `Cannot get info for PID ${parentProcessInfo.ppid}: ${e}, assuming cmd is the launcher` + ); + } + } + } catch (e) { + logger.warn('Cannot get process info, assuming the connection is not identified'); } - appName = AppNames[parentProcessInfo.appName] ?? parentProcessInfo.appName; + appName = parentProcessInfo + ? AppNames[parentProcessInfo.appName] ?? parentProcessInfo.appName + : 'Unidentified browser'; appName = appName[0].toUpperCase() + appName.substr(1); } diff --git a/package-lock.json b/package-lock.json index 0d46d897..c51b74db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "keeweb", - "version": "1.18.5", + "version": "1.18.6", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.18.4", + "version": "1.18.5", "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", @@ -67,7 +67,7 @@ "jquery": "3.6.0", "json-loader": "^0.5.7", "jsqrcode": "github:antelle/jsqrcode#0.1.3", - "kdbxweb": "^2.0.3", + "kdbxweb": "^2.0.4", "load-grunt-tasks": "5.1.0", "lodash": "^4.17.21", "marked": "^2.0.3", @@ -11706,9 +11706,9 @@ } }, "node_modules/kdbxweb": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.3.tgz", - "integrity": "sha512-VKaYAQiTqxPmn55IcUDzdZsV1+1k4onBHe+Ip7t5xs7JxkGT++tmPwIFE+D3smzjTQ63fUEJ+P7t3o+xIbC/6A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.4.tgz", + "integrity": "sha512-Ckb3shx9E+VX6WZSvT6kJJknTA10T21M4HP8Z/xanZ65mwyQf7Mv0UreK/NUsa9BaejWEiB/QJxkTzrQZRn9Lg==", "dependencies": { "pako": "github:keeweb/pako#653c0b00d8941c89d09ed4546d2179001ec44efc", "xmldom": "github:keeweb/xmldom#ec8f61f723e2f403adaf7a1bbf55ced4ff1ea0c6" @@ -29846,9 +29846,9 @@ } }, "kdbxweb": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.3.tgz", - "integrity": "sha512-VKaYAQiTqxPmn55IcUDzdZsV1+1k4onBHe+Ip7t5xs7JxkGT++tmPwIFE+D3smzjTQ63fUEJ+P7t3o+xIbC/6A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.4.tgz", + "integrity": "sha512-Ckb3shx9E+VX6WZSvT6kJJknTA10T21M4HP8Z/xanZ65mwyQf7Mv0UreK/NUsa9BaejWEiB/QJxkTzrQZRn9Lg==", "requires": { "pako": "github:keeweb/pako#653c0b00d8941c89d09ed4546d2179001ec44efc", "xmldom": "github:keeweb/xmldom#ec8f61f723e2f403adaf7a1bbf55ced4ff1ea0c6" diff --git a/package.json b/package.json index 2ce41bd0..b1763338 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keeweb", - "version": "1.18.5", + "version": "1.18.6", "description": "Free cross-platform password manager compatible with KeePass", "main": "Gruntfile.js", "private": true, @@ -69,7 +69,7 @@ "jquery": "3.6.0", "json-loader": "^0.5.7", "jsqrcode": "github:antelle/jsqrcode#0.1.3", - "kdbxweb": "^2.0.3", + "kdbxweb": "^2.0.4", "load-grunt-tasks": "5.1.0", "lodash": "^4.17.21", "marked": "^2.0.3", diff --git a/release-notes.md b/release-notes.md index 5a1ccf7c..d44133ab 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,5 +1,10 @@ Release notes ------------- +##### v1.18.6 (2021-05-19) +`-` fix #1824: saving KDBX3 files with compression disabled +`-` fix #1818: extension connection error if browser cannot be identified +`-` fix #1820: minimize on close on macOS + ##### v1.18.5 (2021-05-14) `-` fix #1816: old Chromium support, such as Android Edge `-` fix #1817: crash on files with large attachments as KDBX3