From 8cc268cd6c43437e4236b63d2c80f13d00b83630 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 4 Apr 2019 11:50:49 -0400 Subject: [PATCH] window reload if there is a sidebar, resolves #900 --- jslib | 2 +- src/background/main.background.ts | 4 +++- src/browser/browserApi.ts | 6 +++--- src/popup/app.component.ts | 11 ++++++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/jslib b/jslib index 2ef1b7d65c0..0b0245b90fb 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 2ef1b7d65c02f7f204a0bb5a46c28aa093be274d +Subproject commit 0b0245b90fbb99fe677a94a2f97b8245cd255c1f diff --git a/src/background/main.background.ts b/src/background/main.background.ts index 1575eb7bddd..382b8e49800 100644 --- a/src/background/main.background.ts +++ b/src/background/main.background.ts @@ -179,7 +179,9 @@ export default class MainBackground { this.storageService, this.appIdService); this.systemService = new SystemService(this.storageService, this.lockService, this.messagingService, this.platformUtilsService, () => { - BrowserApi.reloadExtension(window, false); + const forceWindowReload = this.platformUtilsService.isSafari() || + this.platformUtilsService.isFirefox() || this.platformUtilsService.isOpera(); + BrowserApi.reloadExtension(forceWindowReload ? window : null); return Promise.resolve(); }); diff --git a/src/browser/browserApi.ts b/src/browser/browserApi.ts index d1cd121522d..1e8b2e937bd 100644 --- a/src/browser/browserApi.ts +++ b/src/browser/browserApi.ts @@ -288,10 +288,10 @@ export class BrowserApi { } } - static reloadExtension(win: Window, popupWindow: boolean) { - if (BrowserApi.isSafariApi) { + static reloadExtension(win: Window) { + if (win != null) { return win.location.reload(true); - } else if (!popupWindow) { + } else if (!BrowserApi.isSafariApi) { return chrome.runtime.reload(); } } diff --git a/src/popup/app.component.ts b/src/popup/app.component.ts index 2a29f979cee..1e386050c29 100644 --- a/src/popup/app.component.ts +++ b/src/popup/app.component.ts @@ -31,6 +31,7 @@ import { BroadcasterService } from 'jslib/angular/services/broadcaster.service'; import { AuthService } from 'jslib/abstractions/auth.service'; import { I18nService } from 'jslib/abstractions/i18n.service'; import { MessagingService } from 'jslib/abstractions/messaging.service'; +import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service'; import { StateService } from 'jslib/abstractions/state.service'; import { StorageService } from 'jslib/abstractions/storage.service'; @@ -66,7 +67,7 @@ export class AppComponent implements OnInit { private i18nService: I18nService, private router: Router, private stateService: StateService, private messagingService: MessagingService, private changeDetectorRef: ChangeDetectorRef, private ngZone: NgZone, - private sanitizer: DomSanitizer) { } + private sanitizer: DomSanitizer, private platformUtilsService: PlatformUtilsService) { } ngOnInit() { if (BrowserApi.getBackgroundPage() == null) { @@ -116,8 +117,12 @@ export class AppComponent implements OnInit { properties: { label: msg.label }, }); } else if (msg.command === 'reloadProcess') { - // Wait to make sure background has reloaded first. - window.setTimeout(() => BrowserApi.reloadExtension(window, true), 2000); + const windowReload = this.platformUtilsService.isSafari() || + this.platformUtilsService.isFirefox() || this.platformUtilsService.isOpera(); + if (windowReload) { + // Wait to make sure background has reloaded first. + window.setTimeout(() => BrowserApi.reloadExtension(window), 2000); + } } else { msg.webExtSender = sender; this.broadcasterService.send(msg);