From 63de9273b383cc46a2f063cfb40ef4699b06e612 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Wed, 10 Mar 2021 20:26:57 -0500 Subject: Fix permissions changes not being supported on some browsers (#1513) --- ext/js/pages/settings/settings-controller.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'ext/js/pages/settings') diff --git a/ext/js/pages/settings/settings-controller.js b/ext/js/pages/settings/settings-controller.js index 4a86470d..5fa5b660 100644 --- a/ext/js/pages/settings/settings-controller.js +++ b/ext/js/pages/settings/settings-controller.js @@ -51,8 +51,10 @@ class SettingsController extends EventDispatcher { prepare() { yomichan.on('optionsUpdated', this._onOptionsUpdated.bind(this)); - chrome.permissions.onAdded.addListener(this._onPermissionsChanged.bind(this)); - chrome.permissions.onRemoved.addListener(this._onPermissionsChanged.bind(this)); + if (this._canObservePermissionsChanges()) { + chrome.permissions.onAdded.addListener(this._onPermissionsChanged.bind(this)); + chrome.permissions.onRemoved.addListener(this._onPermissionsChanged.bind(this)); + } } async refresh() { @@ -206,4 +208,8 @@ class SettingsController extends EventDispatcher { const permissions = await this._permissionsUtil.getAllPermissions(); this.trigger(event, {permissions}); } + + _canObservePermissionsChanges() { + return isObject(chrome.permissions) && isObject(chrome.permissions.onAdded) && isObject(chrome.permissions.onRemoved); + } } -- cgit v1.2.3