diff --git a/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.ts b/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.ts index 5a933d9715e..a5dd1dc86ce 100644 --- a/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.ts +++ b/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.ts @@ -329,6 +329,10 @@ export abstract class BrowserPlatformUtilsService implements PlatformUtilsServic return autofillCommand; } + userAgentPart(): Promise { + return Promise.resolve(""); + } + /** * Triggers the offscreen document API to copy the text to the clipboard. */ diff --git a/apps/cli/src/platform/services/cli-platform-utils.service.ts b/apps/cli/src/platform/services/cli-platform-utils.service.ts index 27f8e5268bd..c07a6d217ee 100644 --- a/apps/cli/src/platform/services/cli-platform-utils.service.ts +++ b/apps/cli/src/platform/services/cli-platform-utils.service.ts @@ -152,4 +152,8 @@ export class CliPlatformUtilsService implements PlatformUtilsService { getAutofillKeyboardShortcut(): Promise { return null; } + + userAgentPart(): Promise { + return Promise.resolve(""); + } } diff --git a/apps/desktop/src/main/window.main.ts b/apps/desktop/src/main/window.main.ts index f8ea7551c47..fa326b80435 100644 --- a/apps/desktop/src/main/window.main.ts +++ b/apps/desktop/src/main/window.main.ts @@ -185,6 +185,10 @@ export class WindowMain { await this.createWindow(); resolve(); + + const userAgent = this.win.webContents.session.getUserAgent(); + this.logService.info(`Loaded URL with user agent: ${userAgent}`); + if (this.argvCallback != null) { this.argvCallback(process.argv); } diff --git a/apps/desktop/src/platform/services/electron-platform-utils.service.ts b/apps/desktop/src/platform/services/electron-platform-utils.service.ts index de63c6b28aa..694bcea29f2 100644 --- a/apps/desktop/src/platform/services/electron-platform-utils.service.ts +++ b/apps/desktop/src/platform/services/electron-platform-utils.service.ts @@ -151,4 +151,20 @@ export class ElectronPlatformUtilsService implements PlatformUtilsService { getAutofillKeyboardShortcut(): Promise { return null; } + + async userAgentPart(): Promise { + let packageType = "Unsandboxed"; + if (ipc.platform.isMacAppStore) { + packageType = "MacAppStore"; + } else if (ipc.platform.isWindowsStore) { + packageType = "WindowsStore"; + } else if (ipc.platform.isAppImage) { + packageType = "AppImage"; + } else if (ipc.platform.isSnapStore) { + packageType = "Snap"; + } else if (ipc.platform.isFlatpak) { + packageType = "Flatpak"; + } + return `Bitwarden-Desktop/${await this.getApplicationVersion()} (${packageType})`; + } } diff --git a/apps/web/src/app/core/web-platform-utils.service.ts b/apps/web/src/app/core/web-platform-utils.service.ts index dea4323bcc4..0e2f29ab58a 100644 --- a/apps/web/src/app/core/web-platform-utils.service.ts +++ b/apps/web/src/app/core/web-platform-utils.service.ts @@ -219,4 +219,8 @@ export class WebPlatformUtilsService implements PlatformUtilsService { getAutofillKeyboardShortcut(): Promise { return null; } + + userAgentPart(): Promise { + return Promise.resolve(""); + } } diff --git a/libs/common/src/platform/abstractions/platform-utils.service.ts b/libs/common/src/platform/abstractions/platform-utils.service.ts index 4d126aeab88..f87777aa974 100644 --- a/libs/common/src/platform/abstractions/platform-utils.service.ts +++ b/libs/common/src/platform/abstractions/platform-utils.service.ts @@ -55,4 +55,5 @@ export abstract class PlatformUtilsService { abstract readFromClipboard(): Promise; abstract supportsSecureStorage(): boolean; abstract getAutofillKeyboardShortcut(): Promise; + abstract userAgentPart(): Promise; }