summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-10-24 06:02:42 +0200
committerGitHub <noreply@github.com>2018-10-24 06:02:42 +0200
commitd07a4f2ba9295068681ecfb8e36418f6b72c3d56 (patch)
treef2a198e4ec87143d3bfe6ac58be06ab2a23d9534
parentf85840a0530d3524e1a3ae82dcf38b99ee0724c7 (diff)
parent4c488cb7f10ad18c0759903c7bef67ad432f96bc (diff)
downloadUXP-d07a4f2ba9295068681ecfb8e36418f6b72c3d56.tar
UXP-d07a4f2ba9295068681ecfb8e36418f6b72c3d56.tar.gz
UXP-d07a4f2ba9295068681ecfb8e36418f6b72c3d56.tar.lz
UXP-d07a4f2ba9295068681ecfb8e36418f6b72c3d56.tar.xz
UXP-d07a4f2ba9295068681ecfb8e36418f6b72c3d56.zip
Merge pull request #845 from JustOff/PR_notifications_open_settings
Open about:permissions when notification settings are requested in Pale Moon
-rw-r--r--application/palemoon/components/nsBrowserGlue.js15
-rw-r--r--application/palemoon/components/permissions/aboutPermissions.js8
2 files changed, 23 insertions, 0 deletions
diff --git a/application/palemoon/components/nsBrowserGlue.js b/application/palemoon/components/nsBrowserGlue.js
index 720d1165c..f0a7aa22a 100644
--- a/application/palemoon/components/nsBrowserGlue.js
+++ b/application/palemoon/components/nsBrowserGlue.js
@@ -152,6 +152,9 @@ BrowserGlue.prototype = {
// nsIObserver implementation
observe: function BG_observe(subject, topic, data) {
switch (topic) {
+ case "notifications-open-settings":
+ this._openPermissions(subject);
+ break;
case "prefservice:after-app-defaults":
this._onAppDefaults();
break;
@@ -322,6 +325,7 @@ BrowserGlue.prototype = {
// initialization (called on application startup)
_init: function BG__init() {
let os = Services.obs;
+ os.addObserver(this, "notifications-open-settings", false);
os.addObserver(this, "prefservice:after-app-defaults", false);
os.addObserver(this, "final-ui-startup", false);
os.addObserver(this, "browser-delayed-startup-finished", false);
@@ -354,6 +358,7 @@ BrowserGlue.prototype = {
// cleanup (called on application shutdown)
_dispose: function BG__dispose() {
let os = Services.obs;
+ os.removeObserver(this, "notifications-open-settings");
os.removeObserver(this, "prefservice:after-app-defaults");
os.removeObserver(this, "final-ui-startup");
os.removeObserver(this, "sessionstore-windows-restored");
@@ -1484,6 +1489,16 @@ BrowserGlue.prototype = {
}
},
+ _openPermissions: function(aPrincipal) {
+ var win = this.getMostRecentBrowserWindow();
+ var url = "about:permissions";
+ try {
+ url = url + "?filter=" + aPrincipal.URI.host;
+ }
+ catch (e) {}
+ win.openUILinkIn(url, "tab");
+ },
+
_hasSystemAlertsService: function() {
try {
return !!Cc["@mozilla.org/system-alerts-service;1"].getService(
diff --git a/application/palemoon/components/permissions/aboutPermissions.js b/application/palemoon/components/permissions/aboutPermissions.js
index 6a02daa29..421b65a0e 100644
--- a/application/palemoon/components/permissions/aboutPermissions.js
+++ b/application/palemoon/components/permissions/aboutPermissions.js
@@ -516,6 +516,14 @@ var AboutPermissions = {
Services.obs.notifyObservers(null, "browser-permissions-preinit", null);
this._initPart2();
+
+ // Process about:permissions?filter=<string>
+ // About URIs don't support query params, so do this manually
+ var loc = document.location.href;
+ var matches = /[?&]filter\=([^&]+)/i.exec(loc);
+ if (matches) {
+ this.sitesFilter.value = decodeURIComponent(matches[1]);
+ }
},
sitesReload: function() {