global message handler for popop

This commit is contained in:
Kyle Spearrin 2018-01-13 20:30:14 -05:00
parent b6a8594d08
commit 64e2debb77
2 changed files with 16 additions and 3 deletions

View File

@ -25,7 +25,7 @@ export class MainController implements ng.IController {
} }
}); });
BrowserApi.messageListener((msg: any, sender: any, sendResponse: any) => { $window.bitwardenPopupMainMessageListener = (msg: any, sender: any, sendResponse: any) => {
if (msg.command === 'syncCompleted') { if (msg.command === 'syncCompleted') {
$scope.$broadcast('syncCompleted', msg.successfully); $scope.$broadcast('syncCompleted', msg.successfully);
} else if (msg.command === 'syncStarted') { } else if (msg.command === 'syncStarted') {
@ -38,13 +38,16 @@ export class MainController implements ng.IController {
} }
$state.go('home'); $state.go('home');
}); });
} else if (msg.command === 'collectPageDetailsResponse' && msg.sender === 'currentController') { } else if (msg.command === 'collectPageDetailsResponse' &&
msg.sender === 'currentController') {
$scope.$broadcast('collectPageDetailsResponse', { $scope.$broadcast('collectPageDetailsResponse', {
frameId: sender.frameId, frameId: sender.frameId,
tab: msg.tab, tab: msg.tab,
details: msg.details, details: msg.details,
}); });
} }
}); };
BrowserApi.messageListener($window.bitwardenPopupMainMessageListener);
} }
} }

View File

@ -15,6 +15,16 @@ export default class BrowserMessagingService implements MessagingService {
if (this.platformUtilsService.isSafari()) { if (this.platformUtilsService.isSafari()) {
const bgPage = BrowserApi.getBackgroundPage(); const bgPage = BrowserApi.getBackgroundPage();
bgPage.bitwardenMain.sendInternalRuntimeMessage(message); 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 { } else {
chrome.runtime.sendMessage(message); chrome.runtime.sendMessage(message);
} }