[X2Go-Commits] [pale-moon] 03/05: debian/: new directory "extra-stuff" containing Debian-specific additions (currently only addonsInfo).

git-admin at x2go.org git-admin at x2go.org
Fri Aug 31 05:47:13 CEST 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository pale-moon.

commit 67bc8da8d9acbc768b3b55dcde5cd8c16c31b447
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Fri Aug 31 05:39:48 2018 +0200

    debian/: new directory "extra-stuff" containing Debian-specific additions (currently only addonsInfo).
---
 debian/changelog                       |   2 +
 debian/extra-stuff/Makefile.in         |   0
 debian/extra-stuff/addonsInfo.js       | 108 +++++++++++++++++++++++++++++++++
 debian/extra-stuff/addonsInfo.manifest |   3 +
 debian/extra-stuff/moz.build           |   1 +
 5 files changed, 114 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 8e95df6..2a373ec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -88,6 +88,8 @@ palemoon (27.9.2~repack-1-0x2go1) UNRELEASED; urgency=medium
     - Add very stripped-down upstream.mk file.
     - New directory "installer" with package-manifest data for extra
       installation files.
+    - New directory "extra-stuff" containing Debian-specific additions
+      (currently only addonsInfo).
   * debian/changelog:
     - Change repack-1 in version string to repack1 because a dash denotes the
       start of a downstream change.
diff --git a/debian/extra-stuff/Makefile.in b/debian/extra-stuff/Makefile.in
new file mode 100644
index 0000000..e69de29
diff --git a/debian/extra-stuff/addonsInfo.js b/debian/extra-stuff/addonsInfo.js
new file mode 100644
index 0000000..42d76b8
--- /dev/null
+++ b/debian/extra-stuff/addonsInfo.js
@@ -0,0 +1,108 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+Components.utils.import("resource://gre/modules/AddonManager.jsm");
+
+function compare(a, b) {
+  return String.localeCompare(a.name, b.name);
+}
+
+function dumper() {}
+dumper.prototype = {
+  close: function() { },
+  writeString: function(str) {
+    dump(str);
+  }
+};
+
+function dump_addons(out) {
+  var addons = false;
+  AddonManager.getAllAddons(function(aAddons) {
+    addons = aAddons;
+  });
+
+  var thread = Services.tm.currentThread;
+  while (addons == false) {
+    thread.processNextEvent(true);
+  }
+
+  addons.sort(compare);
+  out.writeString("-- Extensions information\n");
+  addons.forEach(function(extension) {
+    if (extension.type == "plugin")
+      return;
+    out.writeString("Name: " + extension.name);
+    if (extension.type != "extension")
+      out.writeString(" " + extension.type);
+    out.writeString("\n");
+    if (extension.getResourceURI) {
+      var location = extension.getResourceURI("").QueryInterface(Ci.nsIFileURL).file;
+      if (extension.scope == AddonManager.SCOPE_PROFILE)
+        out.writeString("Location: ${PROFILE_EXTENSIONS}/" +
+                        location.leafName + "\n");
+      else
+        out.writeString("Location: " + location.path + "\n");
+    }
+    out.writeString("Status: " + (extension.appDisabled ? "app-disabled" :
+                                 (extension.userDisabled ? "user-disabled" :
+                                 "enabled")) + "\n");
+    out.writeString("\n");
+  });
+
+  var phs = Cc["@mozilla.org/plugin/host;1"]
+            .getService(Ci.nsIPluginHost);
+  var plugins = phs.getPluginTags({ });
+  plugins.sort(compare);
+  out.writeString("-- Plugins information\n");
+  plugins.forEach(function(plugin) {
+    out.writeString("Name: " + plugin.name +
+           (plugin.version ? " (" + plugin.version + ")" : "") + "\n");
+    out.writeString("Location: " +
+           (plugin.fullpath ? plugin.fullpath : plugin.filename) + "\n");
+    out.writeString("Status: " + (plugin.disabled ? "disabled" : "enabled") +
+                    (plugin.blocklisted ? " blocklisted" : "") + "\n");
+    out.writeString("\n");
+  });
+}
+
+function addonsInfoHandler() {}
+addonsInfoHandler.prototype = {
+  handle: function clh_handle(cmdLine) {
+    var path;
+    var out;
+    try {
+      path = cmdLine.handleFlagWithParam("dump-addons-info", false);
+      if (!path)
+        return;
+    } catch(e) {
+      if (!cmdLine.handleFlag("dump-addons-info", false))
+        return;
+    }
+
+    cmdLine.preventDefault = true;
+
+    if (path) {
+      var file = Cc["@mozilla.org/file/local;1"]
+                 .createInstance(Ci.nsILocalFile);
+      file.initWithPath(path);
+      var outstream = Cc["@mozilla.org/network/file-output-stream;1"]
+                      .createInstance(Ci.nsIFileOutputStream);
+      outstream.init(file, 0x2A /* TRUNCATE | WRONLY | CREATE */, 0666, 0);
+      out = Cc["@mozilla.org/intl/converter-output-stream;1"]
+            .createInstance(Ci.nsIConverterOutputStream);
+      out.init(outstream, "UTF-8", 0, 0);
+    } else
+      out = new dumper();
+
+    dump_addons(out);
+    out.close();
+  },
+
+  classDescription: "addonsInfoHandler",
+  classID: Components.ID("{17a1f091-70f7-411c-a9d7-191689552d01}"),
+  contractID: "@mozilla.org/toolkit/addonsInfo-clh;1",
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsICommandLineHandler]),
+};
+
+const NSGetFactory = XPCOMUtils.generateNSGetFactory([addonsInfoHandler]);
diff --git a/debian/extra-stuff/addonsInfo.manifest b/debian/extra-stuff/addonsInfo.manifest
new file mode 100644
index 0000000..c7a0699
--- /dev/null
+++ b/debian/extra-stuff/addonsInfo.manifest
@@ -0,0 +1,3 @@
+component {17a1f091-70f7-411c-a9d7-191689552d01} addonsInfo.js
+contract @mozilla.org/toolkit/addonsInfo-clh;1 {17a1f091-70f7-411c-a9d7-191689552d01}
+category command-line-handler a-addons-info @mozilla.org/toolkit/addonsInfo-clh;1
diff --git a/debian/extra-stuff/moz.build b/debian/extra-stuff/moz.build
new file mode 100644
index 0000000..91950c6
--- /dev/null
+++ b/debian/extra-stuff/moz.build
@@ -0,0 +1 @@
+EXTRA_COMPONENTS += ['addonsInfo.js', 'addonsInfo.manifest']

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git


More information about the x2go-commits mailing list