mirror of
https://github.com/bitwarden/browser
synced 2026-02-12 14:34:02 +00:00
Add new device type for DuckDuckGo browser
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { DeviceType } from "@bitwarden/common/enums";
|
||||
|
||||
import { WebPlatformUtilsService } from "./web-platform-utils.service";
|
||||
|
||||
describe("Web Platform Utils Service", () => {
|
||||
@@ -114,4 +116,27 @@ describe("Web Platform Utils Service", () => {
|
||||
expect(result).toBe("2022.10.2");
|
||||
});
|
||||
});
|
||||
describe("getDevice", () => {
|
||||
const originalUserAgent = navigator.userAgent;
|
||||
|
||||
const setUserAgent = (userAgent: string) => {
|
||||
Object.defineProperty(navigator, "userAgent", {
|
||||
value: userAgent,
|
||||
configurable: true,
|
||||
});
|
||||
};
|
||||
|
||||
afterEach(() => {
|
||||
// Reset to original after each test
|
||||
setUserAgent(originalUserAgent);
|
||||
});
|
||||
|
||||
test("returns DuckDuckGo browser with example User-Agent", () => {
|
||||
setUserAgent(
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Safari/605.1.15 Ddg/18.3.1",
|
||||
);
|
||||
const result = webPlatformUtilsService.getDevice();
|
||||
expect(result).toBe(DeviceType.DuckDuckGoBrowser);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -34,6 +34,11 @@ export class WebPlatformUtilsService implements PlatformUtilsService {
|
||||
this.browserCache = DeviceType.EdgeBrowser;
|
||||
} else if (navigator.userAgent.indexOf(" Vivaldi/") !== -1) {
|
||||
this.browserCache = DeviceType.VivaldiBrowser;
|
||||
} else if (
|
||||
navigator.userAgent.indexOf(" Safari/") !== -1 &&
|
||||
navigator.userAgent.indexOf("Ddg") !== -1
|
||||
) {
|
||||
this.browserCache = DeviceType.DuckDuckGoBrowser;
|
||||
} else if (
|
||||
navigator.userAgent.indexOf(" Safari/") !== -1 &&
|
||||
navigator.userAgent.indexOf("Chrome") === -1
|
||||
|
||||
@@ -25,6 +25,7 @@ export enum DeviceType {
|
||||
WindowsCLI = 23,
|
||||
MacOsCLI = 24,
|
||||
LinuxCLI = 25,
|
||||
DuckDuckGoBrowser = 26,
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,6 +54,7 @@ export const DeviceTypeMetadata: Record<DeviceType, DeviceTypeMetadata> = {
|
||||
[DeviceType.IEBrowser]: { category: "webVault", platform: "IE" },
|
||||
[DeviceType.SafariBrowser]: { category: "webVault", platform: "Safari" },
|
||||
[DeviceType.VivaldiBrowser]: { category: "webVault", platform: "Vivaldi" },
|
||||
[DeviceType.DuckDuckGoBrowser]: { category: "webVault", platform: "DuckDuckGo" },
|
||||
[DeviceType.UnknownBrowser]: { category: "webVault", platform: "Unknown" },
|
||||
[DeviceType.WindowsDesktop]: { category: "desktop", platform: "Windows" },
|
||||
[DeviceType.MacOsDesktop]: { category: "desktop", platform: "macOS" },
|
||||
|
||||
Reference in New Issue
Block a user