mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,82 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
// We require signature checks for this test
|
||||
Services.prefs.setBoolPref(PREF_XPI_SIGNATURES_REQUIRED, true);
|
||||
gUseRealCertChecks = true;
|
||||
|
||||
const CERT = `MIIDITCCAgmgAwIBAgIJALAv8fydd6nBMA0GCSqGSIb3DQEBBQUAMCcxJTAjBgNV
|
||||
BAMMHGJvb3RzdHJhcDFAdGVzdHMubW96aWxsYS5vcmcwHhcNMTYwMjAyMjMxNjUy
|
||||
WhcNMjYwMTMwMjMxNjUyWjAnMSUwIwYDVQQDDBxib290c3RyYXAxQHRlc3RzLm1v
|
||||
emlsbGEub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5caNuLTu
|
||||
H8dEqNntLlhKi4y09hrgcF3cb6n5Xx9DIHA8CKiZxt9qGXKeeiDwEiiQ8ibJYzdc
|
||||
jLkbzJUyPVUaH9ygrWynSpSTOvv/Ys3+ERrCo9W7Zuzwdmzt6TTEjFMS4lVx06us
|
||||
3uUqkdp3JMgCqCEbOFZiztICiSKrp8QFJkAfApZzBqmJOPOWH0yZ2CRRzvbQZ6af
|
||||
hqQDUalJQjWfsenyUWphhbREqExetxHJFR3OrmJt/shXVyz6dD7TBuE3PPUh1RpE
|
||||
3ejVufcTzjV3XmK79PxsKLM9V2+ww9e9V3OET57kyvn+bpSWdUYm3X4DA8dxNW6+
|
||||
kTFWRnQNZ+zQVQIDAQABo1AwTjAdBgNVHQ4EFgQUac36ccv+99N5HxYa8dCDYRaF
|
||||
HNQwHwYDVR0jBBgwFoAUac36ccv+99N5HxYa8dCDYRaFHNQwDAYDVR0TBAUwAwEB
|
||||
/zANBgkqhkiG9w0BAQUFAAOCAQEAFfu3MN8EtY5wcxOFdGShOmGQPm2MJJVE6MG+
|
||||
p4RqHrukHZSgKOyWjkRk7t6NXzNcnHco9HFv7FQRAXSJ5zObmyu+TMZlu4jHHCav
|
||||
GMcV3C/4SUGtlipZbgNe00UAIm6tM3Wh8dr38W7VYg4KGAwXou5XhQ9gCAnSn90o
|
||||
H/42NqHTjJsR4v18izX2aO25ARQdMby7Lsr5j9RqweHywiSlPusFcKRseqOnIP0d
|
||||
JT3+qh78LeMbNBO2mYD3SP/zu0TAmkAVNcj2KPw0+a0kVZ15rvslPC/K3xn9msMk
|
||||
fQthv3rDAcsWvi9YO7T+vylgZBgJfn1ZqpQqy58xN96uh6nPOw==`;
|
||||
|
||||
function overrideCertDB() {
|
||||
// Unregister the real database.
|
||||
let registrar = Components.manager.QueryInterface(AM_Ci.nsIComponentRegistrar);
|
||||
let factory = registrar.getClassObject(CERTDB_CID, AM_Ci.nsIFactory);
|
||||
registrar.unregisterFactory(CERTDB_CID, factory);
|
||||
|
||||
// Get the real DB
|
||||
let realCertDB = factory.createInstance(null, AM_Ci.nsIX509CertDB);
|
||||
|
||||
let fakeCert = realCertDB.constructX509FromBase64(CERT.replace(/\n/g, ""));
|
||||
|
||||
let fakeCertDB = {
|
||||
openSignedAppFileAsync(root, file, callback) {
|
||||
callback.openSignedAppFileFinished(Components.results.NS_OK, null, fakeCert);
|
||||
},
|
||||
|
||||
verifySignedDirectoryAsync(root, dir, callback) {
|
||||
callback.verifySignedDirectoryFinished(Components.results.NS_OK, fakeCert);
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([AM_Ci.nsIX509CertDB])
|
||||
};
|
||||
|
||||
for (let property of Object.keys(realCertDB)) {
|
||||
if (property in fakeCertDB) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (typeof realCertDB[property] == "function") {
|
||||
fakeCertDB[property] = realCertDB[property].bind(realCertDB);
|
||||
}
|
||||
}
|
||||
|
||||
let certDBFactory = {
|
||||
createInstance: function(outer, iid) {
|
||||
if (outer != null) {
|
||||
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
||||
}
|
||||
return fakeCertDB.QueryInterface(iid);
|
||||
}
|
||||
};
|
||||
registrar.registerFactory(CERTDB_CID, "CertDB",
|
||||
CERTDB_CONTRACTID, certDBFactory);
|
||||
}
|
||||
|
||||
add_task(function*() {
|
||||
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
|
||||
startupManager();
|
||||
|
||||
// Once the application is started we shouldn't be able to replace the
|
||||
// certificate database
|
||||
overrideCertDB();
|
||||
|
||||
let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
|
||||
do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue