/usr/share/xul-ext/adblock-plus-element-hiding-helper/bootstrap.js is in xul-ext-adblock-plus-element-hiding-helper 1.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | /*
* This Source Code is subject to the terms of the Mozilla Public License
* version 2.0 (the "License"). You can obtain a copy of the License at
* http://mozilla.org/MPL/2.0/.
*/
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const Cu = Components.utils;
Cu.import("resource://gre/modules/Services.jsm");
let addonData = null;
function install(params, reason) {}
function uninstall(params, reason) {}
function startup(params, reason)
{
addonData = params;
if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0)
{
Components.manager.addBootstrappedManifestLocation(params.installPath);
onShutdown.add(function() Components.manager.removeBootstrappedManifestLocation(params.installPath));
}
Services.obs.addObserver(RequireObserver, "elemhidehelper-require", true);
onShutdown.add(function() Services.obs.removeObserver(RequireObserver, "elemhidehelper-require"));
require("main");
}
function shutdown(params, reason)
{
let windowNames = ["ehh:composer"];
for (let i = 0; i < windowNames.length; i++)
{
let enumerator = Services.wm.getEnumerator(windowNames[i]);
while (enumerator.hasMoreElements())
{
let window = enumerator.getNext().QueryInterface(Ci.nsIDOMWindow);
window.setTimeout("window.close()", 0); // Closing immediately might not work due to modal windows
try
{
window.close();
} catch(e) {}
}
}
onShutdown.done = true;
for (let i = shutdownHandlers.length - 1; i >= 0; i --)
{
try
{
shutdownHandlers[i]();
}
catch (e)
{
Cu.reportError(e);
}
}
}
let shutdownHandlers = [];
let onShutdown =
{
done: false,
add: function(handler)
{
if (shutdownHandlers.indexOf(handler) < 0)
shutdownHandlers.push(handler);
},
remove: function(handler)
{
let index = shutdownHandlers.indexOf(handler);
if (index >= 0)
shutdownHandlers.splice(index, 1);
}
};
function require(module)
{
let scopes = require.scopes;
if (!(module in scopes))
{
if (module == "info")
{
scopes[module] = {};
scopes[module].exports =
{
addonID: addonData.id,
addonVersion: addonData.version,
addonRoot: addonData.resourceURI.spec,
addonName: "elemhidehelper",
};
}
else
{
scopes[module] = {
Cc: Cc,
Ci: Ci,
Cr: Cr,
Cu: Cu,
require: require,
onShutdown: onShutdown,
exports: {}};
Services.scriptloader.loadSubScript(addonData.resourceURI.spec + module + ".js", scopes[module]);
}
}
return scopes[module].exports;
}
require.scopes = {__proto__: null};
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
let RequireObserver =
{
observe: function(subject, topic, data)
{
if (topic == "elemhidehelper-require")
{
subject.wrappedJSObject.exports = require(data);
}
},
QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
};
|