summaryrefslogtreecommitdiffstats
path: root/toolkit/components/url-classifier/tests/mochitest
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/url-classifier/tests/mochitest')
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/.eslintrc.js8
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/allowlistAnnotatedFrame.html144
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/bad.css1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/bad.css^headers^1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/basic.vtt27
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/basic.vtt^headers^1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/bug_1281083.html35
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/chrome.ini23
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedFrame.html213
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html24
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/classifierCommon.js112
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/classifierFrame.html57
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/classifierHelper.js201
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/cleanWorker.js10
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/dnt.html31
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/dnt.sjs9
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/evil.css1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/evil.css^headers^1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/evil.js1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/evil.js^headers^2
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/evilWorker.js3
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/gethash.sjs130
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/gethashFrame.html62
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/good.js1
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/import.css3
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/mochitest.ini39
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/ping.sjs16
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/raptor.jpgbin49629 -> 0 bytes
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/seek.webmbin215529 -> 0 bytes
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_allowlisted_annotations.html56
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_bug1254766.html305
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classified_annotations.html50
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classifier.html65
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classifier_changetablepref.html149
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html76
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classify_ping.html121
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_classify_track.html162
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_donottrack.html150
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_gethash.html157
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_lookup_system_principal.html29
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html154
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_safebrowsing_bug1272239.html87
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1157081.html107
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_whitelist.html153
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/track.html7
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js3
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/update.sjs114
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/vp9.webmbin97465 -> 0 bytes
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html15
-rw-r--r--toolkit/components/url-classifier/tests/mochitest/workerFrame.html65
50 files changed, 0 insertions, 3181 deletions
diff --git a/toolkit/components/url-classifier/tests/mochitest/.eslintrc.js b/toolkit/components/url-classifier/tests/mochitest/.eslintrc.js
deleted file mode 100644
index 58b3df4a7..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/.eslintrc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = {
- "extends": [
- "../../../../../testing/mochitest/mochitest.eslintrc.js",
- "../../../../../testing/mochitest/chrome.eslintrc.js"
- ]
-};
diff --git a/toolkit/components/url-classifier/tests/mochitest/allowlistAnnotatedFrame.html b/toolkit/components/url-classifier/tests/mochitest/allowlistAnnotatedFrame.html
deleted file mode 100644
index 9aae1b841..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/allowlistAnnotatedFrame.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-// Modified by evil.js
-var scriptItem;
-
-var scriptItem1 = "untouched";
-var imageItem1 = "untouched";
-var frameItem1 = "untouched";
-var scriptItem2 = "untouched";
-var imageItem2 = "untouched";
-var frameItem2 = "untouched";
-var xhrItem = "untouched";
-var fetchItem = "untouched";
-var mediaItem1 = "untouched";
-
-function checkLoads() {
- window.parent.is(scriptItem1, "spoiled", "Should not block tracking js 1");
- window.parent.is(scriptItem2, "spoiled", "Should not block tracking js 2");
- window.parent.is(imageItem1, "spoiled", "Should not block tracking img 1");
- window.parent.is(imageItem2, "spoiled", "Should not block tracking img 2");
- window.parent.is(frameItem1, "spoiled", "Should not block tracking iframe 1");
- window.parent.is(frameItem2, "spoiled", "Should not block tracking iframe 2");
- window.parent.is(mediaItem1, "loaded", "Should not block tracking video");
- window.parent.is(xhrItem, "loaded", "Should not block tracking XHR");
- window.parent.is(fetchItem, "loaded", "Should not block fetches from tracking domains");
- window.parent.is(window.document.blockedTrackingNodeCount, 0,
- "No elements should be blocked");
-
- // End (parent) test.
- window.parent.clearPermissions();
- window.parent.SimpleTest.finish();
-}
-
-var onloadCalled = false;
-var xhrFinished = false;
-var fetchFinished = false;
-var videoLoaded = false;
-function loaded(type) {
- if (type === "onload") {
- onloadCalled = true;
- } else if (type === "xhr") {
- xhrFinished = true;
- } else if (type === "fetch") {
- fetchFinished = true;
- } else if (type === "video") {
- videoLoaded = true;
- }
-
- if (onloadCalled && xhrFinished && fetchFinished && videoLoaded) {
- checkLoads();
- }
-}
-</script>
-
-</head>
-
-<body onload="loaded('onload')">
-
-<!-- Try loading from a tracking script URI (1) -->
-<script id="badscript1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js" onload="scriptItem1 = 'spoiled';"></script>
-
-<!-- Try loading from a tracking image URI (1) -->
-<img id="badimage1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/raptor.jpg" onload="imageItem1 = 'spoiled';"/>
-
-<!-- Try loading from a tracking frame URI (1) -->
-<iframe id="badframe1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/track.html" onload="frameItem1 = 'spoiled';"></iframe>
-
-<!-- Try loading from a tracking video URI -->
-<video id="badmedia1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/vp9.webm"></video>
-
-<script>
-var v = document.getElementById("badmedia1");
-v.addEventListener("loadedmetadata", function() {
- mediaItem1 = "loaded";
- loaded("video");
-}, true);
-v.addEventListener("error", function() {
- mediaItem1 = "error";
- loaded("video");
-}, true);
-
-// Try loading from a tracking script URI (2) - The loader may follow a
-// different path depending on whether the resource is loaded from JS or HTML.
-var newScript = document.createElement("script");
-newScript.id = "badscript2";
-newScript.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js";
-newScript.addEventListener("load", function onload() {scriptItem2 = 'spoiled';});
-document.body.appendChild(newScript);
-
-/// Try loading from a tracking image URI (2)
-var newImage = document.createElement("img");
-newImage.id = "badimage2";
-newImage.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/raptor.jpg";
-newImage.addEventListener("load", function onload() {imageItem2 = 'spoiled'});
-document.body.appendChild(newImage);
-
-// Try loading from a tracking iframe URI (2)
-var newFrame = document.createElement("iframe");
-newFrame.id = "badframe2";
-newFrame.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/track.html"
-newFrame.addEventListener("load", function onload() {frameItem2 = 'spoiled'});
-document.body.appendChild(newFrame);
-
-// Try doing an XHR against a tracking domain (bug 1216793)
-function reqListener() {
- xhrItem = "loaded";
- loaded("xhr");
-}
-function transferFailed() {
- xhrItem = "failed";
- loaded("xhr");
-}
-function transferCanceled() {
- xhrItem = "canceled";
- loaded("xhr");
-}
-var oReq = new XMLHttpRequest();
-oReq.addEventListener("load", reqListener);
-oReq.addEventListener("error", transferFailed);
-oReq.addEventListener("abort", transferCanceled);
-oReq.open("GET", "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js");
-oReq.send();
-
-// Fetch from a tracking domain
-fetch("http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js").then(function(response) {
- if(response.ok) {
- fetchItem = "loaded";
- loaded("fetch");
- } else {
- fetchItem = "badresponse";
- loaded("fetch");
- }
- }).catch(function(error) {
- fetchItem = "error";
- loaded("fetch");
-});
-</script>
-</body>
-</html>
-
diff --git a/toolkit/components/url-classifier/tests/mochitest/bad.css b/toolkit/components/url-classifier/tests/mochitest/bad.css
deleted file mode 100644
index f57b36a77..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/bad.css
+++ /dev/null
@@ -1 +0,0 @@
-#styleBad { visibility: hidden; }
diff --git a/toolkit/components/url-classifier/tests/mochitest/bad.css^headers^ b/toolkit/components/url-classifier/tests/mochitest/bad.css^headers^
deleted file mode 100644
index 4030ea1d3..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/bad.css^headers^
+++ /dev/null
@@ -1 +0,0 @@
-Cache-Control: no-store
diff --git a/toolkit/components/url-classifier/tests/mochitest/basic.vtt b/toolkit/components/url-classifier/tests/mochitest/basic.vtt
deleted file mode 100644
index 7781790d0..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/basic.vtt
+++ /dev/null
@@ -1,27 +0,0 @@
-WEBVTT
-Region: id=testOne lines=2 width=30%
-Region: id=testTwo lines=4 width=20%
-
-1
-00:00.500 --> 00:00.700 region:testOne
-This
-
-2
-00:01.200 --> 00:02.400 region:testTwo
-Is
-
-2.5
-00:02.000 --> 00:03.500 region:testOne
-(Over here?!)
-
-3
-00:02.710 --> 00:02.910
-A
-
-4
-00:03.217 --> 00:03.989
-Test
-
-5
-00:03.217 --> 00:03.989
-And more!
diff --git a/toolkit/components/url-classifier/tests/mochitest/basic.vtt^headers^ b/toolkit/components/url-classifier/tests/mochitest/basic.vtt^headers^
deleted file mode 100644
index 23de552c1..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/basic.vtt^headers^
+++ /dev/null
@@ -1 +0,0 @@
-Access-Control-Allow-Origin: * \ No newline at end of file
diff --git a/toolkit/components/url-classifier/tests/mochitest/bug_1281083.html b/toolkit/components/url-classifier/tests/mochitest/bug_1281083.html
deleted file mode 100644
index cd5770177..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/bug_1281083.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-var scriptItem = "untouched";
-
-function checkLoads() {
- // Make sure the javascript did not load.
- window.parent.is(scriptItem, "untouched", "Should not load bad javascript");
-
- // Call parent.loadTestFrame again to test classification metadata in HTTP
- // cache entries.
- if (window.parent.firstLoad) {
- window.parent.info("Reloading from cache...");
- window.parent.firstLoad = false;
- window.parent.loadTestFrame();
- return;
- }
-
- // End (parent) test.
- window.parent.SimpleTest.finish();
-}
-
-</script>
-
-<!-- Try loading from a malware javascript URI -->
-<script type="text/javascript" src="http://bug1281083.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js"></script>
-
-</head>
-
-<body onload="checkLoads()">
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/chrome.ini b/toolkit/components/url-classifier/tests/mochitest/chrome.ini
deleted file mode 100644
index 1652e7421..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/chrome.ini
+++ /dev/null
@@ -1,23 +0,0 @@
-[DEFAULT]
-skip-if = os == 'android'
-support-files =
- allowlistAnnotatedFrame.html
- classifiedAnnotatedFrame.html
- classifiedAnnotatedPBFrame.html
- bug_1281083.html
-
-[test_lookup_system_principal.html]
-[test_classified_annotations.html]
-tags = trackingprotection
-skip-if = os == 'linux' && asan # Bug 1202548
-[test_allowlisted_annotations.html]
-tags = trackingprotection
-[test_privatebrowsing_trackingprotection.html]
-tags = trackingprotection
-[test_trackingprotection_bug1157081.html]
-tags = trackingprotection
-[test_trackingprotection_whitelist.html]
-tags = trackingprotection
-[test_safebrowsing_bug1272239.html]
-[test_donottrack.html]
-[test_classifier_changetablepref.html]
diff --git a/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedFrame.html b/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedFrame.html
deleted file mode 100644
index 8aab13dd3..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedFrame.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-"use strict";
-
-var scriptItem = "untouched";
-var scriptItem1 = "untouched";
-var scriptItem2 = "untouched";
-var imageItem1 = "untouched";
-var imageItem2 = "untouched";
-var frameItem1 = "untouched";
-var frameItem2 = "untouched";
-var xhrItem = "untouched";
-var fetchItem = "untouched";
-var mediaItem1 = "untouched";
-
-var badids = [
- "badscript1",
- "badscript2",
- "badimage1",
- "badimage2",
- "badframe1",
- "badframe2",
- "badmedia1",
- "badcss"
-];
-
-function checkLoads() {
- window.parent.is(
- scriptItem1, "untouched", "Should not load tracking javascript");
- window.parent.is(
- scriptItem2, "untouched", "Should not load tracking javascript (2)");
-
- window.parent.is(
- imageItem1, "untouched", "Should not load tracking images");
- window.parent.is(
- imageItem2, "untouched", "Should not load tracking images (2)");
-
- window.parent.is(
- frameItem1, "untouched", "Should not load tracking iframes");
- window.parent.is(
- frameItem2, "untouched", "Should not load tracking iframes (2)");
- window.parent.is(
- mediaItem1, "error", "Should not load tracking videos");
- window.parent.is(
- xhrItem, "failed", "Should not load tracking XHRs");
- window.parent.is(
- fetchItem, "error", "Should not fetch from tracking URLs");
-
- var elt = document.getElementById("styleCheck");
- var style = document.defaultView.getComputedStyle(elt, "");
- window.parent.isnot(
- style.visibility, "hidden", "Should not load tracking css");
-
- window.parent.is(window.document.blockedTrackingNodeCount, badids.length,
- "Should identify all tracking elements");
-
- var blockedTrackingNodes = window.document.blockedTrackingNodes;
-
- // Make sure that every node in blockedTrackingNodes exists in the tree
- // (that may not always be the case but do not expect any nodes to disappear
- // from the tree here)
- var allNodeMatch = true;
- for (var i = 0; i < blockedTrackingNodes.length; i++) {
- var nodeMatch = false;
- for (var j = 0; j < badids.length && !nodeMatch; j++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == document.getElementById(badids[j]));
- }
-
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- window.parent.ok(allNodeMatch,
- "All annotated nodes are expected in the tree");
-
- // Make sure that every node with a badid (see badids) is found in the
- // blockedTrackingNodes. This tells us if we are neglecting to annotate
- // some nodes
- allNodeMatch = true;
- for (var j = 0; j < badids.length; j++) {
- var nodeMatch = false;
- for (var i = 0; i < blockedTrackingNodes.length && !nodeMatch; i++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == document.getElementById(badids[j]));
- }
-
- if (!nodeMatch) {
- console.log(badids[j] + " was not found in blockedTrackingNodes");
- }
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- window.parent.ok(allNodeMatch,
- "All tracking nodes are expected to be annotated as such");
-
- // Unset prefs, etc.
- window.parent.cleanup();
- // End (parent) test.
- window.parent.SimpleTest.finish();
-}
-
-var onloadCalled = false;
-var xhrFinished = false;
-var fetchFinished = false;
-var videoLoaded = false;
-function loaded(type) {
- if (type === "onload") {
- onloadCalled = true;
- } else if (type === "xhr") {
- xhrFinished = true;
- } else if (type === "fetch") {
- fetchFinished = true;
- } else if (type === "video") {
- videoLoaded = true;
- }
- if (onloadCalled && xhrFinished && fetchFinished && videoLoaded) {
- checkLoads();
- }
-}
-</script>
-
-<!-- Try loading from a tracking CSS URI -->
-<link id="badcss" rel="stylesheet" type="text/css" href="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.css"></link>
-
-</head>
-
-<body onload="loaded('onload')">
-
-<!-- Try loading from a tracking script URI (1): evil.js onload will have updated the scriptItem variable -->
-<script id="badscript1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js" onload="scriptItem1 = scriptItem;"></script>
-
-<!-- Try loading from a tracking image URI (1) -->
-<img id="badimage1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/raptor.jpg?reload=true" onload="imageItem1 = 'spoiled';"/>
-
-<!-- Try loading from a tracking frame URI (1) -->
-<iframe id="badframe1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/track.html" onload="frameItem1 = 'spoiled';"></iframe>
-
-<!-- Try loading from a tracking video URI -->
-<video id="badmedia1" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/vp9.webm?reload=true"></video>
-
-<script>
-var v = document.getElementById("badmedia1");
-v.addEventListener("loadedmetadata", function() {
- mediaItem1 = "loaded";
- loaded("video");
-}, true);
-v.addEventListener("error", function() {
- mediaItem1 = "error";
- loaded("video");
-}, true);
-
-// Try loading from a tracking script URI (2) - The loader may follow a different path depending on whether the resource is loaded from JS or HTML.
-var newScript = document.createElement("script");
-newScript.id = "badscript2";
-newScript.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js";
-newScript.addEventListener("load", function() {scriptItem2 = scriptItem;});
-document.body.appendChild(newScript);
-
-/// Try loading from a tracking image URI (2)
-var newImage = document.createElement("img");
-newImage.id = "badimage2";
-newImage.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/raptor.jpg?reload=true";
-newImage.addEventListener("load", function() {imageItem2 = 'spoiled'});
-document.body.appendChild(newImage);
-
-// Try loading from a tracking iframe URI (2)
-var newFrame = document.createElement("iframe");
-newFrame.id = "badframe2";
-newFrame.src = "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/track.html"
-newFrame.addEventListener("load", function() {frameItem2 = 'spoiled'});
-document.body.appendChild(newFrame);
-
-// Try doing an XHR against a tracking domain (bug 1216793)
-function reqListener() {
- xhrItem = "loaded";
- loaded("xhr");
-}
-function transferFailed() {
- xhrItem = "failed";
- loaded("xhr");
-}
-function transferCanceled() {
- xhrItem = "canceled";
- loaded("xhr");
-}
-var oReq = new XMLHttpRequest();
-oReq.addEventListener("load", reqListener);
-oReq.addEventListener("error", transferFailed);
-oReq.addEventListener("abort", transferCanceled);
-oReq.open("GET", "http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js");
-oReq.send();
-
-// Fetch from a tracking domain
-fetch("http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js").then(function(response) {
- if(response.ok) {
- fetchItem = "loaded";
- loaded("fetch");
- } else {
- fetchItem = "badresponse";
- loaded("fetch");
- }
- }).catch(function(error) {
- fetchItem = "error";
- loaded("fetch");
-});
-</script>
-
-The following should not be hidden:
-<div id="styleCheck">STYLE TEST</div>
-
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html b/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html
deleted file mode 100644
index f11ec1de3..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
-<title></title>
-
-<link id="badcss" rel="stylesheet" type="text/css" href="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.css"></link>
-
-</head>
-<body>
-
-<script id="badscript" data-touched="not sure" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js" onload="this.dataset.touched = 'yes';" onerror="this.dataset.touched = 'no';"></script>
-
-<script id="goodscript" data-touched="not sure" src="http://itisatracker.org/tests/toolkit/components/url-classifier/tests/mochitest/good.js" onload="this.dataset.touched = 'yes';" onerror="this.dataset.touched = 'no';"></script>
-
-<!-- The image cache can cache JS handlers, so make sure we use a different URL for raptor.jpg each time -->
-<img id="badimage" data-touched="not sure" src="http://tracking.example.com/tests/toolkit/components/url-classifier/tests/mochitest/raptor.jpg?pbmode=test" onload="this.dataset.touched = 'yes';" onerror="this.dataset.touched = 'no';"/>
-
-The following should not be hidden:
-<div id="styleCheck">STYLE TEST</div>
-
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/classifierCommon.js b/toolkit/components/url-classifier/tests/mochitest/classifierCommon.js
deleted file mode 100644
index 49bda38db..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/classifierCommon.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const { classes: Cc, interfaces: Ci, results: Cr } = Components;
-
-var dbService = Cc["@mozilla.org/url-classifier/dbservice;1"]
- .getService(Ci.nsIUrlClassifierDBService);
-
-var timer;
-function setTimeout(callback, delay) {
- timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
- timer.initWithCallback({ notify: callback },
- delay,
- Ci.nsITimer.TYPE_ONE_SHOT);
-}
-
-function doUpdate(update) {
- let listener = {
- QueryInterface: function(iid)
- {
- if (iid.equals(Ci.nsISupports) ||
- iid.equals(Ci.nsIUrlClassifierUpdateObserver))
- return this;
-
- throw Cr.NS_ERROR_NO_INTERFACE;
- },
- updateUrlRequested: function(url) { },
- streamFinished: function(status) { },
- updateError: function(errorCode) {
- sendAsyncMessage("updateError", errorCode);
- },
- updateSuccess: function(requestedTimeout) {
- sendAsyncMessage("updateSuccess");
- }
- };
-
- let dbService = Cc["@mozilla.org/url-classifier/dbservice;1"]
- .getService(Ci.nsIUrlClassifierDBService);
-
- try {
- dbService.beginUpdate(listener, "test-malware-simple,test-unwanted-simple", "");
- dbService.beginStream("", "");
- dbService.updateStream(update);
- dbService.finishStream();
- dbService.finishUpdate();
- } catch(e) {
- // beginUpdate may fail if there's an existing update in progress
- // retry until success or testcase timeout.
- setTimeout(() => { doUpdate(update); }, 1000);
- }
-}
-
-function doReload() {
- dbService.reloadDatabase();
-
- sendAsyncMessage("reloadSuccess");
-}
-
-// SafeBrowsing.jsm is initialized after mozEntries are added. Add observer
-// to receive "finished" event. For the case when this function is called
-// after the event had already been notified, we lookup entries to see if
-// they are already added to database.
-function waitForInit() {
- let observerService = Cc["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
-
- observerService.addObserver(function() {
- sendAsyncMessage("safeBrowsingInited");
- }, "mozentries-update-finished", false);
-
- // This url must sync with the table, url in SafeBrowsing.jsm addMozEntries
- const table = "test-phish-simple";
- const url = "http://itisatrap.org/firefox/its-a-trap.html";
-
- let secMan = Cc["@mozilla.org/scriptsecuritymanager;1"]
- .getService(Ci.nsIScriptSecurityManager);
- let iosvc = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
-
- let principal = secMan.createCodebasePrincipal(
- iosvc.newURI(url, null, null), {});
-
- let listener = {
- QueryInterface: function(iid)
- {
- if (iid.equals(Ci.nsISupports) ||
- iid.equals(Ci.nsIUrlClassifierUpdateObserver))
- return this;
- throw Cr.NS_ERROR_NO_INTERFACE;
- },
-
- handleEvent: function(value)
- {
- if (value === table) {
- sendAsyncMessage("safeBrowsingInited");
- }
- },
- };
- dbService.lookup(principal, table, listener);
-}
-
-addMessageListener("doUpdate", ({ testUpdate }) => {
- doUpdate(testUpdate);
-});
-
-addMessageListener("doReload", () => {
- doReload();
-});
-
-addMessageListener("waitForInit", () => {
- waitForInit();
-});
diff --git a/toolkit/components/url-classifier/tests/mochitest/classifierFrame.html b/toolkit/components/url-classifier/tests/mochitest/classifierFrame.html
deleted file mode 100644
index c7923f448..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/classifierFrame.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-var scriptItem = "untouched";
-
-function checkLoads() {
- // Make sure the javascript did not load.
- window.parent.is(scriptItem, "untouched", "Should not load bad javascript");
-
- // Make sure the css did not load.
- var elt = document.getElementById("styleCheck");
- var style = document.defaultView.getComputedStyle(elt, "");
- window.parent.isnot(style.visibility, "hidden", "Should not load bad css");
-
- elt = document.getElementById("styleBad");
- style = document.defaultView.getComputedStyle(elt, "");
- window.parent.isnot(style.visibility, "hidden", "Should not load bad css");
-
- elt = document.getElementById("styleImport");
- style = document.defaultView.getComputedStyle(elt, "");
- window.parent.isnot(style.visibility, "visible", "Should import clean css");
-
- // Call parent.loadTestFrame again to test classification metadata in HTTP
- // cache entries.
- if (window.parent.firstLoad) {
- window.parent.info("Reloading from cache...");
- window.parent.firstLoad = false;
- window.parent.loadTestFrame();
- return;
- }
-
- // End (parent) test.
- window.parent.SimpleTest.finish();
-}
-
-</script>
-
-<!-- Try loading from a malware javascript URI -->
-<script type="text/javascript" src="http://malware.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js"></script>
-
-<!-- Try loading from an uwanted software css URI -->
-<link rel="stylesheet" type="text/css" href="http://unwanted.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.css"></link>
-
-<!-- Try loading a marked-as-malware css through an @import from a clean URI -->
-<link rel="stylesheet" type="text/css" href="import.css"></link>
-</head>
-
-<body onload="checkLoads()">
-The following should not be hidden:
-<div id="styleCheck">STYLE TEST</div>
-<div id="styleBad">STYLE BAD</div>
-<div id="styleImport">STYLE IMPORT</div>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/classifierHelper.js b/toolkit/components/url-classifier/tests/mochitest/classifierHelper.js
deleted file mode 100644
index 973f0c2c4..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/classifierHelper.js
+++ /dev/null
@@ -1,201 +0,0 @@
-if (typeof(classifierHelper) == "undefined") {
- var classifierHelper = {};
-}
-
-const CLASSIFIER_COMMON_URL = SimpleTest.getTestFileURL("classifierCommon.js");
-var gScript = SpecialPowers.loadChromeScript(CLASSIFIER_COMMON_URL);
-
-const ADD_CHUNKNUM = 524;
-const SUB_CHUNKNUM = 523;
-const HASHLEN = 32;
-
-const PREFS = {
- PROVIDER_LISTS : "browser.safebrowsing.provider.mozilla.lists",
- DISALLOW_COMPLETIONS : "urlclassifier.disallow_completions",
- PROVIDER_GETHASHURL : "browser.safebrowsing.provider.mozilla.gethashURL"
-};
-
-// addUrlToDB & removeUrlFromDB are asynchronous, queue the task to ensure
-// the callback follow correct order.
-classifierHelper._updates = [];
-
-// Keep urls added to database, those urls should be automatically
-// removed after test complete.
-classifierHelper._updatesToCleanup = [];
-
-classifierHelper._initsCB = [];
-
-// This function return a Promise, promise is resolved when SafeBrowsing.jsm
-// is initialized.
-classifierHelper.waitForInit = function() {
- return new Promise(function(resolve, reject) {
- classifierHelper._initsCB.push(resolve);
- gScript.sendAsyncMessage("waitForInit");
- });
-}
-
-// This function is used to allow completion for specific "list",
-// some lists like "test-malware-simple" is default disabled to ask for complete.
-// "list" is the db we would like to allow it
-// "url" is the completion server
-classifierHelper.allowCompletion = function(lists, url) {
- for (var list of lists) {
- // Add test db to provider
- var pref = SpecialPowers.getCharPref(PREFS.PROVIDER_LISTS);
- pref += "," + list;
- SpecialPowers.setCharPref(PREFS.PROVIDER_LISTS, pref);
-
- // Rename test db so we will not disallow it from completions
- pref = SpecialPowers.getCharPref(PREFS.DISALLOW_COMPLETIONS);
- pref = pref.replace(list, list + "-backup");
- SpecialPowers.setCharPref(PREFS.DISALLOW_COMPLETIONS, pref);
- }
-
- // Set get hash url
- SpecialPowers.setCharPref(PREFS.PROVIDER_GETHASHURL, url);
-}
-
-// Pass { url: ..., db: ... } to add url to database,
-// onsuccess/onerror will be called when update complete.
-classifierHelper.addUrlToDB = function(updateData) {
- return new Promise(function(resolve, reject) {
- var testUpdate = "";
- for (var update of updateData) {
- var LISTNAME = update.db;
- var CHUNKDATA = update.url;
- var CHUNKLEN = CHUNKDATA.length;
- var HASHLEN = update.len ? update.len : 32;
-
- classifierHelper._updatesToCleanup.push(update);
- testUpdate +=
- "n:1000\n" +
- "i:" + LISTNAME + "\n" +
- "ad:1\n" +
- "a:" + ADD_CHUNKNUM + ":" + HASHLEN + ":" + CHUNKLEN + "\n" +
- CHUNKDATA;
- }
-
- classifierHelper._update(testUpdate, resolve, reject);
- });
-}
-
-// Pass { url: ..., db: ... } to remove url from database,
-// onsuccess/onerror will be called when update complete.
-classifierHelper.removeUrlFromDB = function(updateData) {
- return new Promise(function(resolve, reject) {
- var testUpdate = "";
- for (var update of updateData) {
- var LISTNAME = update.db;
- var CHUNKDATA = ADD_CHUNKNUM + ":" + update.url;
- var CHUNKLEN = CHUNKDATA.length;
- var HASHLEN = update.len ? update.len : 32;
-
- testUpdate +=
- "n:1000\n" +
- "i:" + LISTNAME + "\n" +
- "s:" + SUB_CHUNKNUM + ":" + HASHLEN + ":" + CHUNKLEN + "\n" +
- CHUNKDATA;
- }
-
- classifierHelper._updatesToCleanup =
- classifierHelper._updatesToCleanup.filter((v) => {
- return updateData.indexOf(v) == -1;
- });
-
- classifierHelper._update(testUpdate, resolve, reject);
- });
-};
-
-// This API is used to expire all add/sub chunks we have updated
-// by using addUrlToDB and removeUrlFromDB.
-classifierHelper.resetDB = function() {
- return new Promise(function(resolve, reject) {
- var testUpdate = "";
- for (var update of classifierHelper._updatesToCleanup) {
- if (testUpdate.includes(update.db))
- continue;
-
- testUpdate +=
- "n:1000\n" +
- "i:" + update.db + "\n" +
- "ad:" + ADD_CHUNKNUM + "\n" +
- "sd:" + SUB_CHUNKNUM + "\n"
- }
-
- classifierHelper._update(testUpdate, resolve, reject);
- });
-};
-
-classifierHelper.reloadDatabase = function() {
- return new Promise(function(resolve, reject) {
- gScript.addMessageListener("reloadSuccess", function handler() {
- gScript.removeMessageListener('reloadSuccess', handler);
- resolve();
- });
-
- gScript.sendAsyncMessage("doReload");
- });
-}
-
-classifierHelper._update = function(testUpdate, onsuccess, onerror) {
- // Queue the task if there is still an on-going update
- classifierHelper._updates.push({"data": testUpdate,
- "onsuccess": onsuccess,
- "onerror": onerror});
- if (classifierHelper._updates.length != 1) {
- return;
- }
-
- gScript.sendAsyncMessage("doUpdate", { testUpdate });
-};
-
-classifierHelper._updateSuccess = function() {
- var update = classifierHelper._updates.shift();
- update.onsuccess();
-
- if (classifierHelper._updates.length) {
- var testUpdate = classifierHelper._updates[0].data;
- gScript.sendAsyncMessage("doUpdate", { testUpdate });
- }
-};
-
-classifierHelper._updateError = function(errorCode) {
- var update = classifierHelper._updates.shift();
- update.onerror(errorCode);
-
- if (classifierHelper._updates.length) {
- var testUpdate = classifierHelper._updates[0].data;
- gScript.sendAsyncMessage("doUpdate", { testUpdate });
- }
-};
-
-classifierHelper._inited = function() {
- classifierHelper._initsCB.forEach(function (cb) {
- cb();
- });
- classifierHelper._initsCB = [];
-};
-
-classifierHelper._setup = function() {
- gScript.addMessageListener("updateSuccess", classifierHelper._updateSuccess);
- gScript.addMessageListener("updateError", classifierHelper._updateError);
- gScript.addMessageListener("safeBrowsingInited", classifierHelper._inited);
-
- // cleanup will be called at end of each testcase to remove all the urls added to database.
- SimpleTest.registerCleanupFunction(classifierHelper._cleanup);
-};
-
-classifierHelper._cleanup = function() {
- // clean all the preferences may touch by helper
- for (var pref in PREFS) {
- SpecialPowers.clearUserPref(pref);
- }
-
- if (!classifierHelper._updatesToCleanup) {
- return Promise.resolve();
- }
-
- return classifierHelper.resetDB();
-};
-
-classifierHelper._setup();
diff --git a/toolkit/components/url-classifier/tests/mochitest/cleanWorker.js b/toolkit/components/url-classifier/tests/mochitest/cleanWorker.js
deleted file mode 100644
index 685648373..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/cleanWorker.js
+++ /dev/null
@@ -1,10 +0,0 @@
-onmessage = function() {
- try {
- importScripts("evilWorker.js");
- } catch(ex) {
- postMessage("success");
- return;
- }
-
- postMessage("failure");
-};
diff --git a/toolkit/components/url-classifier/tests/mochitest/dnt.html b/toolkit/components/url-classifier/tests/mochitest/dnt.html
deleted file mode 100644
index effc3a4f8..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/dnt.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-function makeXHR(url, callback) {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url, true);
- xhr.onload = function() {
- callback(xhr.response);
- };
- xhr.send();
-}
-
-function loaded(type) {
- window.parent.postMessage("navigator.doNotTrack=" + navigator.doNotTrack, "*");
-
- makeXHR("dnt.sjs", (res) => {
- window.parent.postMessage("DNT=" + res, "*");
- window.parent.postMessage("finish", "*");
- });
-}
-
-</script>
-</head>
-
-<body onload="loaded('onload')">
-</body>
-
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/dnt.sjs b/toolkit/components/url-classifier/tests/mochitest/dnt.sjs
deleted file mode 100644
index bbb836482..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/dnt.sjs
+++ /dev/null
@@ -1,9 +0,0 @@
-function handleRequest(request, response) {
- var dnt = "unspecified";
- if (request.hasHeader("DNT")) {
- dnt = "1";
- }
-
- response.setHeader("Content-Type", "text/plain", false);
- response.write(dnt);
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/evil.css b/toolkit/components/url-classifier/tests/mochitest/evil.css
deleted file mode 100644
index f6f08d7c5..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/evil.css
+++ /dev/null
@@ -1 +0,0 @@
-#styleCheck { visibility: hidden; } \ No newline at end of file
diff --git a/toolkit/components/url-classifier/tests/mochitest/evil.css^headers^ b/toolkit/components/url-classifier/tests/mochitest/evil.css^headers^
deleted file mode 100644
index 4030ea1d3..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/evil.css^headers^
+++ /dev/null
@@ -1 +0,0 @@
-Cache-Control: no-store
diff --git a/toolkit/components/url-classifier/tests/mochitest/evil.js b/toolkit/components/url-classifier/tests/mochitest/evil.js
deleted file mode 100644
index 27f2e8c43..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/evil.js
+++ /dev/null
@@ -1 +0,0 @@
-scriptItem = "loaded malware javascript!";
diff --git a/toolkit/components/url-classifier/tests/mochitest/evil.js^headers^ b/toolkit/components/url-classifier/tests/mochitest/evil.js^headers^
deleted file mode 100644
index 3eced9614..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/evil.js^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-Access-Control-Allow-Origin: *
-Cache-Control: no-store
diff --git a/toolkit/components/url-classifier/tests/mochitest/evilWorker.js b/toolkit/components/url-classifier/tests/mochitest/evilWorker.js
deleted file mode 100644
index ac34977d7..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/evilWorker.js
+++ /dev/null
@@ -1,3 +0,0 @@
-onmessage = function() {
- postMessage("loaded bad file");
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/gethash.sjs b/toolkit/components/url-classifier/tests/mochitest/gethash.sjs
deleted file mode 100644
index 9dcc6e0d5..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/gethash.sjs
+++ /dev/null
@@ -1,130 +0,0 @@
-const CC = Components.Constructor;
-const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
- "nsIBinaryInputStream",
- "setInputStream");
-
-function handleRequest(request, response)
-{
- var query = {};
- request.queryString.split('&').forEach(function (val) {
- var idx = val.indexOf('=');
- query[val.slice(0, idx)] = unescape(val.slice(idx + 1));
- });
-
- var responseBody;
-
- // Store fullhash in the server side.
- if ("list" in query && "fullhash" in query) {
- // In the server side we will store:
- // 1. All the full hashes for a given list
- // 2. All the lists we have right now
- // data is separate by '\n'
- let list = query["list"];
- let hashes = getState(list);
-
- let hash = base64ToString(query["fullhash"]);
- hashes += hash + "\n";
- setState(list, hashes);
-
- let lists = getState("lists");
- if (lists.indexOf(list) == -1) {
- lists += list + "\n";
- setState("lists", lists);
- }
-
- return;
- // gethash count return how many gethash request received.
- // This is used by client to know if a gethash request is triggered by gecko
- } else if ("gethashcount" == request.queryString) {
- var counter = getState("counter");
- responseBody = counter == "" ? "0" : counter;
- } else {
- var body = new BinaryInputStream(request.bodyInputStream);
- var avail;
- var bytes = [];
-
- while ((avail = body.available()) > 0) {
- Array.prototype.push.apply(bytes, body.readByteArray(avail));
- }
-
- var counter = getState("counter");
- counter = counter == "" ? "1" : (parseInt(counter) + 1).toString();
- setState("counter", counter);
-
- responseBody = parseV2Request(bytes);
- }
-
- response.setHeader("Content-Type", "text/plain", false);
- response.write(responseBody);
-
-}
-
-function parseV2Request(bytes) {
- var request = String.fromCharCode.apply(this, bytes);
- var [HEADER, PREFIXES] = request.split("\n");
- var [PREFIXSIZE, LENGTH] = HEADER.split(":").map(val => {
- return parseInt(val);
- });
-
- var ret = "";
- for(var start = 0; start < LENGTH; start += PREFIXSIZE) {
- getState("lists").split("\n").forEach(function(list) {
- var completions = getState(list).split("\n");
-
- for (var completion of completions) {
- if (completion.indexOf(PREFIXES.substr(start, PREFIXSIZE)) == 0) {
- ret += list + ":" + "1" + ":" + "32" + "\n";
- ret += completion;
- }
- }
- });
- }
-
- return ret;
-}
-
-/* Convert Base64 data to a string */
-const toBinaryTable = [
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
- 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
- -1, 0, 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,-1, -1,-1,-1,-1,
- -1,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,-1, -1,-1,-1,-1
-];
-const base64Pad = '=';
-
-function base64ToString(data) {
- var result = '';
- var leftbits = 0; // number of bits decoded, but yet to be appended
- var leftdata = 0; // bits decoded, but yet to be appended
-
- // Convert one by one.
- for (var i = 0; i < data.length; i++) {
- var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
- var padding = (data[i] == base64Pad);
- // Skip illegal characters and whitespace
- if (c == -1) continue;
-
- // Collect data into leftdata, update bitcount
- leftdata = (leftdata << 6) | c;
- leftbits += 6;
-
- // If we have 8 or more bits, append 8 bits to the result
- if (leftbits >= 8) {
- leftbits -= 8;
- // Append if not padding.
- if (!padding)
- result += String.fromCharCode((leftdata >> leftbits) & 0xff);
- leftdata &= (1 << leftbits) - 1;
- }
- }
-
- // If there are any bits left, the base64 string was corrupted
- if (leftbits)
- throw Components.Exception('Corrupted base64 string');
-
- return result;
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/gethashFrame.html b/toolkit/components/url-classifier/tests/mochitest/gethashFrame.html
deleted file mode 100644
index 560ddcde6..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/gethashFrame.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-var scriptItem = "untouched";
-
-function checkLoads() {
-
- var title = document.getElementById("title");
- title.innerHTML = window.parent.shouldLoad ?
- "The following should be hidden:" :
- "The following should not be hidden:"
-
- if (window.parent.shouldLoad) {
- window.parent.is(scriptItem, "loaded malware javascript!", "Should load bad javascript");
- } else {
- window.parent.is(scriptItem, "untouched", "Should not load bad javascript");
- }
-
- var elt = document.getElementById("styleImport");
- var style = document.defaultView.getComputedStyle(elt, "");
- window.parent.isnot(style.visibility, "visible", "Should load clean css");
-
- // Make sure the css did not load.
- elt = document.getElementById("styleCheck");
- style = document.defaultView.getComputedStyle(elt, "");
- if (window.parent.shouldLoad) {
- window.parent.isnot(style.visibility, "visible", "Should load bad css");
- } else {
- window.parent.isnot(style.visibility, "hidden", "Should not load bad css");
- }
-
- elt = document.getElementById("styleBad");
- style = document.defaultView.getComputedStyle(elt, "");
- if (window.parent.shouldLoad) {
- window.parent.isnot(style.visibility, "visible", "Should import bad css");
- } else {
- window.parent.isnot(style.visibility, "hidden", "Should not import bad css");
- }
-}
-
-</script>
-
-<!-- Try loading from a malware javascript URI -->
-<script type="text/javascript" src="http://malware.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.js"></script>
-
-<!-- Try loading from an uwanted software css URI -->
-<link rel="stylesheet" type="text/css" href="http://unwanted.example.com/tests/toolkit/components/url-classifier/tests/mochitest/evil.css"></link>
-
-<!-- Try loading a marked-as-malware css through an @import from a clean URI -->
-<link rel="stylesheet" type="text/css" href="import.css"></link>
-</head>
-
-<body onload="checkLoads()">
-<div id="title"></div>
-<div id="styleCheck">STYLE EVIL</div>
-<div id="styleBad">STYLE BAD</div>
-<div id="styleImport">STYLE IMPORT</div>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/good.js b/toolkit/components/url-classifier/tests/mochitest/good.js
deleted file mode 100644
index 015b9fe52..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/good.js
+++ /dev/null
@@ -1 +0,0 @@
-scriptItem = "loaded whitelisted javascript!";
diff --git a/toolkit/components/url-classifier/tests/mochitest/import.css b/toolkit/components/url-classifier/tests/mochitest/import.css
deleted file mode 100644
index 9b86c8216..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/import.css
+++ /dev/null
@@ -1,3 +0,0 @@
-/* malware.example.com is in the malware database. */
-@import url("http://malware.example.com/tests/toolkit/components/url-classifier/tests/mochitest/bad.css");
-#styleImport { visibility: hidden; }
diff --git a/toolkit/components/url-classifier/tests/mochitest/mochitest.ini b/toolkit/components/url-classifier/tests/mochitest/mochitest.ini
deleted file mode 100644
index c5679e86b..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/mochitest.ini
+++ /dev/null
@@ -1,39 +0,0 @@
-[DEFAULT]
-support-files =
- classifiedAnnotatedPBFrame.html
- classifierCommon.js
- classifierFrame.html
- classifierHelper.js
- cleanWorker.js
- good.js
- evil.css
- evil.css^headers^
- evil.js
- evil.js^headers^
- evilWorker.js
- import.css
- raptor.jpg
- track.html
- unwantedWorker.js
- vp9.webm
- whitelistFrame.html
- workerFrame.html
- ping.sjs
- basic.vtt
- basic.vtt^headers^
- dnt.html
- dnt.sjs
- update.sjs
- bad.css
- bad.css^headers^
- gethash.sjs
- gethashFrame.html
- seek.webm
-
-[test_classifier.html]
-skip-if = (os == 'linux' && debug) #Bug 1199778
-[test_classifier_worker.html]
-[test_classify_ping.html]
-[test_classify_track.html]
-[test_gethash.html]
-[test_bug1254766.html]
diff --git a/toolkit/components/url-classifier/tests/mochitest/ping.sjs b/toolkit/components/url-classifier/tests/mochitest/ping.sjs
deleted file mode 100644
index 37a78956e..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/ping.sjs
+++ /dev/null
@@ -1,16 +0,0 @@
-function handleRequest(request, response)
-{
- var query = {};
- request.queryString.split('&').forEach(function (val) {
- var [name, value] = val.split('=');
- query[name] = unescape(value);
- });
-
- if (request.method == "POST") {
- setState(query["id"], "ping");
- } else {
- var value = getState(query["id"]);
- response.setHeader("Content-Type", "text/plain", false);
- response.write(value);
- }
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/raptor.jpg b/toolkit/components/url-classifier/tests/mochitest/raptor.jpg
deleted file mode 100644
index 243ba9e2d..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/raptor.jpg
+++ /dev/null
Binary files differ
diff --git a/toolkit/components/url-classifier/tests/mochitest/seek.webm b/toolkit/components/url-classifier/tests/mochitest/seek.webm
deleted file mode 100644
index 72b029723..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/seek.webm
+++ /dev/null
Binary files differ
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_allowlisted_annotations.html b/toolkit/components/url-classifier/tests/mochitest/test_allowlisted_annotations.html
deleted file mode 100644
index ba9c86f95..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_allowlisted_annotations.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test the URI Classifier</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-Components.utils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-
-// Add https://allowlisted.example.com to the permissions manager
-SpecialPowers.addPermission("trackingprotection",
- Ci.nsIPermissionManager.ALLOW_ACTION,
- { url: "https://allowlisted.example.com" });
-
-function clearPermissions() {
- SpecialPowers.removePermission("trackingprotection",
- { url: "https://allowlisted.example.com" });
- ok(!SpecialPowers.testPermission("trackingprotection",
- Ci.nsIPermissionManager.ALLOW_ACTION,
- { url: "https://allowlisted.example.com" }));
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.trackingTable", "test-track-simple"],
- ["privacy.trackingprotection.enabled", true],
- ["channelclassifier.allowlist_example", true]]},
- test);
-
-function test() {
- SimpleTest.registerCleanupFunction(UrlClassifierTestUtils.cleanupTestTrackers);
- UrlClassifierTestUtils.addTestTrackers().then(() => {
- document.getElementById("testFrame").src = "allowlistAnnotatedFrame.html";
- });
-}
-
-// Expected finish() call is in "allowlistedAnnotatedFrame.html".
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_bug1254766.html b/toolkit/components/url-classifier/tests/mochitest/test_bug1254766.html
deleted file mode 100644
index 1c149406a..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_bug1254766.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1272239 - Test gethash.</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-const MALWARE_LIST = "test-malware-simple";
-const MALWARE_HOST1 = "malware.example.com/";
-const MALWARE_HOST2 = "test1.example.com/";
-
-const UNWANTED_LIST = "test-unwanted-simple";
-const UNWANTED_HOST1 = "unwanted.example.com/";
-const UNWANTED_HOST2 = "test2.example.com/";
-
-
-const UNUSED_MALWARE_HOST = "unused.malware.com/";
-const UNUSED_UNWANTED_HOST = "unused.unwanted.com/";
-
-const GETHASH_URL =
- "http://mochi.test:8888/tests/toolkit/components/url-classifier/tests/mochitest/gethash.sjs";
-
-var gPreGethashCounter = 0;
-var gCurGethashCounter = 0;
-
-var expectLoad = false;
-
-function loadTestFrame() {
- return new Promise(function(resolve, reject) {
- var iframe = document.createElement("iframe");
- iframe.setAttribute("src", "gethashFrame.html");
- document.body.appendChild(iframe);
-
- iframe.onload = function() {
- document.body.removeChild(iframe);
- resolve();
- };
- }).then(getGethashCounter);
-}
-
-function getGethashCounter() {
- return new Promise(function(resolve, reject) {
- var xhr = new XMLHttpRequest;
- xhr.open("PUT", GETHASH_URL + "?gethashcount");
- xhr.setRequestHeader("Content-Type", "text/plain");
- xhr.onreadystatechange = function() {
- if (this.readyState == this.DONE) {
- gPreGethashCounter = gCurGethashCounter;
- gCurGethashCounter = parseInt(xhr.response);
- resolve();
- }
- };
- xhr.send();
- });
-}
-
-// calculate the fullhash and send it to gethash server
-function addCompletionToServer(list, url) {
- return new Promise(function(resolve, reject) {
- var listParam = "list=" + list;
- var fullhashParam = "fullhash=" + hash(url);
-
- var xhr = new XMLHttpRequest;
- xhr.open("PUT", GETHASH_URL + "?" + listParam + "&" + fullhashParam, true);
- xhr.setRequestHeader("Content-Type", "text/plain");
- xhr.onreadystatechange = function() {
- if (this.readyState == this.DONE) {
- resolve();
- }
- };
- xhr.send();
- });
-}
-
-function hash(str) {
- function bytesFromString(str) {
- var converter =
- SpecialPowers.Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(SpecialPowers.Ci.nsIScriptableUnicodeConverter);
- converter.charset = "UTF-8";
- return converter.convertToByteArray(str);
- }
-
- var hasher = SpecialPowers.Cc["@mozilla.org/security/hash;1"]
- .createInstance(SpecialPowers.Ci.nsICryptoHash);
-
- var data = bytesFromString(str);
- hasher.init(hasher.SHA256);
- hasher.update(data, data.length);
-
- return hasher.finish(true);
-}
-
-// setup function allows classifier send gethash request for test database
-// also it calculate to fullhash for url and store those hashes in gethash sjs.
-function setup() {
- classifierHelper.allowCompletion([MALWARE_LIST, UNWANTED_LIST], GETHASH_URL);
-
- return Promise.all([
- addCompletionToServer(MALWARE_LIST, MALWARE_HOST1),
- addCompletionToServer(MALWARE_LIST, MALWARE_HOST2),
- addCompletionToServer(UNWANTED_LIST, UNWANTED_HOST1),
- addCompletionToServer(UNWANTED_LIST, UNWANTED_HOST2),
- ]);
-}
-
-// Reset function in helper try to simulate the behavior we restart firefox
-function reset() {
- return classifierHelper.resetDB()
- .catch(err => {
- ok(false, "Couldn't update classifier. Error code: " + errorCode);
- // Abort test.
- SimpleTest.finish();
- });
-}
-
-function updateUnusedUrl() {
- var testData = [
- { url: UNUSED_MALWARE_HOST, db: MALWARE_LIST },
- { url: UNUSED_UNWANTED_HOST, db: UNWANTED_LIST }
- ];
-
- return classifierHelper.addUrlToDB(testData)
- .catch(err => {
- ok(false, "Couldn't update classifier. Error code: " + err);
- // Abort test.
- SimpleTest.finish();
- });
-}
-
-function addPrefixToDB() {
- return update(true);
-}
-
-function addCompletionToDB() {
- return update(false);
-}
-
-function update(prefix = false) {
- var length = prefix ? 4 : 32;
- var testData = [
- { url: MALWARE_HOST1, db: MALWARE_LIST, len: length },
- { url: MALWARE_HOST2, db: MALWARE_LIST, len: length },
- { url: UNWANTED_HOST1, db: UNWANTED_LIST, len: length },
- { url: UNWANTED_HOST2, db: UNWANTED_LIST, len: length }
- ];
-
- return classifierHelper.addUrlToDB(testData)
- .catch(err => {
- ok(false, "Couldn't update classifier. Error code: " + errorCode);
- // Abort test.
- SimpleTest.finish();
- });
-}
-
-// This testcase is to make sure gethash works:
-// 1. Add prefixes to DB.
-// 2. Load test frame contains malware & unwanted url, those urls should be blocked.
-// 3. The second step should also trigger a gethash request since completions is not in
-// either cache or DB.
-// 4. Load test frame again, since completions is stored in cache now, no gethash
-// request should be triggered.
-function testGethash() {
- return Promise.resolve()
- .then(addPrefixToDB)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter > gPreGethashCounter, "Gethash request is triggered."); })
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(reset);
-}
-
-// This testcase is to make sure an update request will clear completion cache:
-// 1. Add prefixes to DB.
-// 2. Load test frame, this should trigger a gethash request
-// 3. Trigger an update, completion cache should be cleared now.
-// 4. Load test frame again, since cache is cleared now, gethash request should be triggered.
-function testUpdateClearCache() {
- return Promise.resolve()
- .then(addPrefixToDB)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter > gPreGethashCounter, "Gethash request is triggered."); })
- .then(updateUnusedUrl)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter > gPreGethashCounter, "Gethash request is triggered."); })
- .then(reset);
-}
-
-// This testcae is to make sure completions in update works:
-// 1. Add completions to DB.
-// 2. Load test frame, since completions is stored in DB, gethash request should
-// not be triggered.
-function testUpdate() {
- return Promise.resolve()
- .then(addCompletionToDB)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(reset);
-}
-
-// This testcase is to make sure an update request will not clear completions in DB:
-// 1. Add completions to DB.
-// 2. Load test frame to make sure completions is stored in database, in this case, gethash
-// should not be triggered.
-// 3. Trigger an update, cache is cleared, but completions in DB should still remain.
-// 4. Load test frame again, since completions is in DB, gethash request should not be triggered.
-function testUpdateNotClearCompletions() {
- return Promise.resolve()
- .then(addCompletionToDB)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(updateUnusedUrl)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(reset);
-}
-
-// This testcase is to make sure completion store in DB will properly load after restarting.
-// 1. Add completions to DB.
-// 2. Simulate firefox restart by calling reloadDatabase.
-// 3. Load test frame, since completions should be loaded from DB, no gethash request should
-// be triggered.
-function testUpdateCompletionsAfterReload() {
- return Promise.resolve()
- .then(addCompletionToDB)
- .then(classifierHelper.reloadDatabase)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(reset);
-}
-
-// This testcase is to make sure cache will be cleared after restarting
-// 1. Add prefixes to DB.
-// 2. Load test frame, this should trigger a gethash request and completions will be stored in
-// cache.
-// 3. Load test frame again, no gethash should be triggered because of cache.
-// 4. Simulate firefox restart by calling reloadDatabase.
-// 5. Load test frame again, since cache is cleared, gethash request should be triggered.
-function testGethashCompletionsAfterReload() {
- return Promise.resolve()
- .then(addPrefixToDB)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter > gPreGethashCounter, "Gethash request is triggered."); })
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter == gPreGethashCounter, "Gethash request is not triggered."); })
- .then(classifierHelper.reloadDatabase)
- .then(loadTestFrame)
- .then(() => {
- ok(gCurGethashCounter > gPreGethashCounter, "Gethash request is triggered."); })
- .then(reset);
-}
-
-function runTest() {
- Promise.resolve()
- .then(classifierHelper.waitForInit)
- .then(setup)
- .then(testGethash)
- .then(testUpdateClearCache)
- .then(testUpdate)
- .then(testUpdateNotClearCompletions)
- .then(testUpdateCompletionsAfterReload)
- .then(testGethashCompletionsAfterReload)
- .then(function() {
- SimpleTest.finish();
- }).catch(function(e) {
- ok(false, "Some test failed with error " + e);
- SimpleTest.finish();
- });
-}
-
-SimpleTest.waitForExplicitFinish();
-
-// 'network.predictor.enabled' is disabled because if other testcase load
-// evil.js, evil.css ...etc resources, it may cause we load them from cache
-// directly and bypass classifier check
-SpecialPowers.pushPrefEnv({"set": [
- ["browser.safebrowsing.malware.enabled", true],
- ["network.predictor.enabled", false],
- ["urlclassifier.gethash.timeout_ms", 30000],
-]}, runTest);
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classified_annotations.html b/toolkit/components/url-classifier/tests/mochitest/test_classified_annotations.html
deleted file mode 100644
index 5814fff00..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classified_annotations.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test the URI Classifier</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-Components.utils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-
-function cleanup() {
- SpecialPowers.clearUserPref("privacy.trackingprotection.enabled");
- SpecialPowers.clearUserPref("channelclassifier.allowlist_example");
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.trackingTable", "test-track-simple"]]},
- test);
-
-function test() {
- UrlClassifierTestUtils.addTestTrackers().then(() => {
- SpecialPowers.setBoolPref("privacy.trackingprotection.enabled", true);
- // Make sure chrome:// URIs are processed. This does not white-list
- // any URIs unless 'https://allowlisted.example.com' is added in the
- // permission manager (see test_allowlisted_annotations.html)
- SpecialPowers.setBoolPref("channelclassifier.allowlist_example", true);
- document.getElementById("testFrame").src = "classifiedAnnotatedFrame.html";
- });
-}
-
-// Expected finish() call is in "classifiedAnnotatedFrame.html".
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classifier.html b/toolkit/components/url-classifier/tests/mochitest/test_classifier.html
deleted file mode 100644
index 9533db426..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classifier.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test the URI Classifier</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var firstLoad = true;
-
-// Add some URLs to the malware database.
-var testData = [
- { url: "malware.example.com/",
- db: "test-malware-simple"
- },
- { url: "unwanted.example.com/",
- db: "test-unwanted-simple"
- }
-];
-
-function loadTestFrame() {
- document.getElementById("testFrame").src = "classifierFrame.html";
-}
-
-// Expected finish() call is in "classifierFrame.html".
-SimpleTest.waitForExplicitFinish();
-
-function updateSuccess() {
- SpecialPowers.pushPrefEnv(
- {"set" : [["browser.safebrowsing.malware.enabled", true]]},
- loadTestFrame);
-}
-
-function updateError(errorCode) {
- ok(false, "Couldn't update classifier. Error code: " + errorCode);
- // Abort test.
- SimpleTest.finish();
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.malwareTable", "test-malware-simple,test-unwanted-simple"],
- ["urlclassifier.phishTable", "test-phish-simple"]]},
- function() {
- classifierHelper.waitForInit()
- .then(() => classifierHelper.addUrlToDB(testData))
- .then(updateSuccess)
- .catch(err => {
- updateError(err);
- });
- });
-
-</script>
-
-</pre>
-<iframe id="testFrame" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classifier_changetablepref.html b/toolkit/components/url-classifier/tests/mochitest/test_classifier_changetablepref.html
deleted file mode 100644
index 7423d3e8e..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classifier_changetablepref.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1281083 - Changing the urlclassifier.*Table prefs doesn't take effect before the next browser restart.</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-const testTable = "moz-track-digest256";
-const UPDATE_URL = "http://mochi.test:8888/tests/toolkit/components/url-classifier/tests/mochitest/update.sjs";
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-var prefService = Cc["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefService);
-
-var timer = Cc["@mozilla.org/timer;1"]
- .createInstance(Ci.nsITimer);
-
-// If default preference contain the table we want to test,
-// We should change test table to a different one.
-var trackingTables = SpecialPowers.getCharPref("urlclassifier.trackingTable").split(",");
-ok(!trackingTables.includes(testTable), "test table should not be in the preference");
-
-var listmanager = Cc["@mozilla.org/url-classifier/listmanager;1"].
- getService(Ci.nsIUrlListManager);
-
-is(listmanager.getGethashUrl(testTable), "",
- "gethash url for test table should be empty before setting to preference");
-
-function loadTestFrame() {
- // gethash url of test table "moz-track-digest256" should be updated
- // after setting preference.
- var url = listmanager.getGethashUrl(testTable);
- var expected = SpecialPowers.getCharPref("browser.safebrowsing.provider.mozilla.gethashURL");
-
- is(url, expected, testTable + " matches its gethash url");
-
- // Trigger update
- listmanager.disableUpdate(testTable);
- listmanager.enableUpdate(testTable);
- listmanager.maybeToggleUpdateChecking();
-
- // We wait until "nextupdattime" was set as a signal that update is complete.
- waitForUpdateSuccess(function() {
- document.getElementById("testFrame").src = "bug_1281083.html";
- });
-}
-
-function waitForUpdateSuccess(callback) {
- let nextupdatetime =
- SpecialPowers.getCharPref("browser.safebrowsing.provider.mozilla.nextupdatetime");
-
- if (nextupdatetime !== "1") {
- callback();
- return;
- }
-
- timer.initWithCallback(function() {
- waitForUpdateSuccess(callback);
- }, 10, Components.interfaces.nsITimer.TYPE_ONE_SHOT);
-}
-
-function addCompletionToServer(list, url) {
- return new Promise(function(resolve, reject) {
- var listParam = "list=" + list;
- var fullhashParam = "fullhash=" + hash(url);
-
- var xhr = new XMLHttpRequest;
- xhr.open("PUT", UPDATE_URL + "?" +
- listParam + "&" +
- fullhashParam, true);
- xhr.setRequestHeader("Content-Type", "text/plain");
- xhr.onreadystatechange = function() {
- if (this.readyState == this.DONE) {
- resolve();
- }
- };
- xhr.send();
- });
-}
-
-function hash(str) {
- function bytesFromString(str) {
- var converter =
- SpecialPowers.Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(SpecialPowers.Ci.nsIScriptableUnicodeConverter);
- converter.charset = "UTF-8";
- return converter.convertToByteArray(str);
- }
-
- var hasher = SpecialPowers.Cc["@mozilla.org/security/hash;1"]
- .createInstance(SpecialPowers.Ci.nsICryptoHash);
-
- var data = bytesFromString(str);
- hasher.init(hasher.SHA256);
- hasher.update(data, data.length);
-
- return hasher.finish(true);
-}
-
-function runTest() {
- /**
- * In this test we try to modify only urlclassifier.*Table preference to see if
- * url specified in the table will be blocked after update.
- */
- var pushPrefPromise = SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.trackingTable", testTable]]});
-
- // To make sure url is not blocked by an already blocked url.
- // Here we use non-tracking.example.com as a tracked url.
- // Since this table is only used in this bug, so it won't affect other testcases.
- var addCompletePromise =
- addCompletionToServer(testTable, "bug1281083.example.com/");
-
- Promise.all([pushPrefPromise, addCompletePromise])
- .then(() => {
- loadTestFrame();
- });
-}
-
-// Set nextupdatetime to 1 to trigger an update
-SpecialPowers.pushPrefEnv(
- {"set" : [["privacy.trackingprotection.enabled", true],
- ["channelclassifier.allowlist_example", true],
- ["browser.safebrowsing.provider.mozilla.nextupdatetime", "1"],
- ["browser.safebrowsing.provider.mozilla.lists", testTable],
- ["browser.safebrowsing.provider.mozilla.updateURL", UPDATE_URL]]},
- runTest);
-
-// Expected finish() call is in "bug_1281083.html".
-SimpleTest.waitForExplicitFinish();
-
-</script>
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
-
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html b/toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html
deleted file mode 100644
index 1f54d45b0..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test the URI Classifier</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-// Add some URLs to the malware database.
-var testData = [
- { url: "example.com/tests/toolkit/components/url-classifier/tests/mochitest/evilWorker.js",
- db: "test-malware-simple"
- },
- { url: "example.com/tests/toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js",
- db: "test-unwanted-simple"
- }
-];
-
-function loadTestFrame() {
- document.getElementById("testFrame").src =
- "http://example.com/tests/toolkit/components/url-classifier/tests/mochitest/workerFrame.html";
-}
-
-function onmessage(event)
-{
- var pieces = event.data.split(':');
- if (pieces[0] == "finish") {
- SimpleTest.finish();
- return;
- }
-
- is(pieces[0], "success", pieces[1]);
-}
-
-function updateSuccess() {
- SpecialPowers.pushPrefEnv(
- {"set" : [["browser.safebrowsing.malware.enabled", true]]},
- loadTestFrame);
-}
-
-function updateError(errorCode) {
- ok(false, "Couldn't update classifier. Error code: " + errorCode);
- // Abort test.
- SimpleTest.finish();
-};
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.malwareTable", "test-malware-simple,test-unwanted-simple"],
- ["urlclassifier.phishTable", "test-phish-simple"]]},
- function() {
- classifierHelper.waitForInit()
- .then(() => classifierHelper.addUrlToDB(testData))
- .then(updateSuccess)
- .catch(err => {
- updateError(err);
- });
- });
-
-window.addEventListener("message", onmessage, false);
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classify_ping.html b/toolkit/components/url-classifier/tests/mochitest/test_classify_ping.html
deleted file mode 100644
index 96fa2891a..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classify_ping.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1233914 - ping doesn't honor the TP list here.</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
- SimpleTest.requestFlakyTimeout("Delay to make sure ping is made prior than XHR");
-
- const timeout = 200;
- const host_nottrack = "http://not-tracking.example.com/";
- const host_track = "http://trackertest.org/";
- const path_ping = "tests/toolkit/components/url-classifier/tests/mochitest/ping.sjs";
- const TP_ENABLE_PREF = "privacy.trackingprotection.enabled";
-
- function testPingNonBlacklist() {
- SpecialPowers.setBoolPref(TP_ENABLE_PREF, true);
-
- var msg = "ping should reach page not in blacklist";
- var expectPing = true;
- var id = "1111";
- ping(id, host_nottrack);
-
- return new Promise(function(resolve, reject) {
- setTimeout(function() {
- isPinged(id, expectPing, msg, resolve);
- }, timeout);
- });
- }
-
- function testPingBlacklistSafebrowsingOff() {
- SpecialPowers.setBoolPref(TP_ENABLE_PREF, false);
-
- var msg = "ping should reach page in blacklist when tracking protection is off";
- var expectPing = true;
- var id = "2222";
- ping(id, host_track);
-
- return new Promise(function(resolve, reject) {
- setTimeout(function() {
- isPinged(id, expectPing, msg, resolve);
- }, timeout);
- });
- }
-
- function testPingBlacklistSafebrowsingOn() {
- SpecialPowers.setBoolPref(TP_ENABLE_PREF, true);
-
- var msg = "ping should not reach page in blacklist when tracking protection is on";
- var expectPing = false;
- var id = "3333";
- ping(id, host_track);
-
- return new Promise(function(resolve, reject) {
- setTimeout(function() {
- isPinged(id, expectPing, msg, resolve);
- }, timeout);
- });
- }
-
- function ping(id, host) {
- var elm = document.createElement("a");
- elm.setAttribute('ping', host + path_ping + "?id=" + id);
- elm.setAttribute('href', "#");
- document.body.appendChild(elm);
-
- // Trigger ping.
- elm.click();
-
- document.body.removeChild(elm);
- }
-
- function isPinged(id, expected, msg, callback) {
- var url = "http://mochi.test:8888/" + path_ping;
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url + "?id=" + id);
- xhr.onload = function() {
- var isPinged = xhr.response === "ping";
- is(expected, isPinged, msg);
-
- callback();
- };
- xhr.send();
- }
-
- function cleanup() {
- SpecialPowers.clearUserPref(TP_ENABLE_PREF);
- }
-
- function runTest() {
- Promise.resolve()
- .then(testPingNonBlacklist)
- .then(testPingBlacklistSafebrowsingOff)
- .then(testPingBlacklistSafebrowsingOn)
- .then(function() {
- SimpleTest.finish();
- }).catch(function(e) {
- ok(false, "Some test failed with error " + e);
- SimpleTest.finish();
- });
- }
-
- SimpleTest.waitForExplicitFinish();
- SimpleTest.registerCleanupFunction(cleanup);
- SpecialPowers.pushPrefEnv({"set": [
- ["browser.send_pings", true],
- ["urlclassifier.trackingTable", "test-track-simple"],
- ]}, runTest);
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_classify_track.html b/toolkit/components/url-classifier/tests/mochitest/test_classify_track.html
deleted file mode 100644
index a868d7960..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_classify_track.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1262406 - Track element doesn't use the URL classifier.</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
- const PREF = "browser.safebrowsing.malware.enabled";
- const track_path = "tests/toolkit/components/url-classifier/tests/mochitest/basic.vtt";
- const malware_url = "http://malware.example.com/" + track_path;
- const validtrack_url = "http://mochi.test:8888/" + track_path;
-
- var video = document.createElement("video");
- video.src = "seek.webm";
- video.crossOrigin = "anonymous";
-
- document.body.appendChild(video);
-
- function testValidTrack() {
- SpecialPowers.setBoolPref(PREF, true);
-
- return new Promise(function(resolve, reject) {
- var track = document.createElement("track");
- track.src = validtrack_url;
- video.appendChild(track);
-
- function onload() {
- ok(true, "Track should be loaded when url is not in blacklist");
- finish();
- }
-
- function onerror() {
- ok(false, "Error while loading track");
- finish();
- }
-
- function finish() {
- track.removeEventListener("load", onload);
- track.removeEventListener("error", onerror)
- resolve();
- }
-
- track.addEventListener("load", onload);
- track.addEventListener("error", onerror)
- });
- }
-
- function testBlacklistTrackSafebrowsingOff() {
- SpecialPowers.setBoolPref(PREF, false);
-
- return new Promise(function(resolve, reject) {
- var track = document.createElement("track");
- track.src = malware_url;
- video.appendChild(track);
-
- function onload() {
- ok(true, "Track should be loaded when url is in blacklist and safebrowsing is off");
- finish();
- }
-
- function onerror() {
- ok(false, "Error while loading track");
- finish();
- }
-
- function finish() {
- track.removeEventListener("load", onload);
- track.removeEventListener("error", onerror)
- resolve();
- }
-
- track.addEventListener("load", onload);
- track.addEventListener("error", onerror)
- });
- }
-
- function testBlacklistTrackSafebrowsingOn() {
- SpecialPowers.setBoolPref(PREF, true);
-
- return new Promise(function(resolve, reject) {
- var track = document.createElement("track");
-
- // Add a query string parameter here to avoid url classifier bypass classify
- // because of cache.
- track.src = malware_url + "?testsbon";
- video.appendChild(track);
-
- function onload() {
- ok(false, "Unexpected result while loading track in blacklist");
- finish();
- }
-
- function onerror() {
- ok(true, "Track should not be loaded when url is in blacklist and safebrowsing is on");
- finish();
- }
-
- function finish() {
- track.removeEventListener("load", onload);
- track.removeEventListener("error", onerror)
- resolve();
- }
-
- track.addEventListener("load", onload);
- track.addEventListener("error", onerror)
- });
- }
-
- function cleanup() {
- SpecialPowers.clearUserPref(PREF);
- }
-
- function setup() {
- var testData = [
- { url: "malware.example.com/",
- db: "test-malware-simple"
- }
- ];
-
- return classifierHelper.addUrlToDB(testData)
- .catch(function(err) {
- ok(false, "Couldn't update classifier. Error code: " + err);
- // Abort test.
- SimpleTest.finish();
- });
- }
-
- function runTest() {
- Promise.resolve()
- .then(classifierHelper.waitForInit)
- .then(setup)
- .then(testValidTrack)
- .then(testBlacklistTrackSafebrowsingOff)
- .then(testBlacklistTrackSafebrowsingOn)
- .then(function() {
- SimpleTest.finish();
- }).catch(function(e) {
- ok(false, "Some test failed with error " + e);
- SimpleTest.finish();
- });
- }
-
- SimpleTest.waitForExplicitFinish();
- SimpleTest.registerCleanupFunction(cleanup);
- SpecialPowers.pushPrefEnv({"set": [
- ["media.webvtt.regions.enabled", true],
- ["urlclassifier.malwareTable", "test-malware-simple"],
- ]}, runTest);
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_donottrack.html b/toolkit/components/url-classifier/tests/mochitest/test_donottrack.html
deleted file mode 100644
index 56003e7eb..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_donottrack.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1258033 - Fix the DNT loophole for tracking protection</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow);
-
-const tests = [
- // DNT turned on and TP turned off, DNT signal sent in both private browsing
- // and normal mode.
- {
- setting: {dntPref:true, tpPref:false, tppbPref:false, pbMode:true},
- expected: {dnt: "1"},
- },
- {
- setting: {dntPref:true, tpPref:false, tppbPref:false, pbMode:false},
- expected: {dnt: "1"}
- },
- // DNT turned off and TP turned on globally, DNT signal sent in both private
- // browsing and normal mode.
- {
- setting: {dntPref:false, tpPref:true, tppbPref:false, pbMode:true},
- expected: {dnt: "1"}
- },
- {
- setting: {dntPref:false, tpPref:true, tppbPref:false, pbMode:false},
- expected: {dnt: "1"}
- },
- // DNT turned off and TP in Private Browsing only, DNT signal sent in private
- // browsing mode only.
- {
- setting: {dntPref:false, tpPref:false, tppbPref:true, pbMode:true},
- expected: {dnt: "1"}
- },
- {
- setting: {dntPref:false, tpPref:false, tppbPref:true, pbMode:false},
- expected: {dnt: "unspecified"}
- },
- // DNT turned off and TP turned off, DNT signal is never sent.
- {
- setting: {dntPref:false, tpPref:false, tppbPref:false, pbMode:true},
- expected: {dnt: "unspecified"}
- },
- {
- setting: {dntPref:false, tpPref:false, tppbPref:false, pbMode:false},
- expected: {dnt: "unspecified"}
- },
-]
-
-const DNT_PREF = 'privacy.donottrackheader.enabled';
-const TP_PREF = 'privacy.trackingprotection.enabled';
-const TP_PB_PREF = 'privacy.trackingprotection.pbmode.enabled';
-
-const contentPage =
- "http://mochi.test:8888/tests/toolkit/components/url-classifier/tests/mochitest/dnt.html";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-
-function whenDelayedStartupFinished(aWindow, aCallback) {
- Services.obs.addObserver(function observer(aSubject, aTopic) {
- if (aWindow == aSubject) {
- Services.obs.removeObserver(observer, aTopic);
- setTimeout(aCallback, 0);
- }
- }, "browser-delayed-startup-finished", false);
-}
-
-function executeTest(test) {
- SpecialPowers.pushPrefEnv({"set" : [
- [DNT_PREF, test.setting.dntPref],
- [TP_PREF, test.setting.tpPref],
- [TP_PB_PREF, test.setting.tppbPref]
- ]});
-
- var win = mainWindow.OpenBrowserWindow({private: test.setting.pbMode});
-
- return new Promise(function(resolve, reject) {
- win.addEventListener("load", function onLoad() {
- win.removeEventListener("load", onLoad, false);
- whenDelayedStartupFinished(win, function() {
- win.addEventListener("DOMContentLoaded", function onInnerLoad() {
- if (win.content.location.href != contentPage) {
- win.gBrowser.loadURI(contentPage);
- return;
- }
-
- win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
-
- win.content.addEventListener('message', function (event) {
- let [key, value] = event.data.split("=");
- if (key == "finish") {
- win.close();
- resolve();
- } else if (key == "navigator.doNotTrack") {
- is(value, test.expected.dnt, "navigator.doNotTrack should be " + test.expected.dnt);
- } else if (key == "DNT") {
- let msg = test.expected.dnt == "1" ? "" : "not ";
- is(value, test.expected.dnt, "DNT header should " + msg + "be sent");
- } else {
- ok(false, "unexpected message");
- }
- });
- }, true);
- SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); });
- });
- }, true);
- });
-}
-
-let loop = function loop(index) {
- if (index >= tests.length) {
- SimpleTest.finish();
- return;
- }
-
- let test = tests[index];
- let next = function next() {
- loop(index + 1);
- };
- let result = executeTest(test);
- result.then(next, next);
-};
-
-SimpleTest.waitForExplicitFinish();
-loop(0);
-
-</script>
-
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_gethash.html b/toolkit/components/url-classifier/tests/mochitest/test_gethash.html
deleted file mode 100644
index af995e2a5..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_gethash.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1272239 - Test gethash.</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="classifierHelper.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<iframe id="testFrame1" onload=""></iframe>
-<iframe id="testFrame2" onload=""></iframe>
-
-<script class="testbody" type="text/javascript">
-
-const MALWARE_LIST = "test-malware-simple";
-const MALWARE_HOST = "malware.example.com/";
-
-const UNWANTED_LIST = "test-unwanted-simple";
-const UNWANTED_HOST = "unwanted.example.com/";
-
-const GETHASH_URL = "http://mochi.test:8888/tests/toolkit/components/url-classifier/tests/mochitest/gethash.sjs";
-const NOTEXIST_URL = "http://mochi.test:8888/tests/toolkit/components/url-classifier/tests/mochitest/nonexistserver.sjs";
-
-var shouldLoad = false;
-
-// In this testcase we store prefixes to localdb and send the fullhash to gethash server.
-// When access the test page gecko should trigger gethash request to server and
-// get the completion response.
-function loadTestFrame(id) {
- return new Promise(function(resolve, reject) {
-
- var iframe = document.getElementById(id);
- iframe.setAttribute("src", "gethashFrame.html");
-
- iframe.onload = function() {
- resolve();
- };
- });
-}
-
-// add 4-bytes prefixes to local database, so when we access the url,
-// it will trigger gethash request.
-function addPrefixToDB(list, url) {
- var testData = [{ db: list, url: url, len: 4 }];
-
- return classifierHelper.addUrlToDB(testData)
- .catch(function(err) {
- ok(false, "Couldn't update classifier. Error code: " + err);
- // Abort test.
- SimpleTest.finish();
- });
-}
-
-// calculate the fullhash and send it to gethash server
-function addCompletionToServer(list, url) {
- return new Promise(function(resolve, reject) {
- var listParam = "list=" + list;
- var fullhashParam = "fullhash=" + hash(url);
-
- var xhr = new XMLHttpRequest;
- xhr.open("PUT", GETHASH_URL + "?" +
- listParam + "&" +
- fullhashParam, true);
- xhr.setRequestHeader("Content-Type", "text/plain");
- xhr.onreadystatechange = function() {
- if (this.readyState == this.DONE) {
- resolve();
- }
- };
- xhr.send();
- });
-}
-
-function hash(str) {
- function bytesFromString(str) {
- var converter =
- SpecialPowers.Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(SpecialPowers.Ci.nsIScriptableUnicodeConverter);
- converter.charset = "UTF-8";
- return converter.convertToByteArray(str);
- }
-
- var hasher = SpecialPowers.Cc["@mozilla.org/security/hash;1"]
- .createInstance(SpecialPowers.Ci.nsICryptoHash);
-
- var data = bytesFromString(str);
- hasher.init(hasher.SHA256);
- hasher.update(data, data.length);
-
- return hasher.finish(true);
-}
-
-function setup404() {
- shouldLoad = true;
-
- classifierHelper.allowCompletion([MALWARE_LIST, UNWANTED_LIST], NOTEXIST_URL);
-
- return Promise.all([
- addPrefixToDB(MALWARE_LIST, MALWARE_HOST),
- addPrefixToDB(UNWANTED_LIST, UNWANTED_HOST)
- ]);
-}
-
-function setup() {
- classifierHelper.allowCompletion([MALWARE_LIST, UNWANTED_LIST], GETHASH_URL);
-
- return Promise.all([
- addPrefixToDB(MALWARE_LIST, MALWARE_HOST),
- addPrefixToDB(UNWANTED_LIST, UNWANTED_HOST),
- addCompletionToServer(MALWARE_LIST, MALWARE_HOST),
- addCompletionToServer(UNWANTED_LIST, UNWANTED_HOST),
- ]);
-}
-
-// manually reset DB to make sure next test won't be affected by cache.
-function reset() {
- return classifierHelper.resetDB;
-}
-
-function runTest() {
- Promise.resolve()
- // This test resources get blocked when gethash returns successfully
- .then(classifierHelper.waitForInit)
- .then(setup)
- .then(() => loadTestFrame("testFrame1"))
- .then(reset)
- // This test resources are not blocked when gethash returns an error
- .then(setup404)
- .then(() => loadTestFrame("testFrame2"))
- .then(function() {
- SimpleTest.finish();
- }).catch(function(e) {
- ok(false, "Some test failed with error " + e);
- SimpleTest.finish();
- });
-}
-
-SimpleTest.waitForExplicitFinish();
-
-// 'network.predictor.enabled' is disabled because if other testcase load
-// evil.js, evil.css ...etc resources, it may cause we load them from cache
-// directly and bypass classifier check
-SpecialPowers.pushPrefEnv({"set": [
- ["browser.safebrowsing.malware.enabled", true],
- ["network.predictor.enabled", false],
- ["urlclassifier.gethash.timeout_ms", 30000],
-]}, runTest);
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_lookup_system_principal.html b/toolkit/components/url-classifier/tests/mochitest/test_lookup_system_principal.html
deleted file mode 100644
index fa61e6a00..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_lookup_system_principal.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test that lookup() on a system principal doesn't crash</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script type="text/javascript">
-
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-
-var dbService = Cc["@mozilla.org/url-classifier/dbservice;1"]
- .getService(Ci.nsIUrlClassifierDBService);
-
-dbService.lookup(document.nodePrincipal, "", function(arg) {});
-
-ok(true, "lookup() didn't crash");
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html b/toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html
deleted file mode 100644
index 02ef57b46..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
- <title>Test Tracking Protection in Private Browsing mode</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow);
-var contentPage = "http://www.itisatrap.org/tests/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-
-function whenDelayedStartupFinished(aWindow, aCallback) {
- Services.obs.addObserver(function observer(aSubject, aTopic) {
- if (aWindow == aSubject) {
- Services.obs.removeObserver(observer, aTopic);
- setTimeout(aCallback, 0);
- }
- }, "browser-delayed-startup-finished", false);
-}
-
-function testOnWindow(aPrivate, aCallback) {
- var win = mainWindow.OpenBrowserWindow({private: aPrivate});
- win.addEventListener("load", function onLoad() {
- win.removeEventListener("load", onLoad, false);
- whenDelayedStartupFinished(win, function() {
- win.addEventListener("DOMContentLoaded", function onInnerLoad() {
- if (win.content.location.href != contentPage) {
- win.gBrowser.loadURI(contentPage);
- return;
- }
- win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
-
- win.content.addEventListener('load', function innerLoad2() {
- win.content.removeEventListener('load', innerLoad2, false);
- SimpleTest.executeSoon(function() { aCallback(win); });
- }, false, true);
- }, true);
- SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); });
- });
- }, true);
-}
-
-var badids = [
- "badscript",
- "badimage",
- "badcss"
-];
-
-function checkLoads(aWindow, aBlocked) {
- var win = aWindow.content;
- is(win.document.getElementById("badscript").dataset.touched, aBlocked ? "no" : "yes", "Should not load tracking javascript");
- is(win.document.getElementById("badimage").dataset.touched, aBlocked ? "no" : "yes", "Should not load tracking images");
- is(win.document.getElementById("goodscript").dataset.touched, "yes", "Should load whitelisted tracking javascript");
-
- var elt = win.document.getElementById("styleCheck");
- var style = win.document.defaultView.getComputedStyle(elt, "");
- isnot(style.visibility, aBlocked ? "hidden" : "", "Should not load tracking css");
-
- is(win.document.blockedTrackingNodeCount, aBlocked ? badids.length : 0, "Should identify all tracking elements");
-
- var blockedTrackingNodes = win.document.blockedTrackingNodes;
-
- // Make sure that every node in blockedTrackingNodes exists in the tree
- // (that may not always be the case but do not expect any nodes to disappear
- // from the tree here)
- var allNodeMatch = true;
- for (var i = 0; i < blockedTrackingNodes.length; i++) {
- var nodeMatch = false;
- for (var j = 0; j < badids.length && !nodeMatch; j++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == win.document.getElementById(badids[j]));
- }
-
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- is(allNodeMatch, true, "All annotated nodes are expected in the tree");
-
- // Make sure that every node with a badid (see badids) is found in the
- // blockedTrackingNodes. This tells us if we are neglecting to annotate
- // some nodes
- allNodeMatch = true;
- for (var j = 0; j < badids.length; j++) {
- var nodeMatch = false;
- for (var i = 0; i < blockedTrackingNodes.length && !nodeMatch; i++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == win.document.getElementById(badids[j]));
- }
-
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- is(allNodeMatch, aBlocked, "All tracking nodes are expected to be annotated as such");
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.trackingTable", "test-track-simple"],
- ["privacy.trackingprotection.enabled", false],
- ["privacy.trackingprotection.pbmode.enabled", true],
- ["channelclassifier.allowlist_example", true]]},
- test);
-
-function test() {
- SimpleTest.registerCleanupFunction(UrlClassifierTestUtils.cleanupTestTrackers);
- UrlClassifierTestUtils.addTestTrackers().then(() => {
- // Normal mode, with the pref (trackers should be loaded)
- testOnWindow(false, function(aWindow) {
- checkLoads(aWindow, false);
- aWindow.close();
-
- // Private Browsing, with the pref (trackers should be blocked)
- testOnWindow(true, function(aWindow) {
- checkLoads(aWindow, true);
- aWindow.close();
-
- // Private Browsing, without the pref (trackers should be loaded)
- SpecialPowers.setBoolPref("privacy.trackingprotection.pbmode.enabled", false);
- testOnWindow(true, function(aWindow) {
- checkLoads(aWindow, false);
- aWindow.close();
- SimpleTest.finish();
- });
- });
- });
- });
-}
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_safebrowsing_bug1272239.html b/toolkit/components/url-classifier/tests/mochitest/test_safebrowsing_bug1272239.html
deleted file mode 100644
index 8066c2a37..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_safebrowsing_bug1272239.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1272239 - Only tables with provider could register gethash url in listmanager.</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-// List all the tables
-const prefs = [
- "urlclassifier.phishTable",
- "urlclassifier.malwareTable",
- "urlclassifier.downloadBlockTable",
- "urlclassifier.downloadAllowTable",
- "urlclassifier.trackingTable",
- "urlclassifier.trackingWhitelistTable",
- "urlclassifier.blockedTable"
-];
-
-var prefService = Cc["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefService);
-
-// Get providers
-var providers = {};
-
-var branch = prefService.getBranch("browser.safebrowsing.provider.");
-var children = branch.getChildList("", {});
-
-for (var child of children) {
- var prefComponents = child.split(".");
- var providerName = prefComponents[0];
- providers[providerName] = {};
-}
-
-// Get lists from |browser.safebrowsing.provider.PROVIDER_NAME.lists| preference.
-var listsWithProvider = [];
-var listsToProvider = [];
-for (var provider in providers) {
- var pref = "browser.safebrowsing.provider." + provider + ".lists";
- var list = SpecialPowers.getCharPref(pref).split(",");
-
- listsToProvider = listsToProvider.concat(list.map( () => { return provider; }));
- listsWithProvider = listsWithProvider.concat(list);
-}
-
-// Get all the lists
-var lists = [];
-for (var pref of prefs) {
- lists = lists.concat(SpecialPowers.getCharPref(pref).split(","));
-}
-
-var listmanager = Cc["@mozilla.org/url-classifier/listmanager;1"].
- getService(Ci.nsIUrlListManager);
-
-for (var list of lists) {
- if (!list)
- continue;
-
- // For lists having a provider, it should have a correct gethash url
- // For lists without a provider, for example, test-malware-simple, it should not
- // have a gethash url.
- var url = listmanager.getGethashUrl(list);
- var index = listsWithProvider.indexOf(list);
- if (index >= 0) {
- var provider = listsToProvider[index];
- var pref = "browser.safebrowsing.provider." + provider + ".gethashURL";
- is(url, SpecialPowers.getCharPref(pref), list + " matches its gethash url");
- } else {
- is(url, "", list + " should not have a gethash url");
- }
-}
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1157081.html b/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1157081.html
deleted file mode 100644
index 7611dd245..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1157081.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
- <title>Test Tracking Protection with and without Safe Browsing (Bug #1157081)</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow);
-var contentPage = "chrome://mochitests/content/chrome/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html"
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-
-function whenDelayedStartupFinished(aWindow, aCallback) {
- Services.obs.addObserver(function observer(aSubject, aTopic) {
- if (aWindow == aSubject) {
- Services.obs.removeObserver(observer, aTopic);
- setTimeout(aCallback, 0);
- }
- }, "browser-delayed-startup-finished", false);
-}
-
-function testOnWindow(aCallback) {
- var win = mainWindow.OpenBrowserWindow();
- win.addEventListener("load", function onLoad() {
- win.removeEventListener("load", onLoad, false);
- whenDelayedStartupFinished(win, function() {
- win.addEventListener("DOMContentLoaded", function onInnerLoad() {
- if (win.content.location.href != contentPage) {
- win.gBrowser.loadURI(contentPage);
- return;
- }
- win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
-
- win.content.addEventListener('load', function innerLoad2() {
- win.content.removeEventListener('load', innerLoad2, false);
- SimpleTest.executeSoon(function() { aCallback(win); });
- }, false, true);
- }, true);
- SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); });
- });
- }, true);
-}
-
-var badids = [
- "badscript"
-];
-
-function checkLoads(aWindow, aBlocked) {
- var win = aWindow.content;
- is(win.document.getElementById("badscript").dataset.touched, aBlocked ? "no" : "yes", "Should not load tracking javascript");
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["urlclassifier.trackingTable", "test-track-simple"],
- ["privacy.trackingprotection.enabled", true],
- ["browser.safebrowsing.malware.enabled", false],
- ["browser.safebrowsing.phishing.enabled", false],
- ["channelclassifier.allowlist_example", true]]},
- test);
-
-function test() {
- SimpleTest.registerCleanupFunction(UrlClassifierTestUtils.cleanupTestTrackers);
- UrlClassifierTestUtils.addTestTrackers().then(() => {
- // Safe Browsing turned OFF, tracking protection should work nevertheless
- testOnWindow(function(aWindow) {
- checkLoads(aWindow, true);
- aWindow.close();
-
- // Safe Browsing turned ON, tracking protection should still work
- SpecialPowers.setBoolPref("browser.safebrowsing.phishing.enabled", true);
- testOnWindow(function(aWindow) {
- checkLoads(aWindow, true);
- aWindow.close();
- SimpleTest.finish();
- });
- });
- });
-}
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_whitelist.html b/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_whitelist.html
deleted file mode 100644
index 29de0dfed..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_whitelist.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
- <title>Test Tracking Protection in Private Browsing mode</title>
- <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
-</head>
-
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-
-<script class="testbody" type="text/javascript">
-
-var Cc = SpecialPowers.Cc;
-var Ci = SpecialPowers.Ci;
-
-var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow);
-var contentPage1 = "http://www.itisatrap.org/tests/toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html";
-var contentPage2 = "http://example.com/tests/toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-
-function whenDelayedStartupFinished(aWindow, aCallback) {
- Services.obs.addObserver(function observer(aSubject, aTopic) {
- if (aWindow == aSubject) {
- Services.obs.removeObserver(observer, aTopic);
- setTimeout(aCallback, 0);
- }
- }, "browser-delayed-startup-finished", false);
-}
-
-function testOnWindow(contentPage, aCallback) {
- var win = mainWindow.OpenBrowserWindow();
- win.addEventListener("load", function onLoad() {
- win.removeEventListener("load", onLoad, false);
- whenDelayedStartupFinished(win, function() {
- win.addEventListener("DOMContentLoaded", function onInnerLoad() {
- if (win.content.location.href != contentPage) {
- win.gBrowser.loadURI(contentPage);
- return;
- }
- win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
-
- win.content.addEventListener('load', function innerLoad2() {
- win.content.removeEventListener('load', innerLoad2, false);
- SimpleTest.executeSoon(function() { aCallback(win); });
- }, false, true);
- }, true);
- SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); });
- });
- }, true);
-}
-
-var alwaysbadids = [
- "badscript",
-];
-
-function checkLoads(aWindow, aWhitelisted) {
- var win = aWindow.content;
- is(win.document.getElementById("badscript").dataset.touched, "no", "Should not load tracking javascript");
- is(win.document.getElementById("goodscript").dataset.touched, aWhitelisted ? "yes" : "no", "Should load whitelisted tracking javascript");
-
- var badids = alwaysbadids.slice();
- if (!aWhitelisted) {
- badids.push("goodscript");
- }
- is(win.document.blockedTrackingNodeCount, badids.length, "Should identify all tracking elements");
-
- var blockedTrackingNodes = win.document.blockedTrackingNodes;
-
- // Make sure that every node in blockedTrackingNodes exists in the tree
- // (that may not always be the case but do not expect any nodes to disappear
- // from the tree here)
- var allNodeMatch = true;
- for (var i = 0; i < blockedTrackingNodes.length; i++) {
- var nodeMatch = false;
- for (var j = 0; j < badids.length && !nodeMatch; j++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == win.document.getElementById(badids[j]));
- }
-
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- is(allNodeMatch, true, "All annotated nodes are expected in the tree");
-
- // Make sure that every node with a badid (see badids) is found in the
- // blockedTrackingNodes. This tells us if we are neglecting to annotate
- // some nodes
- allNodeMatch = true;
- for (var j = 0; j < badids.length; j++) {
- var nodeMatch = false;
- for (var i = 0; i < blockedTrackingNodes.length && !nodeMatch; i++) {
- nodeMatch = nodeMatch ||
- (blockedTrackingNodes[i] == win.document.getElementById(badids[j]));
- }
-
- allNodeMatch = allNodeMatch && nodeMatch;
- }
- is(allNodeMatch, true, "All tracking nodes are expected to be annotated as such");
-}
-
-SpecialPowers.pushPrefEnv(
- {"set" : [["privacy.trackingprotection.enabled", true],
- ["channelclassifier.allowlist_example", true]]},
- test);
-
-function test() {
- SimpleTest.registerCleanupFunction(UrlClassifierTestUtils.cleanupTestTrackers);
- UrlClassifierTestUtils.addTestTrackers().then(() => {
- // Load the test from a URL on the whitelist
- testOnWindow(contentPage1, function(aWindow) {
- checkLoads(aWindow, true);
- aWindow.close();
-
- // Load the test from a URL that's NOT on the whitelist
- testOnWindow(contentPage2, function(aWindow) {
- checkLoads(aWindow, false);
- aWindow.close();
-
- // Load the test from a URL on the whitelist but without the whitelist
- SpecialPowers.pushPrefEnv({"set" : [["urlclassifier.trackingWhitelistTable", ""]]},
- function() {
- testOnWindow(contentPage1, function(aWindow) {
- checkLoads(aWindow, false);
- aWindow.close();
- SimpleTest.finish();
- });
- });
-
- });
- });
- });
-}
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</pre>
-<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/track.html b/toolkit/components/url-classifier/tests/mochitest/track.html
deleted file mode 100644
index 8785e7c5b..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/track.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
- <head>
- </head>
- <body>
- <h1>Tracking Works!</h1>
- </body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js b/toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js
deleted file mode 100644
index ac34977d7..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js
+++ /dev/null
@@ -1,3 +0,0 @@
-onmessage = function() {
- postMessage("loaded bad file");
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/update.sjs b/toolkit/components/url-classifier/tests/mochitest/update.sjs
deleted file mode 100644
index 53efaafdf..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/update.sjs
+++ /dev/null
@@ -1,114 +0,0 @@
-const CC = Components.Constructor;
-const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
- "nsIBinaryInputStream",
- "setInputStream");
-
-function handleRequest(request, response)
-{
- var query = {};
- request.queryString.split('&').forEach(function (val) {
- var idx = val.indexOf('=');
- query[val.slice(0, idx)] = unescape(val.slice(idx + 1));
- });
-
- // Store fullhash in the server side.
- if ("list" in query && "fullhash" in query) {
- // In the server side we will store:
- // 1. All the full hashes for a given list
- // 2. All the lists we have right now
- // data is separate by '\n'
- let list = query["list"];
- let hashes = getState(list);
-
- let hash = base64ToString(query["fullhash"]);
- hashes += hash + "\n";
- setState(list, hashes);
-
- let lists = getState("lists");
- if (lists.indexOf(list) == -1) {
- lists += list + "\n";
- setState("lists", lists);
- }
-
- return;
- }
-
- var body = new BinaryInputStream(request.bodyInputStream);
- var avail;
- var bytes = [];
-
- while ((avail = body.available()) > 0) {
- Array.prototype.push.apply(bytes, body.readByteArray(avail));
- }
-
- var responseBody = parseV2Request(bytes);
-
- response.setHeader("Content-Type", "text/plain", false);
- response.write(responseBody);
-}
-
-function parseV2Request(bytes) {
- var table = String.fromCharCode.apply(this, bytes).slice(0,-2);
-
- var ret = "";
- getState("lists").split("\n").forEach(function(list) {
- if (list == table) {
- var completions = getState(list).split("\n");
- ret += "n:1000\n"
- ret += "i:" + list + "\n";
- ret += "a:1:32:" + 32*(completions.length - 1) + "\n";
-
- for (var completion of completions) {
- ret += completion;
- }
- }
- });
-
- return ret;
-}
-
-/* Convert Base64 data to a string */
-const toBinaryTable = [
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
- 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
- -1, 0, 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,-1, -1,-1,-1,-1,
- -1,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,-1, -1,-1,-1,-1
-];
-const base64Pad = '=';
-
-function base64ToString(data) {
- var result = '';
- var leftbits = 0; // number of bits decoded, but yet to be appended
- var leftdata = 0; // bits decoded, but yet to be appended
-
- // Convert one by one.
- for (var i = 0; i < data.length; i++) {
- var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
- var padding = (data[i] == base64Pad);
- // Skip illegal characters and whitespace
- if (c == -1) continue;
-
- // Collect data into leftdata, update bitcount
- leftdata = (leftdata << 6) | c;
- leftbits += 6;
-
- // If we have 8 or more bits, append 8 bits to the result
- if (leftbits >= 8) {
- leftbits -= 8;
- // Append if not padding.
- if (!padding)
- result += String.fromCharCode((leftdata >> leftbits) & 0xff);
- leftdata &= (1 << leftbits) - 1;
- }
- }
-
- // If there are any bits left, the base64 string was corrupted
- if (leftbits)
- throw Components.Exception('Corrupted base64 string');
-
- return result;
-}
diff --git a/toolkit/components/url-classifier/tests/mochitest/vp9.webm b/toolkit/components/url-classifier/tests/mochitest/vp9.webm
deleted file mode 100644
index 221877e30..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/vp9.webm
+++ /dev/null
Binary files differ
diff --git a/toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html b/toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html
deleted file mode 100644
index 620416fc7..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/whitelistFrame.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
-<title></title>
-</head>
-<body>
-
-<script id="badscript" data-touched="not sure" src="http://trackertest.org/tests/toolkit/components/url-classifier/tests/mochitest/evil.js" onload="this.dataset.touched = 'yes';" onerror="this.dataset.touched = 'no';"></script>
-
-<script id="goodscript" data-touched="not sure" src="http://itisatracker.org/tests/toolkit/components/url-classifier/tests/mochitest/good.js" onload="this.dataset.touched = 'yes';" onerror="this.dataset.touched = 'no';"></script>
-
-</body>
-</html>
diff --git a/toolkit/components/url-classifier/tests/mochitest/workerFrame.html b/toolkit/components/url-classifier/tests/mochitest/workerFrame.html
deleted file mode 100644
index 69e8dd007..000000000
--- a/toolkit/components/url-classifier/tests/mochitest/workerFrame.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-<head>
-<title></title>
-
-<script type="text/javascript">
-
-function startCleanWorker() {
- var worker = new Worker("cleanWorker.js");
-
- worker.onmessage = function(event) {
- if (event.data == "success") {
- window.parent.postMessage("success:blocked importScripts('evilWorker.js')", "*");
- } else {
- window.parent.postMessage("failure:failed to block importScripts('evilWorker.js')", "*");
- }
- window.parent.postMessage("finish", "*");
- };
-
- worker.onerror = function(event) {
- window.parent.postmessage("failure:failed to load cleanWorker.js", "*");
- window.parent.postMessage("finish", "*");
- };
-
- worker.postMessage("");
-}
-
-function startEvilWorker() {
- var worker = new Worker("evilWorker.js");
-
- worker.onmessage = function(event) {
- window.parent.postMessage("failure:failed to block evilWorker.js", "*");
- startUnwantedWorker();
- };
-
- worker.onerror = function(event) {
- window.parent.postMessage("success:blocked evilWorker.js", "*");
- startUnwantedWorker();
- };
-
- worker.postMessage("");
-}
-
-function startUnwantedWorker() {
- var worker = new Worker("unwantedWorker.js");
-
- worker.onmessage = function(event) {
- window.parent.postMessage("failure:failed to block unwantedWorker.js", "*");
- startCleanWorker();
- };
-
- worker.onerror = function(event) {
- window.parent.postMessage("success:blocked unwantedWorker.js", "*");
- startCleanWorker();
- };
-
- worker.postMessage("");
-}
-
-</script>
-
-</head>
-
-<body onload="startEvilWorker()">
-</body>
-</html>