mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-18 21:27:30 +09:00
Move WebExtensions enabled Add-ons Manager
This commit is contained in:
parent
d7d16e7fbb
commit
358cd0404a
1100 changed files with 133 additions and 106 deletions
62
toolkit/mozapps/webextensions/test/addons/test_symbol/bootstrap.js
vendored
Normal file
62
toolkit/mozapps/webextensions/test/addons/test_symbol/bootstrap.js
vendored
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/AddonManager.jsm");
|
||||
|
||||
const PASS_PREF = "symboltest.instanceid.pass";
|
||||
const FAIL_BOGUS_PREF = "symboltest.instanceid.fail_bogus";
|
||||
const FAIL_ID_PREF = "symboltest.instanceid.fail_bogus";
|
||||
const ADDON_ID = "test_symbol@tests.mozilla.org";
|
||||
|
||||
function install(data, reason) {}
|
||||
|
||||
// normally we would use BootstrapMonitor here, but we need a reference to
|
||||
// the symbol inside `XPIProvider.jsm`.
|
||||
function startup(data, reason) {
|
||||
Services.prefs.setBoolPref(PASS_PREF, false);
|
||||
Services.prefs.setBoolPref(FAIL_BOGUS_PREF, false);
|
||||
Services.prefs.setBoolPref(FAIL_ID_PREF, false);
|
||||
|
||||
// test with the correct symbol
|
||||
if (data.hasOwnProperty("instanceID") && data.instanceID) {
|
||||
AddonManager.getAddonByInstanceID(data.instanceID)
|
||||
.then(addon => {
|
||||
if (addon.id == ADDON_ID) {
|
||||
Services.prefs.setBoolPref(PASS_PREF, true);
|
||||
}
|
||||
}).catch(err => {
|
||||
throw Error("no addon found for symbol");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// test with a totally bogus symbol
|
||||
AddonManager.getAddonByInstanceID(Symbol("bad symbol"))
|
||||
.then(addon => {
|
||||
// there is no symbol by this name, so null should be returned
|
||||
if (addon == null) {
|
||||
Services.prefs.setBoolPref(FAIL_BOGUS_PREF, true);
|
||||
} else {
|
||||
throw Error("bad symbol should not match:", addon);
|
||||
}
|
||||
}).catch(err => {
|
||||
throw Error("promise should not have rejected: " + err);
|
||||
});
|
||||
|
||||
// try to make a matching symbol - this should fail because it's not a
|
||||
// reference to the same symbol stored inside the addons manager.
|
||||
AddonManager.getAddonByInstanceID(Symbol(ADDON_ID))
|
||||
.then(addon => {
|
||||
// there is no symbol by this name, so null should be returned
|
||||
if (addon == null) {
|
||||
Services.prefs.setBoolPref(FAIL_ID_PREF, true);
|
||||
} else {
|
||||
throw Error("bad symbol should not match:", addon);
|
||||
}
|
||||
}).catch(err => {
|
||||
throw Error("promise should not have rejected: " + err);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function shutdown(data, reason) {}
|
||||
|
||||
function uninstall(data, reason) {}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<em:id>test_symbol@tests.mozilla.org</em:id>
|
||||
<em:version>1.0</em:version>
|
||||
<em:bootstrap>true</em:bootstrap>
|
||||
|
||||
<!-- Front End MetaData -->
|
||||
<em:name>Test Symbol</em:name>
|
||||
<em:description>Test Description</em:description>
|
||||
|
||||
<em:iconURL>chrome://foo/skin/icon.png</em:iconURL>
|
||||
<em:aboutURL>chrome://foo/content/about.xul</em:aboutURL>
|
||||
<em:optionsURL>chrome://foo/content/options.xul</em:optionsURL>
|
||||
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>xpcshell@tests.mozilla.org</em:id>
|
||||
<em:minVersion>1</em:minVersion>
|
||||
<em:maxVersion>1</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
</Description>
|
||||
</RDF>
|
||||
Loading…
Add table
Add a link
Reference in a new issue