mirror of
https://github.com/bitwarden/browser
synced 2025-12-28 06:03:40 +00:00
32 lines
1.1 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
}
|