Merge mozilla-inbound to mozilla-central a=merge
authorDorel Luca <dluca@mozilla.com>
Wed, 18 Apr 2018 19:57:11 +0300
changeset 467814 6480454995dae4a44c86887f4ae01dc998edb36f
parent 467809 697d0f7076eb03cc8a5f18856616d80e5ebf9a55 (current diff)
parent 467813 06911984ea8738053b829ee2f396a598999159d5 (diff)
child 467815 0e45c13b34e815cb42a9f08bb44142d1a81e186e
child 467852 83b06b648c77603202f508e14ba513940483b999
child 467884 b22947b63d55f1f6764e7a7d78f2a52dff0310f9
push id9165
push userasasaki@mozilla.com
push dateThu, 26 Apr 2018 21:04:54 +0000
treeherdermozilla-beta@064c3804de2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-inbound to mozilla-central a=merge
testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.html.ini
testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.sharedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.html.ini
testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.sharedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/general.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/general.html.ini
testing/web-platform/meta/streams/readable-byte-streams/general.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-byte-streams/general.sharedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/properties.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-byte-streams/properties.html.ini
testing/web-platform/meta/streams/readable-byte-streams/properties.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-byte-streams/properties.sharedworker.html.ini
new file mode 100644
--- /dev/null
+++ b/dom/security/test/general/file_same_site_cookies_about.sjs
@@ -0,0 +1,61 @@
+// Custom *.sjs file specifically for the needs of Bug 1454721
+
+// small red image
+const IMG_BYTES = atob(
+  "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12" +
+  "P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");
+
+const IFRAME_INC =
+  `<iframe src='http://mochi.test:8888/tests/dom/security/test/general/file_same_site_cookies_about_inclusion.html'></iframe>`;
+
+function handleRequest(request, response)
+{
+  // avoid confusing cache behaviors
+  response.setHeader("Cache-Control", "no-cache", false);
+
+  // using startsWith and discard the math random
+  if (request.queryString.startsWith("setSameSiteCookie")) {
+    response.setHeader("Set-Cookie", "myKey=mySameSiteAboutCookie; samesite=strict", true);
+    response.setHeader("Content-Type", "image/png");
+    response.write(IMG_BYTES);
+    return;
+  }
+
+  // navigation tests
+  if (request.queryString === "loadsrcdocframeNav") {
+    let FRAME = `
+      <iframe srcdoc="foo"
+       onload="document.location='http://mochi.test:8888/tests/dom/security/test/general/file_same_site_cookies_about_navigation.html'">
+      </iframe>`;
+    response.write(FRAME);
+    return;
+  }
+
+  if (request.queryString === "loadblankframeNav") {
+    let FRAME = `
+      <iframe src="about:blank"
+       onload="document.location='http://mochi.test:8888/tests/dom/security/test/general/file_same_site_cookies_about_navigation.html'">
+      </iframe>`;
+    response.write(FRAME);
+    return;
+  }
+
+  // inclusion tets
+  if (request.queryString === "loadsrcdocframeInc") {
+    response.write("<iframe srcdoc=\"" + IFRAME_INC + "\"></iframe>");
+    return;
+  }
+
+  if (request.queryString === "loadblankframeInc") {
+    let FRAME = `
+      <iframe id="blankframe" src="about:blank"></iframe>
+      <script>
+        document.getElementById("blankframe").contentDocument.write(\"` + IFRAME_INC +`\");
+      <\/script>`;
+    response.write(FRAME);
+    return;
+  }
+
+  // we should never get here, but just in case return something unexpected
+  response.write("D'oh");
+}
new file mode 100644
--- /dev/null
+++ b/dom/security/test/general/file_same_site_cookies_about_inclusion.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<body>
+  <script type="application/javascript">
+    window.parent.parent.parent.postMessage({result: document.cookie}, '*');
+  </script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/dom/security/test/general/file_same_site_cookies_about_navigation.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<body>
+  <script type="application/javascript">
+    window.parent.postMessage({result: document.cookie}, '*');
+  </script>
+</body>
+</html>
--- a/dom/security/test/general/mochitest.ini
+++ b/dom/security/test/general/mochitest.ini
@@ -13,16 +13,19 @@ support-files =
   file_same_site_cookies_cross_origin_context.sjs
   file_same_site_cookies_from_script.sjs
   file_same_site_cookies_redirect.sjs
   file_same_site_cookies_toplevel_set_cookie.sjs
   file_same_site_cookies_blob_iframe_navigation.html
   file_same_site_cookies_blob_iframe_inclusion.html
   file_same_site_cookies_iframe.html
   file_same_site_cookies_iframe.sjs
+  file_same_site_cookies_about_navigation.html
+  file_same_site_cookies_about_inclusion.html
+  file_same_site_cookies_about.sjs
 
 [test_contentpolicytype_targeted_link_iframe.html]
 [test_nosniff.html]
 [test_block_script_wrong_mime.html]
 [test_block_toplevel_data_navigation.html]
 skip-if = toolkit == 'android' || webrender # intermittent failure; bug 1424752 for webrender
 [test_block_toplevel_data_img_navigation.html]
 skip-if = toolkit == 'android' # intermittent failure
@@ -33,8 +36,9 @@ skip-if = toolkit == 'android'
 [test_block_subresource_redir_to_data.html]
 [test_same_site_cookies_subrequest.html]
 [test_same_site_cookies_toplevel_nav.html]
 [test_same_site_cookies_cross_origin_context.html]
 [test_same_site_cookies_from_script.html]
 [test_same_site_cookies_redirect.html]
 [test_same_site_cookies_toplevel_set_cookie.html]
 [test_same_site_cookies_iframe.html]
+[test_same_site_cookies_about.html]
new file mode 100644
--- /dev/null
+++ b/dom/security/test/general/test_same_site_cookies_about.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Bug 1454721 - Add same-site cookie test for about:blank and about:srcdoc</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<img id="cookieImage">
+<iframe id="testframe"></iframe>
+
+<script class="testbody" type="text/javascript">
+
+/*
+ * Description of the test:
+ * 1) We load an image from http://mochi.test which sets a same site cookie
+ * 2) We then load the following iframes:
+ *    (a) cross-origin iframe
+ *    (b) same-origin iframe
+ *    which both load a:
+ *     * nested about:srcdoc frame and nested about:blank frame
+ *     * navigate about:srcdoc frame and navigate about:blank frame
+ * 3) We evaluate that the same-site cookie is available in the same-origin case.
+ */
+
+SimpleTest.waitForExplicitFinish();
+
+const SAME_ORIGIN = "http://mochi.test:8888/"
+const CROSS_ORIGIN = "http://example.com/";
+const PATH = "tests/dom/security/test/general/file_same_site_cookies_about.sjs";
+
+let curTest = 0;
+
+var tests = [
+  // NAVIGATION TESTS
+  {
+    description: "nested same origin iframe about:srcdoc navigation [mochi.test -> mochi.test -> about:srcdoc -> mochi.test]",
+    frameSRC: SAME_ORIGIN + PATH + "?loadsrcdocframeNav",
+    result: "myKey=mySameSiteAboutCookie", // cookie should be set for baseline test
+  },
+  {
+    description: "nested cross origin iframe about:srcdoc navigation [mochi.test -> example.com -> about:srcdoc -> mochi.test]",
+    frameSRC: CROSS_ORIGIN + PATH + "?loadsrcdocframeNav",
+    result: "", // no same-site cookie should be available
+  },
+  {
+    description: "nested same origin iframe about:blank navigation [mochi.test -> mochi.test -> about:blank -> mochi.test]",
+    frameSRC: SAME_ORIGIN + PATH + "?loadblankframeNav",
+    result: "myKey=mySameSiteAboutCookie", // cookie should be set for baseline test
+  },
+  {
+    description: "nested cross origin iframe about:blank navigation [mochi.test -> example.com -> about:blank -> mochi.test]",
+    frameSRC: CROSS_ORIGIN + PATH + "?loadblankframeNav",
+    result: "", // no same-site cookie should be available
+  },
+  // INCLUSION TESTS
+  {
+    description: "nested same origin iframe about:srcdoc inclusion [mochi.test -> mochi.test -> about:srcdoc -> mochi.test]",
+    frameSRC: SAME_ORIGIN + PATH + "?loadsrcdocframeInc",
+    result: "myKey=mySameSiteAboutCookie", // cookie should be set for baseline test
+  },
+  {
+    description: "nested cross origin iframe about:srcdoc inclusion [mochi.test -> example.com -> about:srcdoc -> mochi.test]",
+    frameSRC: CROSS_ORIGIN + PATH + "?loadsrcdocframeInc",
+    result: "", // no same-site cookie should be available
+  },
+  {
+    description: "nested same origin iframe about:blank inclusion [mochi.test -> mochi.test -> about:blank -> mochi.test]",
+    frameSRC: SAME_ORIGIN + PATH + "?loadblankframeInc",
+    result: "myKey=mySameSiteAboutCookie", // cookie should be set for baseline test
+  },
+  {
+    description: "nested cross origin iframe about:blank inclusion [mochi.test -> example.com -> about:blank -> mochi.test]",
+    frameSRC: CROSS_ORIGIN + PATH + "?loadblankframeInc",
+    result: "", // no same-site cookie should be available
+  },
+];
+
+window.addEventListener("message", receiveMessage);
+function receiveMessage(event) {
+  is(event.data.result, tests[curTest].result, tests[curTest].description);
+  curTest += 1;
+
+  // // lets see if we ran all the tests
+  if (curTest == tests.length) {
+    window.removeEventListener("message", receiveMessage);
+    SimpleTest.finish();
+    return;
+  }
+  // otherwise it's time to run the next test
+  setCookieAndInitTest();
+}
+
+function setupQueryResultAndRunTest() {
+  let testframe = document.getElementById("testframe");
+  testframe.src = tests[curTest].frameSRC;
+}
+
+function setCookieAndInitTest() {
+  var cookieImage = document.getElementById("cookieImage");
+  cookieImage.onload = function() {
+    ok(true, "trying to set cookie for test (" + tests[curTest].description + ")");
+    setupQueryResultAndRunTest();
+  }
+  cookieImage.onerror = function() {
+    ok(false, "could not load image for test (" + tests[curTest].description + ")");
+  }
+  // appending math.random to avoid any unexpected caching behavior
+  cookieImage.src = SAME_ORIGIN + PATH + "?setSameSiteCookie" + Math.random();
+}
+
+// fire up the test
+setCookieAndInitTest();
+
+</script>
+</body>
+</html>
--- a/js/src/jsnum.cpp
+++ b/js/src/jsnum.cpp
@@ -51,16 +51,18 @@ using mozilla::PositiveInfinity;
 using mozilla::RangedPtr;
 
 using JS::AutoCheckCannotGC;
 using JS::GenericNaN;
 using JS::ToInt8;
 using JS::ToInt16;
 using JS::ToInt32;
 using JS::ToInt64;
+using JS::ToUint8;
+using JS::ToUint16;
 using JS::ToUint32;
 using JS::ToUint64;
 
 static bool
 EnsureDtoaState(JSContext* cx)
 {
     if (!cx->dtoaState) {
         cx->dtoaState = NewDtoaState();
@@ -1629,17 +1631,17 @@ js::ToUint8Slow(JSContext *cx, const Han
     MOZ_ASSERT(!v.isInt32());
     double d;
     if (v.isDouble()) {
         d = v.toDouble();
     } else {
         if (!ToNumberSlow(cx, v, &d))
             return false;
     }
-    *out = ToInt8(d);
+    *out = ToUint8(d);
     return true;
 }
 
 /*
  * Convert a value to an int16_t, according to the WebIDL rules for short
  * conversion. Return converted value in *out on success, false on failure.
  */
 JS_PUBLIC_API(bool)
@@ -1730,36 +1732,17 @@ js::ToUint16Slow(JSContext* cx, const Ha
 {
     MOZ_ASSERT(!v.isInt32());
     double d;
     if (v.isDouble()) {
         d = v.toDouble();
     } else if (!ToNumberSlow(cx, v, &d)) {
         return false;
     }
-
-    if (d == 0 || !mozilla::IsFinite(d)) {
-        *out = 0;
-        return true;
-    }
-
-    uint16_t u = (uint16_t) d;
-    if ((double)u == d) {
-        *out = u;
-        return true;
-    }
-
-    bool neg = (d < 0);
-    d = floor(neg ? -d : d);
-    d = neg ? -d : d;
-    unsigned m = JS_BIT(16);
-    d = fmod(d, (double) m);
-    if (d < 0)
-        d += m;
-    *out = (uint16_t) d;
+    *out = ToUint16(d);
     return true;
 }
 
 // ES2017 draft 7.1.17 ToIndex
 bool
 js::ToIndex(JSContext* cx, JS::HandleValue v, const unsigned errorNumber, uint64_t* index)
 {
     // Step 1.
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-byte-streams/__dir__.ini
@@ -0,0 +1,1 @@
+disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1454655
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.dedicatedworker.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[construct-byob-request.dedicatedworker.html]
-  [ReadableStreamBYOBRequest constructor should throw when passed a real ReadableByteStreamController and a real view]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[construct-byob-request.html]
-  [ReadableStreamBYOBRequest constructor should throw when passed a real ReadableByteStreamController and a real view]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.serviceworker.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[construct-byob-request.serviceworker.https.html]
-  [ReadableStreamBYOBRequest constructor should throw when passed a real ReadableByteStreamController and a real view]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/construct-byob-request.sharedworker.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[construct-byob-request.sharedworker.html]
-  [ReadableStreamBYOBRequest constructor should throw when passed a real ReadableByteStreamController and a real view]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.dedicatedworker.html.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-[detached-buffers.dedicatedworker.html]
-  disabled:
-    if debug and (os == "win"): https://bugzilla.mozilla.org/show_bug.cgi?id=1420076
-  expected:
-    if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
-    if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if debug and not e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-  [ReadableStream with byte source: read()ing from a closed stream still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: read()ing from a stream with queued chunks still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: reading into an already-detached buffer rejects]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the readable state)]
-    expected: FAIL
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the closed state)]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.html.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-[detached-buffers.html]
-  disabled:
-    if debug and (os == "win"): https://bugzilla.mozilla.org/show_bug.cgi?id=1420076
-  expected:
-    if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
-    if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if debug and not e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-  [ReadableStream with byte source: read()ing from a closed stream still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: read()ing from a stream with queued chunks still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: reading into an already-detached buffer rejects]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the readable state)]
-    expected: FAIL
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the closed state)]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.serviceworker.https.html.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-[detached-buffers.serviceworker.https.html]
-  disabled:
-    if debug and (os == "win"): https://bugzilla.mozilla.org/show_bug.cgi?id=1420076
-  expected:
-    if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
-    if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if debug and not e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-  [ReadableStream with byte source: read()ing from a closed stream still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: read()ing from a stream with queued chunks still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: reading into an already-detached buffer rejects]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the readable state)]
-    expected: FAIL
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the closed state)]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/detached-buffers.sharedworker.html.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-[detached-buffers.sharedworker.html]
-  disabled:
-    if debug and (os == "win"): https://bugzilla.mozilla.org/show_bug.cgi?id=1420076
-  expected:
-    if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
-    if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if debug and not e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
-    if debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
-    if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
-    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
-  [ReadableStream with byte source: read()ing from a closed stream still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: read()ing from a stream with queued chunks still transfers the buffer]
-    expected: FAIL
-
-  [ReadableStream with byte source: reading into an already-detached buffer rejects]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the readable state)]
-    expected: FAIL
-
-  [ReadableStream with byte source: respondWithNewView() throws if the supplied view's buffer has been detached (in the closed state)]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/general.dedicatedworker.html.ini
+++ /dev/null
@@ -1,122 +0,0 @@
-[general.dedicatedworker.html]
-  expected: TIMEOUT
-  [ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"]
-    expected: FAIL
-
-  [ReadableStream with byte source: pull() function is not callable]
-    expected: FAIL
-
-  [ReadableStream with byte source: autoAllocateChunkSize]
-    expected: FAIL
-
-  [ReadableStream with byte source: Respond to multiple pull() by separate enqueue()]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: read(view), then respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with too big value]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: getReader(), read(view), then cancel()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: cancel() with partially filled pending pull() request]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() and close() in pull()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() twice, then enqueue() twice]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), close() and respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), big enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view) and multiple enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing undefined as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with zero-length view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing an empty object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction]
-    expected: NOTRUN
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/general.html.ini
+++ /dev/null
@@ -1,122 +0,0 @@
-[general.html]
-  expected: TIMEOUT
-  [ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"]
-    expected: FAIL
-
-  [ReadableStream with byte source: pull() function is not callable]
-    expected: FAIL
-
-  [ReadableStream with byte source: autoAllocateChunkSize]
-    expected: FAIL
-
-  [ReadableStream with byte source: Respond to multiple pull() by separate enqueue()]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: read(view), then respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with too big value]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: getReader(), read(view), then cancel()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: cancel() with partially filled pending pull() request]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() and close() in pull()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() twice, then enqueue() twice]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), close() and respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), big enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view) and multiple enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing undefined as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with zero-length view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing an empty object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction]
-    expected: NOTRUN
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/general.serviceworker.https.html.ini
+++ /dev/null
@@ -1,122 +0,0 @@
-[general.serviceworker.https.html]
-  expected: TIMEOUT
-  [ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"]
-    expected: FAIL
-
-  [ReadableStream with byte source: pull() function is not callable]
-    expected: FAIL
-
-  [ReadableStream with byte source: autoAllocateChunkSize]
-    expected: FAIL
-
-  [ReadableStream with byte source: Respond to multiple pull() by separate enqueue()]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: read(view), then respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with too big value]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: getReader(), read(view), then cancel()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: cancel() with partially filled pending pull() request]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() and close() in pull()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() twice, then enqueue() twice]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), close() and respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), big enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view) and multiple enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing undefined as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with zero-length view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing an empty object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction]
-    expected: NOTRUN
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/general.sharedworker.html.ini
+++ /dev/null
@@ -1,122 +0,0 @@
-[general.sharedworker.html]
-  expected: TIMEOUT
-  [ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"]
-    expected: FAIL
-
-  [ReadableStream with byte source: pull() function is not callable]
-    expected: FAIL
-
-  [ReadableStream with byte source: autoAllocateChunkSize]
-    expected: FAIL
-
-  [ReadableStream with byte source: Respond to multiple pull() by separate enqueue()]
-    expected: TIMEOUT
-
-  [ReadableStream with byte source: read(view), then respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() with too big value]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: getReader(), read(view), then cancel()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: cancel() with partially filled pending pull() request]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then respond() and close() in pull()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() twice, then enqueue() twice]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), close() and respond()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view), big enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Multiple read(view) and multiple enqueue()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing undefined as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with zero-length view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) with passing an empty object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read() on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view) on an errored stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: read(view), then error()]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it]
-    expected: NOTRUN
-
-  [ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction]
-    expected: NOTRUN
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/properties.dedicatedworker.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[properties.dedicatedworker.html]
-  [ReadableStreamBYOBRequest instances should have the correct list of properties]
-    expected: FAIL
-
-  [ReadableByteStreamController instances should have the correct list of properties]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/properties.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[properties.html]
-  [ReadableStreamBYOBRequest instances should have the correct list of properties]
-    expected: FAIL
-
-  [ReadableByteStreamController instances should have the correct list of properties]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/properties.serviceworker.https.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[properties.serviceworker.https.html]
-  [ReadableStreamBYOBRequest instances should have the correct list of properties]
-    expected: FAIL
-
-  [ReadableByteStreamController instances should have the correct list of properties]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-byte-streams/properties.sharedworker.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[properties.sharedworker.html]
-  [ReadableStreamBYOBRequest instances should have the correct list of properties]
-    expected: FAIL
-
-  [ReadableByteStreamController instances should have the correct list of properties]
-    expected: FAIL
-