convert pages to use browser api message functions
This commit is contained in:
parent
8f438d818b
commit
2f107ea0c2
|
@ -468,7 +468,7 @@ export default class MainBackground {
|
|||
continue;
|
||||
}
|
||||
|
||||
BrowserApi.tabSendMessage(tab, 'openNotificationBar', {
|
||||
BrowserApi.tabSendMessageData(tab, 'openNotificationBar', {
|
||||
type: 'add',
|
||||
});
|
||||
break;
|
||||
|
|
|
@ -58,13 +58,13 @@ export default class RuntimeBackground {
|
|||
}
|
||||
break;
|
||||
case 'bgOpenNotificationBar':
|
||||
await BrowserApi.tabSendMessage(sender.tab, 'openNotificationBar', msg.data);
|
||||
await BrowserApi.tabSendMessageData(sender.tab, 'openNotificationBar', msg.data);
|
||||
break;
|
||||
case 'bgCloseNotificationBar':
|
||||
await BrowserApi.tabSendMessage(sender.tab, 'closeNotificationBar');
|
||||
await BrowserApi.tabSendMessageData(sender.tab, 'closeNotificationBar');
|
||||
break;
|
||||
case 'bgAdjustNotificationBar':
|
||||
await BrowserApi.tabSendMessage(sender.tab, 'adjustNotificationBar', msg.data);
|
||||
await BrowserApi.tabSendMessageData(sender.tab, 'adjustNotificationBar', msg.data);
|
||||
break;
|
||||
case 'bgCollectPageDetails':
|
||||
this.main.collectPageDetailsForContentScript(sender.tab, msg.sender, sender.frameId);
|
||||
|
@ -88,7 +88,7 @@ export default class RuntimeBackground {
|
|||
switch (msg.sender) {
|
||||
case 'notificationBar':
|
||||
const forms = this.autofillService.getFormsWithPasswordFields(msg.details);
|
||||
await BrowserApi.tabSendMessage(msg.tab, 'notificationBarPageDetails', {
|
||||
await BrowserApi.tabSendMessageData(msg.tab, 'notificationBarPageDetails', {
|
||||
details: msg.details,
|
||||
forms: forms,
|
||||
});
|
||||
|
@ -166,7 +166,7 @@ export default class RuntimeBackground {
|
|||
eventAction: 'Added Login from Notification Bar',
|
||||
});
|
||||
|
||||
BrowserApi.tabSendMessage(tab, 'closeNotificationBar');
|
||||
BrowserApi.tabSendMessageData(tab, 'closeNotificationBar');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -185,7 +185,7 @@ export default class RuntimeBackground {
|
|||
this.main.loginsToAdd.splice(i, 1);
|
||||
const hostname = UtilsService.getHostname(tab.url);
|
||||
await this.cipherService.saveNeverDomain(hostname);
|
||||
BrowserApi.tabSendMessage(tab, 'closeNotificationBar');
|
||||
BrowserApi.tabSendMessageData(tab, 'closeNotificationBar');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -231,12 +231,12 @@ export default class RuntimeBackground {
|
|||
}
|
||||
}
|
||||
|
||||
private async currentTabSendMessage(command: string, data: any = null) {
|
||||
private async currenttabSendMessageData(command: string, data: any = null) {
|
||||
const tab = await BrowserApi.getTabFromCurrentWindow();
|
||||
if (tab == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
await BrowserApi.tabSendMessage(tab, command, data);
|
||||
await BrowserApi.tabSendMessageData(tab, command, data);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,11 +33,7 @@ class BrowserApi {
|
|||
return null;
|
||||
}
|
||||
|
||||
static tabSendMessage(tab: any, command: string, data: any = null): Promise<any[]> {
|
||||
if (!tab || !tab.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
static tabSendMessageData(tab: any, command: string, data: any = null): Promise<any[]> {
|
||||
const obj: any = {
|
||||
command: command,
|
||||
};
|
||||
|
@ -46,11 +42,23 @@ class BrowserApi {
|
|||
obj.data = data;
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
chrome.tabs.sendMessage(tab.id, obj, () => {
|
||||
resolve();
|
||||
return BrowserApi.tabSendMessage(tab, obj);
|
||||
}
|
||||
|
||||
static tabSendMessage(tab: any, obj: any): Promise<any[]> {
|
||||
if (!tab || !tab.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (BrowserApi.isChromeApi) {
|
||||
return new Promise((resolve) => {
|
||||
chrome.tabs.sendMessage(tab.id, obj, () => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
} else if (BrowserApi.isSafariApi) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
||||
static getBackgroundPage(): any {
|
||||
|
@ -102,6 +110,16 @@ class BrowserApi {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static messageListener(callback: (message: any, sender: any, response: any) => void) {
|
||||
if (BrowserApi.isChromeApi) {
|
||||
chrome.runtime.onMessage.addListener((msg: any, sender: any, response: any) => {
|
||||
callback(msg, sender, response);
|
||||
});
|
||||
} else if (BrowserApi.isSafariApi) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export { BrowserApi };
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './current.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { CipherType } from 'jslib/enums/cipherType';
|
||||
|
||||
import { CipherService } from 'jslib/abstractions/cipher.service';
|
||||
|
@ -103,9 +105,9 @@ export class CurrentController {
|
|||
}
|
||||
|
||||
private loadVault() {
|
||||
chrome.tabs.query({ active: true, currentWindow: true }, (tabs: any) => {
|
||||
if (tabs.length > 0) {
|
||||
this.url = tabs[0].url;
|
||||
BrowserApi.getTabFromCurrentWindow().then((tab: any) => {
|
||||
if (tab) {
|
||||
this.url = tab.url;
|
||||
} else {
|
||||
this.$timeout(() => {
|
||||
this.loaded = true;
|
||||
|
@ -115,11 +117,11 @@ export class CurrentController {
|
|||
|
||||
this.domain = this.platformUtilsService.getDomain(this.url);
|
||||
|
||||
chrome.tabs.sendMessage(tabs[0].id, {
|
||||
BrowserApi.tabSendMessage(tab, {
|
||||
command: 'collectPageDetails',
|
||||
tab: tabs[0],
|
||||
tab: tab,
|
||||
sender: 'currentController',
|
||||
}, () => {
|
||||
}).then(() => {
|
||||
this.canAutofill = true;
|
||||
});
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import AuthService from '../services/auth.service';
|
||||
|
||||
import { UtilsService } from 'jslib/abstractions/utils.service';
|
||||
|
@ -23,7 +25,7 @@ export class MainController implements ng.IController {
|
|||
}
|
||||
});
|
||||
|
||||
chrome.runtime.onMessage.addListener((msg: any, sender: any, sendResponse: any) => {
|
||||
BrowserApi.messageListener((msg: any, sender: any, sendResponse: any) => {
|
||||
if (msg.command === 'syncCompleted') {
|
||||
$scope.$broadcast('syncCompleted', msg.successfully);
|
||||
} else if (msg.command === 'syncStarted') {
|
||||
|
|
Loading…
Reference in New Issue