1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 16:53:34 +00:00

process messages in background runtime

This commit is contained in:
Kyle Spearrin
2018-01-12 15:20:19 -05:00
parent bc59281bf0
commit 497984e353
3 changed files with 91 additions and 78 deletions

View File

@@ -42,6 +42,15 @@ export default class RuntimeBackground {
} }
}, true); }, true);
this.runtime.addEventListener('message', async (msgEvent: any) => {
await this.processMessage(msgEvent.message, {
tab: {
id: null, // TODO
},
frameId: null,
}, () => { /* No responses in Safari */ });
}, false);
return; return;
} }
@@ -59,6 +68,11 @@ export default class RuntimeBackground {
} }
this.runtime.onMessage.addListener(async (msg: any, sender: any, sendResponse: any) => { this.runtime.onMessage.addListener(async (msg: any, sender: any, sendResponse: any) => {
await this.processMessage(msg, sender, sendResponse);
});
}
private async processMessage(msg: any, sender: any, sendResponse: any) {
switch (msg.command) { switch (msg.command) {
case 'loggedIn': case 'loggedIn':
case 'unlocked': case 'unlocked':
@@ -134,7 +148,6 @@ export default class RuntimeBackground {
default: default:
break; break;
} }
});
} }
private async autofillPage() { private async autofillPage() {

View File

@@ -101,11 +101,11 @@ class BrowserApi {
return Promise.reject('Window not found.'); return Promise.reject('Window not found.');
} }
if (safari.application.activeBrowserWindow.tabs.length < tab.index + 1) { if (win.tabs.length < tab.index + 1) {
return Promise.reject('Tab not found.'); return Promise.reject('Tab not found.');
} }
const t = safari.application.activeBrowserWindow.tabs[tab.index]; const t = win.tabs[tab.index];
t.page.dispatchMessage('bitwarden', obj); t.page.dispatchMessage('bitwarden', obj);
return Promise.resolve(); return Promise.resolve();
} }

View File

@@ -995,7 +995,7 @@
*/ */
if ((typeof safari !== 'undefined')) { if ((typeof safari !== 'undefined')) {
safari.self.addEventListener('bitwarden', function (msgEvent) { safari.self.addEventListener('message', function (msgEvent) {
var msg = msgEvent.message; var msg = msgEvent.message;
if (msg.command === 'collectPageDetails') { if (msg.command === 'collectPageDetails') {
var pageDetails = collect(document); var pageDetails = collect(document);