Use Multi-Messaging Service (#4304)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com> Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
This commit is contained in:
parent
d6acc77ba7
commit
b1ee65dca8
|
@ -211,9 +211,25 @@ export default class MainBackground {
|
|||
const logoutCallback = async (expired: boolean, userId?: string) =>
|
||||
await this.logout(expired, userId);
|
||||
|
||||
this.messagingService = this.popupOnlyContext
|
||||
? new BrowserMessagingPrivateModeBackgroundService()
|
||||
: new BrowserMessagingService();
|
||||
const messagingServices: MessagingServiceAbstraction[] = [];
|
||||
if (!isPrivateMode) {
|
||||
// Sent to detached background
|
||||
messagingServices.push(new BrowserMessagingService());
|
||||
}
|
||||
|
||||
if (this.popupOnlyContext) {
|
||||
// Sent to popup
|
||||
messagingServices.push(new BrowserMessagingPrivateModeBackgroundService());
|
||||
}
|
||||
|
||||
this.messagingService = new (class extends MessagingServiceAbstraction {
|
||||
// AuthService should send the messages to the background not popup.
|
||||
send = (subscriber: string, arg: any = {}) => {
|
||||
for (const messagingService of messagingServices) {
|
||||
messagingService.send(subscriber, arg);
|
||||
}
|
||||
};
|
||||
})();
|
||||
this.logService = new ConsoleLogService(false);
|
||||
this.cryptoFunctionService = new WebCryptoFunctionService(window);
|
||||
this.storageService = new BrowserLocalStorageService();
|
||||
|
@ -349,22 +365,13 @@ export default class MainBackground {
|
|||
|
||||
this.twoFactorService = new TwoFactorService(this.i18nService, this.platformUtilsService);
|
||||
|
||||
// eslint-disable-next-line
|
||||
const that = this;
|
||||
const backgroundMessagingService = new (class extends MessagingServiceAbstraction {
|
||||
// AuthService should send the messages to the background not popup.
|
||||
send = (subscriber: string, arg: any = {}) => {
|
||||
const message = Object.assign({}, { command: subscriber }, arg);
|
||||
that.runtimeBackground.processMessage(message, that, null);
|
||||
};
|
||||
})();
|
||||
this.authService = new AuthService(
|
||||
this.cryptoService,
|
||||
this.apiService,
|
||||
this.tokenService,
|
||||
this.appIdService,
|
||||
this.platformUtilsService,
|
||||
backgroundMessagingService,
|
||||
this.messagingService,
|
||||
this.logService,
|
||||
this.keyConnectorService,
|
||||
this.environmentService,
|
||||
|
|
Loading…
Reference in New Issue