mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 10:18:38 +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,98 @@
|
|||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["UrlClassifierTestUtils"];
|
||||
|
||||
const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||
|
||||
const TRACKING_TABLE_NAME = "mochitest-track-simple";
|
||||
const TRACKING_TABLE_PREF = "urlclassifier.trackingTable";
|
||||
const WHITELIST_TABLE_NAME = "mochitest-trackwhite-simple";
|
||||
const WHITELIST_TABLE_PREF = "urlclassifier.trackingWhitelistTable";
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
this.UrlClassifierTestUtils = {
|
||||
|
||||
addTestTrackers() {
|
||||
// Add some URLs to the tracking databases
|
||||
let trackingURL1 = "tracking.example.com/";
|
||||
let trackingURL2 = "itisatracker.org/";
|
||||
let trackingURL3 = "trackertest.org/";
|
||||
let whitelistedURL = "itisatrap.org/?resource=itisatracker.org";
|
||||
|
||||
let trackingUpdate =
|
||||
"n:1000\ni:" + TRACKING_TABLE_NAME + "\nad:3\n" +
|
||||
"a:1:32:" + trackingURL1.length + "\n" +
|
||||
trackingURL1 + "\n" +
|
||||
"a:2:32:" + trackingURL2.length + "\n" +
|
||||
trackingURL2 + "\n" +
|
||||
"a:3:32:" + trackingURL3.length + "\n" +
|
||||
trackingURL3 + "\n";
|
||||
let whitelistUpdate =
|
||||
"n:1000\ni:" + WHITELIST_TABLE_NAME + "\nad:1\n" +
|
||||
"a:1:32:" + whitelistedURL.length + "\n" +
|
||||
whitelistedURL + "\n";
|
||||
|
||||
var tables = [
|
||||
{
|
||||
pref: TRACKING_TABLE_PREF,
|
||||
name: TRACKING_TABLE_NAME,
|
||||
update: trackingUpdate
|
||||
},
|
||||
{
|
||||
pref: WHITELIST_TABLE_PREF,
|
||||
name: WHITELIST_TABLE_NAME,
|
||||
update: whitelistUpdate
|
||||
}
|
||||
];
|
||||
|
||||
return this.useTestDatabase(tables);
|
||||
},
|
||||
|
||||
cleanupTestTrackers() {
|
||||
Services.prefs.clearUserPref(TRACKING_TABLE_PREF);
|
||||
Services.prefs.clearUserPref(WHITELIST_TABLE_PREF);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add some entries to a test tracking protection database, and resets
|
||||
* back to the default database after the test ends.
|
||||
*
|
||||
* @return {Promise}
|
||||
*/
|
||||
useTestDatabase(tables) {
|
||||
for (var table of tables) {
|
||||
Services.prefs.setCharPref(table.pref, table.name);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
let dbService = Cc["@mozilla.org/url-classifier/dbservice;1"].
|
||||
getService(Ci.nsIUrlClassifierDBService);
|
||||
let listener = {
|
||||
QueryInterface: iid => {
|
||||
if (iid.equals(Ci.nsISupports) ||
|
||||
iid.equals(Ci.nsIUrlClassifierUpdateObserver))
|
||||
return listener;
|
||||
|
||||
throw Cr.NS_ERROR_NO_INTERFACE;
|
||||
},
|
||||
updateUrlRequested: url => { },
|
||||
streamFinished: status => { },
|
||||
updateError: errorCode => {
|
||||
reject("Couldn't update classifier.");
|
||||
},
|
||||
updateSuccess: requestedTimeout => {
|
||||
resolve();
|
||||
}
|
||||
};
|
||||
|
||||
for (var table of tables) {
|
||||
dbService.beginUpdate(listener, table.name, "");
|
||||
dbService.beginStream("", "");
|
||||
dbService.updateStream(table.update);
|
||||
dbService.finishStream();
|
||||
dbService.finishUpdate();
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue