1
0
mirror of https://github.com/bitwarden/jslib synced 2025-12-06 00:03:29 +00:00

Dynamically set electron user agent (#524)

* Dynamically set electron user agent

* PR review

* linter fixes

* Test agent static version does not change

* Fix formatting
This commit is contained in:
Matt Gibson
2021-10-26 08:45:32 -05:00
committed by GitHub
parent 257de6517c
commit 0f9c2205d5
3 changed files with 54 additions and 7 deletions

View File

@@ -46,3 +46,19 @@ export function isSnapStore() {
export function isWindowsPortable() {
return process.platform === 'win32' && process.env.PORTABLE_EXECUTABLE_DIR != null;
}
/**
* Sanitize user agent so external resources used by the app can't built data on our users.
*/
export function cleanUserAgent(userAgent: string): string {
const userAgentItem = (startString: string, endString: string) => {
const startIndex = userAgent.indexOf(startString);
return userAgent.substring(startIndex, userAgent.indexOf(endString, startIndex) + 1);
};
const systemInformation = '(Windows NT 10.0; Win64; x64)';
// Set system information, remove bitwarden, and electron information
return userAgent.replace(userAgentItem('(', ')'), systemInformation)
.replace(userAgentItem('Bitwarden', ' '), '')
.replace(userAgentItem('Electron', ' '), '');
}

View File

@@ -11,6 +11,7 @@ import { StorageService } from 'jslib-common/abstractions/storage.service';
import { ElectronConstants } from './electronConstants';
import {
cleanUserAgent,
isDev,
isMacAppStore,
isSnapStore,
@@ -139,13 +140,16 @@ export class WindowMain {
this.win.show();
// and load the index.html of the app.
this.win.loadURL(url.format({
protocol: 'file:',
pathname: path.join(__dirname, '/index.html'),
slashes: true,
}), {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0',
});
this.win.loadURL(url.format(
{
protocol: 'file:',
pathname: path.join(__dirname, '/index.html'),
slashes: true,
}),
{
userAgent: cleanUserAgent(this.win.webContents.userAgent),
}
);
// Open the DevTools.
if (isDev()) {