From d2083c2665e746be0a0f65ea9d5bf1b5213c3d70 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 21 Aug 2019 09:42:34 -0400 Subject: [PATCH] cleanup for safari --- src/background/commands.background.ts | 2 +- src/background/main.background.ts | 18 +---- src/background/runtime.background.ts | 20 ----- src/background/tabs.background.ts | 23 +----- src/browser/browserApi.ts | 89 ---------------------- src/browser/safariApp.ts | 8 +- src/popup/accounts/two-factor.component.ts | 8 +- 7 files changed, 15 insertions(+), 153 deletions(-) diff --git a/src/background/commands.background.ts b/src/background/commands.background.ts index 68d97aa9c8..4c77d473e1 100644 --- a/src/background/commands.background.ts +++ b/src/background/commands.background.ts @@ -53,7 +53,7 @@ export default class CommandsBackground { private async generatePasswordToClipboard() { if (this.isEdge) { - // Safari does not support access to clipboard from background + // Edge does not support access to clipboard from background return; } diff --git a/src/background/main.background.ts b/src/background/main.background.ts index 89c79368c7..4e2f65f98d 100644 --- a/src/background/main.background.ts +++ b/src/background/main.background.ts @@ -200,11 +200,11 @@ export default class MainBackground { this.runtimeBackground = new RuntimeBackground(this, this.autofillService, this.cipherService, this.platformUtilsService as BrowserPlatformUtilsService, this.storageService, this.i18nService, this.analytics, this.notificationsService, this.systemService, this.lockService); - this.tabsBackground = new TabsBackground(this, this.platformUtilsService); this.commandsBackground = new CommandsBackground(this, this.passwordGenerationService, this.platformUtilsService, this.analytics, this.lockService); if (!this.isSafari) { + this.tabsBackground = new TabsBackground(this); this.contextMenusBackground = new ContextMenusBackground(this, this.cipherService, this.passwordGenerationService, this.analytics, this.platformUtilsService, this.lockService, this.eventService); @@ -224,10 +224,10 @@ export default class MainBackground { await (this.i18nService as I18nService).init(); await (this.eventService as EventService).init(true); await this.runtimeBackground.init(); - await this.tabsBackground.init(); await this.commandsBackground.init(); if (!this.isSafari) { + await this.tabsBackground.init(); await this.contextMenusBackground.init(); await this.idleBackground.init(); await this.webRequestBackground.init(); @@ -364,20 +364,6 @@ export default class MainBackground { return; } await SafariApp.sendMessageToApp('showPopover'); - - /* - if (!this.isSafari || !safari.extension.toolbarItems || !safari.extension.toolbarItems.length) { - return; - } - - const activeToolBars = safari.extension.toolbarItems.filter((tb: any) => { - return tb.browserWindow === safari.application.activeBrowserWindow; - }); - - if (activeToolBars && activeToolBars.length) { - activeToolBars[0].showPopover(); - } - */ } async reseedStorage() { diff --git a/src/background/runtime.background.ts b/src/background/runtime.background.ts index 40a19b2c9d..5ecc7a50ad 100644 --- a/src/background/runtime.background.ts +++ b/src/background/runtime.background.ts @@ -54,27 +54,7 @@ export default class RuntimeBackground { return; } - if (this.isSafari) { - // Reload the popup when it's opened - /* - this.runtime.addEventListener('popover', (event: any) => { - const win: Window = event.target.contentWindow; - let href = win.location.href; - if (href.indexOf('#') > -1) { - href = href.substr(0, href.indexOf('#')); - } - - if (win.location.toString() === href) { - win.location.reload(); - } else { - win.location.href = href; - } - }, true); - */ - } - await this.checkOnInstalled(); - BrowserApi.messageListener('runtime.background', async (msg: any, sender: any, sendResponse: any) => { await this.processMessage(msg, sender, sendResponse); }); diff --git a/src/background/tabs.background.ts b/src/background/tabs.background.ts index 0c17a6fd5f..78f177bad5 100644 --- a/src/background/tabs.background.ts +++ b/src/background/tabs.background.ts @@ -1,14 +1,10 @@ import MainBackground from './main.background'; -import { PlatformUtilsService } from 'jslib/abstractions'; - export default class TabsBackground { private tabs: any; - private isSafari: boolean; - constructor(private main: MainBackground, private platformUtilsService: PlatformUtilsService) { - this.isSafari = this.platformUtilsService.isSafari(); - this.tabs = this.isSafari ? {} : chrome.tabs; + constructor(private main: MainBackground) { + this.tabs = chrome.tabs; } async init() { @@ -16,21 +12,6 @@ export default class TabsBackground { return; } - if (this.isSafari) { - /* - this.tabs.addEventListener('activate', async (ev: any) => { - await this.main.refreshBadgeAndMenu(); - }, true); - - this.tabs.addEventListener('navigate', async (ev: any) => { - await this.main.checkNotificationQueue(); - await this.main.refreshBadgeAndMenu(); - }, true); - */ - - return; - } - this.tabs.onActivated.addListener(async (activeInfo: any) => { await this.main.refreshBadgeAndMenu(); }); diff --git a/src/browser/browserApi.ts b/src/browser/browserApi.ts index 6578be8d5a..509115ed04 100644 --- a/src/browser/browserApi.ts +++ b/src/browser/browserApi.ts @@ -42,32 +42,6 @@ export class BrowserApi { } else if (BrowserApi.isSafariApi) { const tabs = await SafariApp.sendMessageToApp('tabs_query', JSON.stringify(options)); return tabs != null ? JSON.parse(tabs) : null; - /* - if (options.currentWindow) { - if (safari.application.activeBrowserWindow) { - wins.push(safari.application.activeBrowserWindow); - } - } else { - wins = safari.application.browserWindows; - } - - const returnedTabs: any[] = []; - wins.forEach((win: any) => { - if (!win.tabs) { - return; - } - - if (options.active && win.activeTab) { - returnedTabs.push(BrowserApi.makeTabObject(win.activeTab)); - } else if (!options.active) { - win.tabs.forEach((tab: any) => { - returnedTabs.push(BrowserApi.makeTabObject(tab)); - }); - } - }); - - return Promise.resolve(returnedTabs); - */ } } @@ -115,35 +89,6 @@ export class BrowserApi { obj: JSON.stringify(obj), options: options, }), true); - /* - let t = tab.safariTab; - if (!t || !t.page) { - const win = safari.application.activeBrowserWindow; - if (safari.application.browserWindows.indexOf(win) !== tab.windowId) { - return Promise.reject('Window not found.'); - } - - if (win.tabs.length < tab.index + 1) { - return Promise.reject('Tab not found.'); - } - - t = win.tabs[tab.index]; - } - - if (obj.tab && obj.tab.safariTab) { - delete obj.tab.safariTab; - } - - if (options != null && options.frameId != null && obj.bitwardenFrameId == null) { - obj.bitwardenFrameId = options.frameId; - } - - if (t.page) { - t.page.dispatchMessage('bitwarden', obj); - } - */ - - return Promise.resolve(); } } @@ -215,15 +160,6 @@ export class BrowserApi { } callback(message, sender, response); }); - /* - safari.application.addEventListener('message', async (msgEvent: any) => { - callback(msgEvent.message, { - tab: BrowserApi.makeTabObject(msgEvent.target), - frameId: msgEvent.message != null && msgEvent.message.bitwardenFrameId != null ? - msgEvent.message.bitwardenFrameId : null, - }, () => { }); - }, false); - */ } } @@ -258,31 +194,6 @@ export class BrowserApi { } } - static makeTabObject(tab: any): any { - if (BrowserApi.isChromeApi) { - return tab; - } - - if (!tab.browserWindow) { - return {}; - } - - return {}; - /* - const winIndex = safari.application.browserWindows.indexOf(tab.browserWindow); - const tabIndex = tab.browserWindow.tabs.indexOf(tab); - return { - id: winIndex + '_' + tabIndex, - index: tabIndex, - windowId: winIndex, - title: tab.title, - active: tab === tab.browserWindow.activeTab, - url: tab.url || 'about:blank', - safariTab: tab, - }; - */ - } - static gaFilter() { return process.env.ENV !== 'production'; } diff --git a/src/browser/safariApp.ts b/src/browser/safariApp.ts index ca4cb44496..5593b069b8 100644 --- a/src/browser/safariApp.ts +++ b/src/browser/safariApp.ts @@ -1,13 +1,11 @@ import { BrowserApi } from './browserApi'; export class SafariApp { - static inited = false; - static init() { - if (SafariApp.inited) { + if ((window as any).bitwardenSafariAppInited) { return; } - SafariApp.inited = true; + (window as any).bitwardenSafariAppInited = true; if (BrowserApi.isSafariApi) { (window as any).bitwardenSafariAppRequests = new Map void, timeoutDate: Date }>(); @@ -16,7 +14,7 @@ export class SafariApp { (window as any).bitwardenSafariAppMessageReceiver = (message: any) => { SafariApp.receiveMessageFromApp(message); }; - setInterval(() => SafariApp.cleanupOldRequests(), 5 * 60000); + setInterval(() => SafariApp.cleanupOldRequests(), 5 * 60000); // every 5 mins } } diff --git a/src/popup/accounts/two-factor.component.ts b/src/popup/accounts/two-factor.component.ts index df43cfe7ef..ed65b4e693 100644 --- a/src/popup/accounts/two-factor.component.ts +++ b/src/popup/accounts/two-factor.component.ts @@ -50,6 +50,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { } async ngOnInit() { + /* this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => { this.ngZone.run(async () => { switch (message.command) { @@ -65,6 +66,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { this.changeDetectorRef.detectChanges(); }); }); + */ const isFirefox = this.platformUtilsService.isFirefox(); if (this.popupUtilsService.inPopup(window) && isFirefox && @@ -72,8 +74,10 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { // ref: https://bugzilla.mozilla.org/show_bug.cgi?id=1562620 this.initU2f = false; } + /* const isSafari = this.platformUtilsService.isSafari(); this.showNewWindowMessage = isSafari; + */ await super.ngOnInit(); @@ -81,7 +85,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { return; } - if (!isSafari && this.selectedProviderType === TwoFactorProviderType.Email && + if (/*!isSafari && */this.selectedProviderType === TwoFactorProviderType.Email && this.popupUtilsService.inPopup(window)) { const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('popup2faCloseMessage'), null, this.i18nService.t('yes'), this.i18nService.t('no')); @@ -99,6 +103,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { } } + /* const isDuo = this.selectedProviderType === TwoFactorProviderType.Duo || this.selectedProviderType === TwoFactorProviderType.OrganizationDuo; if (!isSafari || !isDuo) { @@ -118,6 +123,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent { }, }); }, 500); + */ } ngOnDestroy() {