From 1d27ed540d86362a4198b6b30892c88a4b284844 Mon Sep 17 00:00:00 2001 From: Joseph Flinn Date: Tue, 26 Jan 2021 16:16:20 +0000 Subject: [PATCH 1/2] Fixing checksum path typo --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bd251d3dbd..b617de49f8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -173,7 +173,7 @@ jobs: Copy-Item -Path ./stores/chocolatey -Destination ./dist/chocolatey -Recurse Copy-Item -Path ./dist/nsis-web/Bitwarden-Installer-${{ env.PACKAGE_VERSION }}.exe -Destination ./dist/chocolatey - $checksum = checksum -t sha256 ./dist/chocoloatey/Bitwarden-Installer-${{ env.PACKAGE_VERSION }}.exe + $checksum = checksum -t sha256 ./dist/chocolatey/Bitwarden-Installer-${{ env.PACKAGE_VERSION }}.exe $chocoInstall = "./dist/chocolatey/tools/chocolateyinstall.ps1" (Get-Content $chocoInstall).replace('__version__', "$env:PACKAGE_VERSION").replace('__checksum__', $checksum) | Set-Content $chocoInstall choco pack ./dist/chocolatey/bitwarden.nuspec --version "$env:PACKAGE_VERSION" --out ./dist/chocolatey From d1011870f0212d717da7c72a94a107da60900cc4 Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Tue, 26 Jan 2021 18:01:46 +0100 Subject: [PATCH 2/2] Fix paths for native messaging on mac (#691) --- src/main/nativeMessaging.main.ts | 49 ++++++++++++++++++++------------ src/proxy/ipc.ts | 3 ++ 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/main/nativeMessaging.main.ts b/src/main/nativeMessaging.main.ts index 8c5470f9ae..40ae060335 100644 --- a/src/main/nativeMessaging.main.ts +++ b/src/main/nativeMessaging.main.ts @@ -2,7 +2,7 @@ import { promises as fs, existsSync } from 'fs'; import * as ipc from 'node-ipc'; import * as path from 'path'; import * as util from 'util'; -import { homedir } from 'os'; +import { homedir, userInfo } from 'os'; import { LogService } from 'jslib/abstractions/log.service'; import { ipcMain } from 'electron'; @@ -17,6 +17,7 @@ export class NativeMessagingMain { listen() { ipc.config.id = 'bitwarden'; ipc.config.retry = 1500; + ipc.config.socketRoot = path.join(homedir(), 'tmp'); ipc.serve(() => { ipc.server.on('message', (data: any, socket: any) => { @@ -84,21 +85,25 @@ export class NativeMessagingMain { this.createWindowsRegistry('HKCU\\SOFTWARE\\Google\\Chrome', 'HKCU\\SOFTWARE\\Google\\Chrome\\NativeMessagingHosts\\com.8bit.bitwarden', path.join(destination, 'chrome.json')); break; case 'darwin': - if (existsSync(`${homedir()}/Library/Application\ Support/Mozilla/`)) { - this.writeManifest(`${homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`, firefoxJson); + if (existsSync(`${this.homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/`)) { + this.writeManifest(`${this.homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`, firefoxJson); + } else { + this.logService.warning(`Firefox not found skipping.`); } - if (existsSync(`${homedir()}/Library/Application\ Support/Google/Chrome`)) { - this.writeManifest(`${homedir()}/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.8bit.bitwarden.json`, chromeJson); + if (existsSync(`${this.homedir()}/Library/Application\ Support/Google/Chrome/NativeMessagingHosts`)) { + this.writeManifest(`${this.homedir()}/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.8bit.bitwarden.json`, chromeJson); + } else { + this.logService.warning(`Chrome not found skipping.`); } break; case 'linux': - if (existsSync(`${homedir()}/.mozilla/`)) { - this.writeManifest(`${homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`, firefoxJson); + if (existsSync(`${this.homedir()}/.mozilla/`)) { + this.writeManifest(`${this.homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`, firefoxJson); } - if (existsSync(`${homedir()}/.config/google-chrome/`)) { - this.writeManifest(`${homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`, chromeJson); + if (existsSync(`${this.homedir()}/.config/google-chrome/`)) { + this.writeManifest(`${this.homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`, chromeJson); } break; default: @@ -115,21 +120,21 @@ export class NativeMessagingMain { this.deleteWindowsRegistry('HKCU\\SOFTWARE\\Google\\Chrome\\NativeMessagingHosts\\com.8bit.bitwarden'); break; case 'darwin': - if (existsSync(`${homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`)) { - fs.unlink(`${homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`); + if (existsSync(`${this.homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`)) { + fs.unlink(`${this.homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`); } - if (existsSync(`${homedir()}/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.8bit.bitwarden.json`)) { - fs.unlink(`${homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`); + if (existsSync(`${this.homedir()}/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.8bit.bitwarden.json`)) { + fs.unlink(`${this.homedir()}/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.8bit.bitwarden.json`); } break; case 'linux': - if (existsSync(`${homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`)) { - fs.unlink(`${homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`); + if (existsSync(`${this.homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`)) { + fs.unlink(`${this.homedir()}/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json`); } - if (existsSync(`${homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`)) { - fs.unlink(`${homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`); + if (existsSync(`${this.homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`)) { + fs.unlink(`${this.homedir()}/.config/google-chrome/NativeMessagingHosts/com.8bit.bitwarden.json`); } break; default: @@ -147,7 +152,7 @@ export class NativeMessagingMain { if (process.platform === 'win32') { return path.join(dir, 'native-messaging.bat'); } else if (process.platform === 'darwin') { - return path.join(dir, '..', 'MacOS', 'Bitwarden'); + return '/Applications/Bitwarden.app/Contents/MacOS/Bitwarden'; } return path.join(dir, '..', 'bitwarden'); @@ -204,4 +209,12 @@ export class NativeMessagingMain { // Do nothing } } + + private homedir() { + if (process.platform === 'darwin') { + return userInfo().homedir; + } else { + return homedir(); + } + } } diff --git a/src/proxy/ipc.ts b/src/proxy/ipc.ts index 2bd9eb5e75..530d5bb861 100644 --- a/src/proxy/ipc.ts +++ b/src/proxy/ipc.ts @@ -1,9 +1,12 @@ /* tslint:disable:no-console */ import * as ipc from 'node-ipc'; +import { homedir } from 'os'; +import * as path from 'path'; ipc.config.id = 'proxy'; ipc.config.retry = 1500; ipc.config.logger = console.warn; // Stdout is used for native messaging +ipc.config.socketRoot = path.join(homedir(), 'tmp'); export default class IPC { onMessage: (message: object) => void