summaryrefslogtreecommitdiffstats
path: root/application/basilisk/components/webextensions/ext-desktop-runtime.js
diff options
context:
space:
mode:
Diffstat (limited to 'application/basilisk/components/webextensions/ext-desktop-runtime.js')
-rw-r--r--application/basilisk/components/webextensions/ext-desktop-runtime.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/application/basilisk/components/webextensions/ext-desktop-runtime.js b/application/basilisk/components/webextensions/ext-desktop-runtime.js
new file mode 100644
index 000000000..0fdb45562
--- /dev/null
+++ b/application/basilisk/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);
+};
+