1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-30 23:23:52 +00:00
Files
browser/libs/common/src/platform/abstractions/platform-utils.service.ts
Todd Martin d1c6b334b1 feat(DuckDuckGo): [PM-9388] Add new device type for DuckDuckGo browser
* Add new device type for DuckDuckGo browser

* Added feature support property for sync domains

* Added new features

* Added isDuckDuckGo() to CLI

* Addressed PR feedback.

* Renamed new property

* Fixed rename that missed CLI.
2025-07-03 11:27:28 -04:00

58 lines
1.8 KiB
TypeScript

import { ClientType, DeviceType } from "../../enums";
interface ToastOptions {
timeout?: number;
}
export type ClipboardOptions = {
allowHistory?: boolean;
clearing?: boolean;
clearMs?: number;
window?: Window;
};
export abstract class PlatformUtilsService {
abstract getDevice(): DeviceType;
abstract getDeviceString(): string;
abstract getClientType(): ClientType;
abstract isFirefox(): boolean;
abstract isChrome(): boolean;
abstract isEdge(): boolean;
abstract isOpera(): boolean;
abstract isVivaldi(): boolean;
abstract isSafari(): boolean;
abstract isMacAppStore(): boolean;
abstract isViewOpen(): Promise<boolean>;
abstract launchUri(uri: string, options?: any): void;
abstract getApplicationVersion(): Promise<string>;
abstract getApplicationVersionNumber(): Promise<string>;
abstract supportsWebAuthn(win: Window): boolean;
abstract supportsDuo(): boolean;
/**
* Returns true if the device supports autofill functionality
*/
abstract supportsAutofill(): boolean;
/**
* Returns true if the device supports native file downloads without
* the need for `target="_blank"`
*/
abstract supportsFileDownloads(): boolean;
/**
* @deprecated use `@bitwarden/components/ToastService.showToast` instead
*
* Jira: [CL-213](https://bitwarden.atlassian.net/browse/CL-213)
*/
abstract showToast(
type: "error" | "success" | "warning" | "info",
title: string,
text: string | string[],
options?: ToastOptions,
): void;
abstract isDev(): boolean;
abstract isSelfHost(): boolean;
abstract copyToClipboard(text: string, options?: ClipboardOptions): void | boolean;
abstract readFromClipboard(): Promise<string>;
abstract supportsSecureStorage(): boolean;
abstract getAutofillKeyboardShortcut(): Promise<string>;
}