diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-10-24 06:02:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-24 06:02:42 +0200 |
commit | d07a4f2ba9295068681ecfb8e36418f6b72c3d56 (patch) | |
tree | f2a198e4ec87143d3bfe6ac58be06ab2a23d9534 | |
parent | f85840a0530d3524e1a3ae82dcf38b99ee0724c7 (diff) | |
parent | 4c488cb7f10ad18c0759903c7bef67ad432f96bc (diff) | |
download | UXP-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.js | 15 | ||||
-rw-r--r-- | application/palemoon/components/permissions/aboutPermissions.js | 8 |
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() { |