Bug 1402892 - Update mochitests related to request.context. r=asuth

This patch removes mochitests that were testing only request.context and
updates a couple others to use request.destination instead.
This commit is contained in:
Catalin Badea 2018-03-13 15:35:59 +00:00
Родитель 1c8f28f854
Коммит 7e334203f9
48 изменённых файлов: 7 добавлений и 1279 удалений

Просмотреть файл

@ -1,43 +0,0 @@
/*
* This is based on dom/tests/mochitest/beacon/beacon-originheader-handler.sjs.
*/
function handleRequest(request, response)
{
response.setHeader("Cache-Control", "no-cache", false);
response.setHeader("Content-Type", "text/plain", false);
// case XHR-REQUEST: the xhr-request tries to query the
// stored context from the beacon request.
if (request.queryString == "queryContext") {
var context = getState("interceptContext");
// if the beacon already stored the context - return.
if (context) {
response.write(context);
setState("interceptContext", "");
return;
}
// otherwise wait for the beacon request
response.processAsync();
setObjectState("sw-xhr-response", response);
return;
}
// case BEACON-REQUEST: get the beacon context and
// store the context on the server.
var context = request.queryString;
setState("interceptContext", context);
// if there is an xhr-request waiting, return the context now.
try{
getObjectState("sw-xhr-response", function(xhrResponse) {
if (!xhrResponse) {
return;
}
setState("interceptContext", "");
xhrResponse.write(context);
xhrResponse.finish();
});
} catch(e) {
}
}

Просмотреть файл

@ -1,135 +0,0 @@
self.addEventListener("fetch", function(event) {
if (event.request.url.includes("index.html") ||
event.request.url.includes("register.html") ||
event.request.url.includes("unregister.html") ||
event.request.url.includes("ping.html") ||
event.request.url.includes("xml.xml") ||
event.request.url.includes("csp-violate.sjs")) {
// Handle pass-through requests
event.respondWith(fetch(event.request));
} else if (event.request.url.includes("fetch.txt")) {
var body = event.request.context == "fetch" ?
"so fetch" : "so unfetch";
event.respondWith(new Response(body));
} else if (event.request.url.includes("img.jpg")) {
if (event.request.context == "image") {
event.respondWith(fetch("realimg.jpg"));
}
} else if (event.request.url.includes("responsive.jpg")) {
if (event.request.context == "imageset") {
event.respondWith(fetch("realimg.jpg"));
}
} else if (event.request.url.includes("audio.ogg")) {
if (event.request.context == "audio") {
event.respondWith(fetch("realaudio.ogg"));
}
} else if (event.request.url.includes("video.ogg")) {
if (event.request.context == "video") {
event.respondWith(fetch("realaudio.ogg"));
}
} else if (event.request.url.includes("beacon.sjs")) {
if (!event.request.url.includes("queryContext")) {
event.respondWith(fetch("beacon.sjs?" + event.request.context));
} else {
event.respondWith(fetch(event.request));
}
} else if (event.request.url.includes("csp-report.sjs")) {
respondToServiceWorker(event, "csp-report");
} else if (event.request.url.includes("embed")) {
respondToServiceWorker(event, "embed");
} else if (event.request.url.includes("object")) {
respondToServiceWorker(event, "object");
} else if (event.request.url.includes("font")) {
respondToServiceWorker(event, "font");
} else if (event.request.url.includes("iframe")) {
if (event.request.context == "iframe") {
event.respondWith(fetch("context_test.js"));
}
} else if (event.request.url.includes("frame")) {
if (event.request.context == "frame") {
event.respondWith(fetch("context_test.js"));
}
} else if (event.request.url.includes("newwindow")) {
respondToServiceWorker(event, "newwindow");
} else if (event.request.url.includes("ping")) {
respondToServiceWorker(event, "ping");
} else if (event.request.url.includes("plugin")) {
respondToServiceWorker(event, "plugin");
} else if (event.request.url.includes("script.js")) {
if (event.request.context == "script") {
event.respondWith(new Response(""));
}
} else if (event.request.url.includes("style.css")) {
respondToServiceWorker(event, "style");
} else if (event.request.url.includes("track")) {
respondToServiceWorker(event, "track");
} else if (event.request.url.includes("xhr")) {
if (event.request.context == "xmlhttprequest") {
event.respondWith(new Response(""));
}
} else if (event.request.url.includes("xslt")) {
respondToServiceWorker(event, "xslt");
} else if (event.request.url.includes("myworker")) {
if (event.request.context == "worker") {
event.respondWith(fetch("worker.js"));
}
} else if (event.request.url.includes("myparentworker")) {
if (event.request.context == "worker") {
event.respondWith(fetch("parentworker.js"));
}
} else if (event.request.url.includes("mysharedworker")) {
if (event.request.context == "sharedworker") {
event.respondWith(fetch("sharedworker.js"));
}
} else if (event.request.url.includes("myparentsharedworker")) {
if (event.request.context == "sharedworker") {
event.respondWith(fetch("parentsharedworker.js"));
}
} else if (event.request.url.includes("cache")) {
var cache;
var origContext = event.request.context;
event.respondWith(caches.open("cache")
.then(function(c) {
cache = c;
// Store the Request in the cache.
return cache.put(event.request, new Response("fake"));
}).then(function() {
// Read it back.
return cache.keys(event.request);
}).then(function(res) {
var req = res[0];
// Check to see if the context remained the same.
var success = req.context === origContext;
return clients.matchAll()
.then(function(clients) {
// Report it back to the main page.
clients.forEach(function(c) {
c.postMessage({data: "cache", success: success});
});
})}).then(function() {
// Cleanup.
return caches.delete("cache");
}).then(function() {
return new Response("ack");
}));
}
// Fail any request that we don't know about.
try {
event.respondWith(Promise.reject(event.request.url));
dump("Fetch event received invalid context value " + event.request.context +
" for " + event.request.url + "\n");
} catch(e) {
// Eat up the possible InvalidStateError exception that we may get if some
// code above has called respondWith too.
}
});
function respondToServiceWorker(event, data) {
event.respondWith(clients.matchAll()
.then(function(clients) {
clients.forEach(function(c) {
c.postMessage({data: data, context: event.request.context});
});
return new Response("ack");
}));
}

Просмотреть файл

@ -1,6 +0,0 @@
function handleRequest(request, response)
{
response.setHeader("Content-Security-Policy", "default-src 'none'; report-uri /tests/dom/serviceworkers/test/fetch/context/csp-report.sjs", false);
response.setHeader("Content-Type", "text/html", false);
response.write("<link rel=stylesheet href=style.css>");
}

Просмотреть файл

@ -1,422 +0,0 @@
<!DOCTYPE html>
<script>
var isAndroid = navigator.userAgent.includes("Android");
var isB2G = !isAndroid && /Mobile|Tablet/.test(navigator.userAgent);
function ok(v, msg) {
window.parent.postMessage({status: "ok", result: !!v, message: msg}, "*");
}
function is(a, b, msg) {
ok(a === b, msg + ", expected '" + b + "', got '" + a + "'");
}
function todo(v, msg) {
window.parent.postMessage({status: "todo", result: !!v, message: msg}, "*");
}
function finish() {
window.parent.postMessage({status: "done"}, "*");
}
function testFetch() {
return fetch("fetch.txt").then(function(r) {
return r.text();
}).then(function(body) {
is(body, "so fetch", "A fetch() Request should have the 'fetch' context");
});
}
function testImage() {
return new Promise(function(resolve, reject) {
var img = document.createElement("img");
img.src = "img.jpg";
// The service worker will respond with an existing image only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
img.onload = resolve;
img.onerror = reject;
});
}
function testImageSrcSet() {
return new Promise(function(resolve, reject) {
var img = document.createElement("img");
img.srcset = "responsive.jpg 100w";
// The service worker will respond with an existing image only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
img.onload = resolve;
img.onerror = reject;
});
}
function testPicture() {
return new Promise(function(resolve, reject) {
var pic = document.createElement("picture");
var img = document.createElement("img");
pic.appendChild(img);
img.src = "responsive.jpg?picture";
// The service worker will respond with an existing image only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
img.onload = resolve;
img.onerror = reject;
});
}
function testAudio() {
return new Promise(function(resolve, reject) {
var audio = document.createElement("audio");
audio.src = "audio.ogg";
audio.preload = "metadata";
// The service worker will respond with an existing audio only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
audio.onloadedmetadata = resolve;
audio.onerror = reject;
});
}
function testVideo() {
return new Promise(function(resolve, reject) {
var video = document.createElement("video");
video.src = "video.ogg";
video.preload = "metadata";
// The service worker will respond with an existing video only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
video.onloadedmetadata = resolve;
video.onerror = reject;
});
}
function testBeacon() {
ok(navigator.sendBeacon("beacon.sjs"), "Sending the beacon should succeed");
// query the context from beacon.sjs
return fetch("beacon.sjs?queryContext")
.then(function(r) {
return r.text();
}).then(function(body) {
is(body, "beacon", "The context for the intercepted beacon should be correct");
});
}
function testCSPReport() {
return new Promise(function(resolve, reject) {
var iframe = document.createElement("iframe");
iframe.src = "csp-violate.sjs";
document.documentElement.appendChild(iframe);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "csp-report") {
is(e.data.context, "cspreport", "Expected the cspreport context on a CSP violation report");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testEmbed() {
return Promise.resolve().then(function() {
todo(false, "<embed> tag is not currently intercepted. See Bug 1168676.");
});
return new Promise(function(resolve, reject) {
var embed = document.createElement("embed");
embed.src = "embed";
document.documentElement.appendChild(embed);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "embed") {
is(e.data.context, "embed", "Expected the object context on an embed");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testObject() {
return Promise.resolve().then(function() {
todo(false, "<object> tag is not currently intercepted. See Bug 1168676");
});
return new Promise(function(resolve, reject) {
var object = document.createElement("object");
object.data = "object";
document.documentElement.appendChild(object);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "object") {
is(e.data.context, "object", "Expected the object context on an object");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testFont() {
return new Promise(function(resolve, reject) {
var css = '@font-face { font-family: "sw-font"; src: url("font"); }';
css += '* { font-family: "sw-font"; }';
var style = document.createElement("style");
style.appendChild(document.createTextNode(css));
document.documentElement.appendChild(style);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "font") {
is(e.data.context, "font", "Expected the font context on an font");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testIFrame() {
return new Promise(function(resolve, reject) {
var iframe = document.createElement("iframe");
iframe.src = "iframe";
document.documentElement.appendChild(iframe);
// The service worker will respond with an existing document only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
iframe.onload = resolve;
iframe.onerror = reject;
});
}
function testFrame() {
return new Promise(function(resolve, reject) {
var frame = document.createElement("frame");
frame.src = "frame";
document.documentElement.appendChild(frame);
// The service worker will respond with an existing document only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
frame.onload = resolve;
frame.onerror = reject;
});
}
function testInternal() {
if (isB2G) {
// We can't open new windows on b2g, so skip this part of the test there.
return Promise.resolve();
}
return new Promise(function(resolve, reject) {
// Test this with a new window opened through script. There are of course
// other possible ways of testing this too.
var win = window.open("newwindow", "_blank", "width=100,height=100");
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "newwindow") {
is(e.data.context, "internal", "Expected the internal context on a newly opened window");
navigator.serviceWorker.removeEventListener("message", onMessage);
win.close();
resolve();
}
});
});
}
function testPing() {
return new Promise(function(resolve, reject) {
var iframe = document.createElement("iframe");
iframe.src = "ping.html";
document.documentElement.appendChild(iframe);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "ping") {
is(e.data.context, "ping", "Expected the ping context on an anchor ping");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testPlugin() {
return Promise.resolve().then(function() {
todo(false, "plugins are not currently intercepted. See Bug 1168676.");
});
var isMobile = /Mobile|Tablet/.test(navigator.userAgent);
if (isMobile || parent.isMulet()) {
// We can't use plugins on mobile, so skip this part of the test there.
return Promise.resolve();
}
return new Promise(function(resolve, reject) {
var embed = document.createElement("embed");
embed.type = "application/x-test";
embed.setAttribute("posturl", "plugin");
embed.setAttribute("postmode", "stream");
embed.setAttribute("streammode", "normal");
embed.setAttribute("src", "fetch.txt");
document.documentElement.appendChild(embed);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "plugin") {
is(e.data.context, "plugin", "Expected the plugin context on a request coming from a plugin");
navigator.serviceWorker.removeEventListener("message", onMessage);
// Without this, the test leaks in e10s!
embed.remove();
resolve();
}
});
});
}
function testScript() {
return new Promise(function(resolve, reject) {
var script = document.createElement("script");
script.src = "script.js";
document.documentElement.appendChild(script);
// The service worker will respond with an existing script only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
script.onload = resolve;
script.onerror = reject;
});
}
function testStyle() {
return new Promise(function(resolve, reject) {
var link = document.createElement("link");
link.rel = "stylesheet";
link.href = "style.css";
document.documentElement.appendChild(link);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "style") {
is(e.data.context, "style", "Expected the ComputedStyle on a request coming from a stylesheet");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testTrack() {
return new Promise(function(resolve, reject) {
var video = document.createElement("video");
var track = document.createElement("track");
track.src = "track";
video.appendChild(track);
document.documentElement.appendChild(video);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "track") {
is(e.data.context, "track", "Expected the track context on a request coming from a track");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
function testXHR() {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("get", "xhr", true);
xhr.send();
// The service worker will respond with an existing resource only if the
// Request has the correct context, otherwise the Promise will get
// rejected and the test will fail.
xhr.onload = resolve;
xhr.onerror = reject;
});
}
function testXSLT() {
return new Promise(function(resolve, reject) {
var iframe = document.createElement("iframe");
iframe.src = "xml.xml";
document.documentElement.appendChild(iframe);
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "xslt") {
is(e.data.context, "xslt", "Expected the xslt context on an XSLT stylesheet");
navigator.serviceWorker.removeEventListener("message", onMessage);
// Without this, the test leaks in e10s!
iframe.remove();
resolve();
}
});
});
}
function testWorker() {
return new Promise(function(resolve, reject) {
var worker = new Worker("myworker");
worker.onmessage = function(e) {
if (e.data == "ack") {
worker.terminate();
resolve();
}
};
worker.onerror = reject;
});
}
function testNestedWorker() {
return new Promise(function(resolve, reject) {
var worker = new Worker("myparentworker");
worker.onmessage = function(e) {
if (e.data == "ack") {
worker.terminate();
resolve();
}
};
worker.onerror = reject;
});
}
function testSharedWorker() {
return new Promise(function(resolve, reject) {
var worker = new SharedWorker("mysharedworker");
worker.port.start();
worker.port.onmessage = function(e) {
if (e.data == "ack") {
resolve();
}
};
worker.onerror = reject;
});
}
function testNestedWorkerInSharedWorker() {
return new Promise(function(resolve, reject) {
var worker = new SharedWorker("myparentsharedworker");
worker.port.start();
worker.port.onmessage = function(e) {
if (e.data == "ack") {
resolve();
}
};
worker.onerror = reject;
});
}
function testCache() {
return new Promise(function(resolve, reject) {
// Issue an XHR that will be intercepted by the SW in order to start off
// the test with a RequestContext value that is not the default ("fetch").
// This needs to run inside a fetch event handler because synthesized
// RequestContext objects can only have the "fetch" context, and we'd
// prefer to test the more general case of some other RequestContext value.
var xhr = new XMLHttpRequest();
xhr.open("get", "cache", true);
xhr.send();
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.data == "cache") {
ok(e.data.success, "The RequestContext can be persisted in the cache.");
navigator.serviceWorker.removeEventListener("message", onMessage);
resolve();
}
});
});
}
var testName = location.search.substr(1);
window[testName]().then(function() {
finish();
}, function(e) {
ok(false, "A promise was rejected: " + e);
finish();
});
</script>

Просмотреть файл

@ -1,8 +0,0 @@
onconnect = function(e) {
e.ports[0].start();
var worker = new Worker("myworker?shared");
worker.onmessage = function(e2) {
e.ports[0].postMessage(e2.data);
self.close();
};
};

Просмотреть файл

@ -1,4 +0,0 @@
var worker = new Worker("myworker");
worker.onmessage = function(e) {
postMessage(e.data);
};

Просмотреть файл

@ -1,7 +0,0 @@
<!DOCTYPE html>
<script>
onload = function() {
document.querySelector("a").click();
};
</script>
<a ping="ping" href="fetch.txt">link</a>

Двоичный файл не отображается.

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.5 KiB

Просмотреть файл

@ -1,14 +0,0 @@
<!DOCTYPE html>
<script>
function ok(v, msg) {
window.parent.postMessage({status: "ok", result: !!v, message: msg}, "*");
}
function done(reg) {
ok(reg.active, "The active worker should be available.");
window.parent.postMessage({status: "registrationdone"}, "*");
}
navigator.serviceWorker.ready.then(done);
navigator.serviceWorker.register("context_test.js", {scope: "."});
</script>

Просмотреть файл

@ -1,5 +0,0 @@
onconnect = function(e) {
e.ports[0].start();
e.ports[0].postMessage("ack");
self.close();
};

Просмотреть файл

@ -1,12 +0,0 @@
<!DOCTYPE html>
<script>
navigator.serviceWorker.getRegistration(".").then(function(registration) {
registration.unregister().then(function(success) {
if (success) {
window.parent.postMessage({status: "unregistrationdone"}, "*");
}
}, function(e) {
dump("Unregistering the SW failed with " + e + "\n");
});
});
</script>

Просмотреть файл

@ -1 +0,0 @@
postMessage("ack");

Просмотреть файл

@ -1,3 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xslt"?>
<root/>

Просмотреть файл

@ -25,11 +25,11 @@
}
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
if (e.data.context === "object") {
if (e.data.destination === "object") {
ok(false, "<object> should not be intercepted");
} else if (e.data.context === "embed") {
} else if (e.data.destination === "embed") {
ok(false, "<embed> should not be intercepted");
} else if (e.data.context === "fetch" && e.data.resource === "foo.txt") {
} else if (e.data.destination === "" && e.data.resource === "foo.txt") {
navigator.serviceWorker.removeEventListener("message", onMessage);
finish();
}

Просмотреть файл

@ -5,7 +5,7 @@ self.addEventListener("fetch", function(event) {
.then(clients => {
clients.forEach(client => {
if (client.url.includes("plugins.html")) {
client.postMessage({context: event.request.context,
client.postMessage({destination: event.request.destination,
resource: resource});
}
});

Просмотреть файл

@ -28,20 +28,6 @@ support-files =
fetch/deliver-gzip.sjs
fetch/redirect.sjs
fetch/real-file.txt
fetch/context/index.html
fetch/context/register.html
fetch/context/unregister.html
fetch/context/context_test.js
fetch/context/realimg.jpg
fetch/context/realaudio.ogg
fetch/context/beacon.sjs
fetch/context/csp-violate.sjs
fetch/context/ping.html
fetch/context/worker.js
fetch/context/parentworker.js
fetch/context/sharedworker.js
fetch/context/parentsharedworker.js
fetch/context/xml.xml
fetch/cookie/cookie_test.js
fetch/cookie/register.html
fetch/cookie/unregister.html
@ -188,7 +174,6 @@ support-files =
test_eval_allowed.html^headers^
opaque_intercept_worker.js
notify_loaded.js
test_request_context.js
fetch/plugin/worker.js
fetch/plugin/plugins.html
eventsource/*
@ -299,32 +284,6 @@ tags = openwindow
[test_post_message_source.html]
[test_register_base.html]
[test_register_https_in_http.html]
[test_request_context_audio.html]
[test_request_context_beacon.html]
[test_request_context_cache.html]
[test_request_context_cspreport.html]
[test_request_context_embed.html]
[test_request_context_fetch.html]
[test_request_context_font.html]
[test_request_context_frame.html]
[test_request_context_iframe.html]
[test_request_context_image.html]
[test_request_context_imagesrcset.html]
[test_request_context_internal.html]
[test_request_context_nestedworker.html]
[test_request_context_nestedworkerinsharedworker.html]
[test_request_context_object.html]
[test_request_context_picture.html]
[test_request_context_ping.html]
[test_request_context_plugin.html]
[test_request_context_script.html]
[test_request_context_sharedworker.html]
[test_request_context_style.html]
[test_request_context_track.html]
[test_request_context_video.html]
[test_request_context_worker.html]
[test_request_context_xhr.html]
[test_request_context_xslt.html]
[test_sandbox_intercept.html]
[test_scopes.html]
[test_script_loader_intercepted_js_cache.html]

Просмотреть файл

@ -65,7 +65,6 @@
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({"set": [
["dom.requestcontext.enabled", true],
["dom.serviceWorkers.exemptFromPerDomainMax", true],
["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],

Просмотреть файл

@ -1,72 +0,0 @@
// Copied from /dom/plugins/test/mochitest/utils.js
function getTestPlugin(pluginName) {
var ph = SpecialPowers.Cc["@mozilla.org/plugin/host;1"]
.getService(SpecialPowers.Ci.nsIPluginHost);
var tags = ph.getPluginTags();
var name = pluginName || "Test Plug-in";
for (var tag of tags) {
if (tag.name == name) {
return tag;
}
}
ok(false, "Could not find plugin tag with plugin name '" + name + "'");
return null;
}
function setTestPluginEnabledState(newEnabledState, pluginName) {
var oldEnabledState = SpecialPowers.setTestPluginEnabledState(newEnabledState, pluginName);
if (!oldEnabledState) {
return;
}
var plugin = getTestPlugin(pluginName);
// Run a nested event loop to wait for the preference change to
// propagate to the child. Yuck!
SpecialPowers.Services.tm.spinEventLoopUntil(() => plugin.enabledState == newEnabledState);
SimpleTest.registerCleanupFunction(function() {
SpecialPowers.setTestPluginEnabledState(oldEnabledState, pluginName);
});
}
setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
function isMulet() {
try {
return SpecialPowers.getBoolPref("b2g.is_mulet");
} catch(e) {
return false;
}
}
var iframe;
function runTest() {
iframe = document.querySelector("iframe");
iframe.src = "/tests/dom/serviceworkers/test/fetch/context/register.html";
window.onmessage = function(e) {
if (e.data.status == "ok") {
ok(e.data.result, e.data.message);
} else if (e.data.status == "todo") {
todo(e.data.result, e.data.message);
} else if (e.data.status == "registrationdone") {
iframe.src = "/tests/dom/serviceworkers/test/fetch/context/index.html?" + gTest;
} else if (e.data.status == "done") {
iframe.src = "/tests/dom/serviceworkers/test/fetch/context/unregister.html";
} else if (e.data.status == "unregistrationdone") {
window.onmessage = null;
ok(true, "Test finished successfully");
SimpleTest.finish();
}
};
}
SimpleTest.waitForExplicitFinish();
onload = function() {
SpecialPowers.pushPrefEnv({"set": [
["beacon.enabled", true],
["browser.send_pings", true],
["browser.send_pings.max_per_link", -1],
["dom.caches.enabled", true],
["dom.requestcontext.enabled", true],
["dom.serviceWorkers.exemptFromPerDomainMax", true],
["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],
]}, runTest);
};

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testAudio";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testBeacon";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testCache";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testCSPReport";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testEmbed";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testFetch";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testFont";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testFrame";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testIFrame";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testImage";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testImageSrcSet";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testInternal";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testNestedWorker";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testNestedWorkerInSharedWorker";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testObject";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testPicture";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testPing";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testPlugin";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testScript";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testSharedWorker";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testStyle";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testTrack";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testVideo";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testWorker";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testXHR";
</script>
</body>
</html>

Просмотреть файл

@ -1,19 +0,0 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1121157 - Test that Request objects passed to FetchEvent have the correct context</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="test_request_context.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<iframe></iframe>
<script type="text/javascript">
var gTest = "testXSLT";
</script>
</body>
</html>

Просмотреть файл

@ -14,8 +14,7 @@ function testScript(script) {
function setupPrefs() {
return new Promise(function(resolve, reject) {
SpecialPowers.pushPrefEnv({
"set": [["dom.requestcontext.enabled", true],
["dom.serviceWorkers.enabled", true],
"set": [["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],
["dom.serviceWorkers.idle_timeout", 0],
["dom.serviceWorkers.exemptFromPerDomainMax", true]]

Просмотреть файл

@ -3,7 +3,7 @@ function testDefaultCtor() {
is(req.method, "GET", "Default Request method is GET");
ok(req.headers instanceof Headers, "Request should have non-null Headers object");
is(req.url, self.location.href, "URL should be resolved with entry settings object's API base URL");
is(req.context, "fetch", "Default context is fetch.");
is(req.destination, "", "Default destination is the empty string.");
is(req.referrer, "about:client", "Default referrer is `client` which serializes to about:client.");
is(req.mode, "cors", "Request mode for string input is cors");
is(req.credentials, "omit", "Default Request credentials is omit");
@ -13,7 +13,7 @@ function testDefaultCtor() {
is(req.method, "GET", "Default Request method is GET");
ok(req.headers instanceof Headers, "Request should have non-null Headers object");
is(req.url, self.location.href, "URL should be resolved with entry settings object's API base URL");
is(req.context, "fetch", "Default context is fetch.");
is(req.destination, "", "Default destination is the empty string.");
is(req.referrer, "about:client", "Default referrer is `client` which serializes to about:client.");
is(req.mode, "cors", "Request mode string input is cors");
is(req.credentials, "omit", "Default Request credentials is omit");

Просмотреть файл

@ -5764,9 +5764,6 @@ pref("memory.report_concurrency", 10);
// Add Mozilla AudioChannel APIs.
pref("media.useAudioChannelAPI", false);
// Expose Request.context. Currently disabled since the spec is in flux.
pref("dom.requestcontext.enabled", false);
pref("toolkit.pageThumbs.screenSizeDivisor", 7);
pref("toolkit.pageThumbs.minWidth", 0);
pref("toolkit.pageThumbs.minHeight", 0);