summaryrefslogtreecommitdiffstats
path: root/browser/components/webextensions/ext-desktop-runtime.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
commit37d5300335d81cecbecc99812747a657588c63eb (patch)
tree765efa3b6a56bb715d9813a8697473e120436278 /browser/components/webextensions/ext-desktop-runtime.js
parentb2bdac20c02b12f2057b9ef70b0a946113a00e00 (diff)
parent4fb11cd5966461bccc3ed1599b808237be6b0de9 (diff)
downloadUXP-37d5300335d81cecbecc99812747a657588c63eb.tar
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.gz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.lz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.xz
UXP-37d5300335d81cecbecc99812747a657588c63eb.zip
Merge branch 'ext-work'
Diffstat (limited to 'browser/components/webextensions/ext-desktop-runtime.js')
-rw-r--r--browser/components/webextensions/ext-desktop-runtime.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/browser/components/webextensions/ext-desktop-runtime.js b/browser/components/webextensions/ext-desktop-runtime.js
new file mode 100644
index 000000000..0fdb45562
--- /dev/null
+++ b/browser/components/webextensions/ext-desktop-runtime.js
@@ -0,0 +1,26 @@
+"use strict";
+
+/* eslint-disable mozilla/balanced-listeners */
+extensions.on("uninstall", (msg, extension) => {
+ if (extension.uninstallURL) {
+ let browser = WindowManager.topWindow.gBrowser;
+ browser.addTab(extension.uninstallURL, {relatedToCurrent: true});
+ }
+});
+
+global.openOptionsPage = (extension) => {
+ let window = WindowManager.topWindow;
+ if (!window) {
+ return Promise.reject({message: "No browser window available"});
+ }
+
+ if (extension.manifest.options_ui.open_in_tab) {
+ window.switchToTabHavingURI(extension.manifest.options_ui.page, true);
+ return Promise.resolve();
+ }
+
+ let viewId = `addons://detail/${encodeURIComponent(extension.id)}/preferences`;
+
+ return window.BrowserOpenAddonsMgr(viewId);
+};
+