summaryrefslogtreecommitdiffstats
path: root/browser/components/webextensions/ext-desktop-runtime.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-09 10:39:41 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-09 10:39:41 -0500
commit30de4018913f0cdaea19d1dd12ecd8209e2ed08e (patch)
tree6deebaede10def16e627d489455b4856c4f49386 /browser/components/webextensions/ext-desktop-runtime.js
parentac46df8daea09899ce30dc8fd70986e258c746bf (diff)
downloadUXP-30de4018913f0cdaea19d1dd12ecd8209e2ed08e.tar
UXP-30de4018913f0cdaea19d1dd12ecd8209e2ed08e.tar.gz
UXP-30de4018913f0cdaea19d1dd12ecd8209e2ed08e.tar.lz
UXP-30de4018913f0cdaea19d1dd12ecd8209e2ed08e.tar.xz
UXP-30de4018913f0cdaea19d1dd12ecd8209e2ed08e.zip
Rename Basilisk's webextensions component directory to better reflect what it is. Also, add an Application level configure option to disable webextensions
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);
+};
+