diff --git a/apps/desktop/test/desktop-browser-view-manager.test.ts b/apps/desktop/test/desktop-browser-view-manager.test.ts index 0d1c04595..5a10a12bb 100644 --- a/apps/desktop/test/desktop-browser-view-manager.test.ts +++ b/apps/desktop/test/desktop-browser-view-manager.test.ts @@ -586,8 +586,14 @@ const electronMock = vi.hoisted(() => { class FakeSession { public readonly willDownloadListeners: FakeSessionListener[] = []; + public readonly userAgentCalls: string[] = []; public permissionCheckHandler: FakePermissionCheckHandler | null = null; public permissionRequestHandler: FakePermissionRequestHandler | null = null; + private readonly defaultUserAgent = + "Mozilla/5.0 Chrome/140.0.0.0 Electron/41.7.0 bb/0.41.0"; + getUserAgent(): string { + return this.defaultUserAgent; + } on(eventName: "will-download", listener: FakeSessionListener): void { this.willDownloadListeners.push(listener); } @@ -599,6 +605,10 @@ const electronMock = vi.hoisted(() => { setPermissionRequestHandler(handler: FakePermissionRequestHandler): void { this.permissionRequestHandler = handler; } + + setUserAgent(userAgent: string): void { + this.userAgentCalls.push(userAgent); + } } const fakeSessions: FakeSession[] = []; @@ -811,6 +821,28 @@ function scopedOpenTabPushesOf( } describe("DesktopBrowserViewManager", () => { + it("removes application identity tokens from the embedded browser user agent", () => { + const manager = createDesktopBrowserViewManager({ + partition: "persist:test", + }); + const hostWindow = new FakeHostWindow({ + contentBounds: { width: 700, height: 450 }, + webContentsId: 75, + }); + + attachBrowserTab({ + manager, + hostWindow, + tabId: "browser:a", + url: "https://artifact.invalid/", + }); + + const fakeSession = electronMock.fakeSessions.at(-1); + expect(fakeSession).toBeDefined(); + expect(fakeSession?.userAgentCalls).toHaveLength(1); + expect(fakeSession?.userAgentCalls[0]).not.toMatch(/\b(?:Electron|bb)\//u); + }); + it("forwards resolved browser shortcuts and suppresses the untrusted page", () => { const dispatchAppCommand = vi.fn(); const focusHostWebContents = vi.fn();