mirror of
https://github.com/bitwarden/browser.git
synced 2024-10-19 07:35:48 +02:00
27 lines
961 B
TypeScript
27 lines
961 B
TypeScript
import { BrowserApi } from '../browser/browserApi';
|
|
|
|
import { MessagingService } from 'jslib/abstractions';
|
|
|
|
export default class BrowserMessagingService implements MessagingService {
|
|
send(subscriber: string, arg: any = {}) {
|
|
const message = Object.assign({}, { command: subscriber }, arg);
|
|
|
|
if (BrowserApi.isSafariApi) {
|
|
const bgPage = BrowserApi.getBackgroundPage();
|
|
bgPage.bitwardenMain.sendInternalRuntimeMessage(message);
|
|
|
|
if (!safari.extension.popovers || !safari.extension.popovers.length) {
|
|
return;
|
|
}
|
|
|
|
const popover = safari.extension.popovers[0];
|
|
const popoverPage = popover.contentWindow;
|
|
if (popover.visible && popoverPage.bitwardenPopupMainMessageListener) {
|
|
popoverPage.bitwardenPopupMainMessageListener(message);
|
|
}
|
|
} else {
|
|
chrome.runtime.sendMessage(message);
|
|
}
|
|
}
|
|
}
|