diff options
author | Florian Dold <florian.dold@gmail.com> | 2020-08-03 13:00:48 +0530 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2020-08-03 13:01:05 +0530 |
commit | ffd2a62c3f7df94365980302fef3bc3376b48182 (patch) | |
tree | 270af6f16b4cc7f5da2afdba55c8bc9dbea5eca5 /packages/taler-wallet-webextension/src/compat.js | |
parent | aa481e42675fb7c4dcbbeec0ba1c61e1953b9596 (diff) | |
download | wallet-core-ffd2a62c3f7df94365980302fef3bc3376b48182.tar.xz |
modularize repo, use pnpm, improve typechecking
Diffstat (limited to 'packages/taler-wallet-webextension/src/compat.js')
-rw-r--r-- | packages/taler-wallet-webextension/src/compat.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/compat.js b/packages/taler-wallet-webextension/src/compat.js new file mode 100644 index 000000000..fdfcbd4b9 --- /dev/null +++ b/packages/taler-wallet-webextension/src/compat.js @@ -0,0 +1,61 @@ +"use strict"; +/* + This file is part of TALER + (C) 2017 INRIA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPermissionsApi = exports.isNode = exports.isFirefox = void 0; +/** + * Compatibility helpers needed for browsers that don't implement + * WebExtension APIs consistently. + */ +function isFirefox() { + const rt = chrome.runtime; + if (typeof rt.getBrowserInfo === "function") { + return true; + } + return false; +} +exports.isFirefox = isFirefox; +/** + * Check if we are running under nodejs. + */ +function isNode() { + return typeof process !== "undefined" && process.release.name === "node"; +} +exports.isNode = isNode; +function getPermissionsApi() { + const myBrowser = globalThis.browser; + if (typeof myBrowser === "object" && + typeof myBrowser.permissions === "object") { + return { + addPermissionsListener: () => { + // Not supported yet. + }, + contains: myBrowser.permissions.contains, + request: myBrowser.permissions.request, + remove: myBrowser.permissions.remove, + }; + } + else { + return { + addPermissionsListener: chrome.permissions.onAdded.addListener.bind(chrome.permissions.onAdded), + contains: chrome.permissions.contains, + request: chrome.permissions.request, + remove: chrome.permissions.remove, + }; + } +} +exports.getPermissionsApi = getPermissionsApi; +//# sourceMappingURL=compat.js.map
\ No newline at end of file |