Merge branch 'master' of github.com:bitwarden/desktop

This commit is contained in:
Kyle Spearrin 2021-01-26 12:03:37 -05:00
commit 44c8f83eed
3 changed files with 35 additions and 19 deletions

View File

@ -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

View File

@ -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();
}
}
}

View File

@ -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