1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-28 06:03:40 +00:00
Files
browser/apps/desktop/src/services/native-messaging.service.ts
2024-11-22 17:41:14 -08:00

32 lines
1.1 KiB
TypeScript

import { Injectable } from "@angular/core";
import { LegacyMessageWrapper } from "../models/native-messaging/legacy-message-wrapper";
import { Message } from "../models/native-messaging/message";
import { BiometricMessageHandlerService } from "./biometric-message-handler.service";
import { DuckDuckGoMessageHandlerService } from "./duckduckgo-message-handler.service";
@Injectable()
export class NativeMessagingService {
constructor(
private duckduckgoMessageHandler: DuckDuckGoMessageHandlerService,
private biometricMessageHandler: BiometricMessageHandlerService,
) {}
init() {
ipc.platform.nativeMessaging.onMessage((message) => this.messageHandler(message));
}
private async messageHandler(msg: LegacyMessageWrapper | Message) {
const outerMessage = msg as Message;
if (outerMessage.version) {
// If there is a version, it is a using the protocol created for the DuckDuckGo integration
await this.duckduckgoMessageHandler.handleMessage(outerMessage);
return;
} else {
await this.biometricMessageHandler.handleMessage(msg as LegacyMessageWrapper);
return;
}
}
}