diff --git a/devtools/client/debugger/new/README.mozilla b/devtools/client/debugger/new/README.mozilla
index ada264fb039c..579cda2c18e9 100644
--- a/devtools/client/debugger/new/README.mozilla
+++ b/devtools/client/debugger/new/README.mozilla
@@ -1,9 +1,9 @@
This is the debugger.html project output.
See https://github.com/devtools-html/debugger.html
-Version 123
+Version 124
-Comparison: https://github.com/devtools-html/debugger.html/compare/release-122...release-123
+Comparison: https://github.com/devtools-html/debugger.html/compare/release-123...release-124
Packages:
- babel-plugin-transform-es2015-modules-commonjs @6.26.2
diff --git a/devtools/client/debugger/new/dist/debugger.css b/devtools/client/debugger/new/dist/debugger.css
index ba3c4100d1dd..ad278b31a95f 100644
--- a/devtools/client/debugger/new/dist/debugger.css
+++ b/devtools/client/debugger/new/dist/debugger.css
@@ -1075,6 +1075,10 @@ html[dir="rtl"] .managed-tree .tree .node > div {
background: var(--theme-icon-color);
mask-size: 100%;
}
+
+.img.arrow.arrow.expanded {
+ transform: rotate(0deg);
+}
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at . */
@@ -2331,10 +2335,6 @@ menuseparator {
color: inherit;
}
-.sources-list .tree .img.arrow.expanded {
- transform: rotate(0deg);
-}
-
.theme-dark .source-list .tree .node.focused {
background-color: var(--theme-tab-toolbar-background);
}
@@ -3761,8 +3761,8 @@ html[dir="rtl"] .breakpoints-list .breakpoint .breakpoint-line {
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at . */
-.frames [role="list"] .frames-group .group,
-.frames [role="list"] .frames-group .group .location {
+.frames ul .frames-group .group,
+.frames ul .frames-group .group .location {
font-weight: 500;
cursor: default;
/*
@@ -3773,30 +3773,25 @@ html[dir="rtl"] .breakpoints-list .breakpoint .breakpoint-line {
direction: ltr;
}
-.frames [role="list"] .frames-group.expanded .group,
-.frames [role="list"] .frames-group.expanded .group .location {
+.frames ul .frames-group.expanded .group,
+.frames ul .frames-group.expanded .group .location {
color: var(--theme-highlight-blue);
}
-.frames [role="list"] .frames-group.expanded .react path {
+.frames ul .frames-group.expanded .react path {
fill: var(--theme-highlight-blue);
}
-.frames [role="list"] .frames-group .frames-list [role="listitem"] {
+.frames ul .frames-group .frames-list li {
padding-left: 30px;
}
-.frames [role="list"] .frames-group .frames-list {
+.frames ul .frames-group .frames-list {
border-top: 1px solid var(--theme-splitter-color);
border-bottom: 1px solid var(--theme-splitter-color);
}
-/* We don't want to display those as flex since only the name is displayed */
-.frames [role="list"] .frames-group .frames-list [role="listitem"] {
- display: block;
-}
-
-.frames [role="list"] .frames-group.expanded .badge {
+.frames ul .frames-group.expanded .badge {
color: var(--theme-highlight-blue);
}
@@ -3862,7 +3857,7 @@ html[dir="rtl"] .breakpoints-list .breakpoint .breakpoint-line {
.frames [role="list"] {
list-style: none;
- margin: 0;
+ margin-top: 4px;
padding: 0;
}
@@ -3964,7 +3959,6 @@ html[dir="rtl"] .breakpoints-list .breakpoint .breakpoint-line {
mask-size: 100%;
display: inline-block;
width: 12px;
- margin-inline-start: 4px;
}
:root.theme-dark .annotation-logo:not(.angular) svg path {
@@ -4624,6 +4618,13 @@ html .welcomebox .toggle-button-end.collapsed {
user-select: none;
}
+.source-header .command-bar {
+ flex: initial;
+ flex-shrink: 0;
+ border-bottom: 0;
+ border-inline-start: 1px solid var(--theme-splitter-color);
+}
+
.source-tabs {
max-width: calc(100% - 80px);
align-self: flex-start;
@@ -4652,7 +4653,8 @@ html .welcomebox .toggle-button-end.collapsed {
width: 100%;
height: 2px;
background-color: var(--tab-line-color, transparent);
- transition: transform 250ms var(--animation-curve), opacity 250ms var(--animation-curve);
+ transition: transform 250ms var(--animation-curve),
+ opacity 250ms var(--animation-curve);
opacity: 0;
transform: scaleX(0);
}
diff --git a/devtools/client/debugger/new/dist/parser-worker.js b/devtools/client/debugger/new/dist/parser-worker.js
index af68c25bc3f0..a89dbfb00756 100644
--- a/devtools/client/debugger/new/dist/parser-worker.js
+++ b/devtools/client/debugger/new/dist/parser-worker.js
@@ -20759,8 +20759,6 @@ var _types = __webpack_require__(2268);
var t = _interopRequireWildcard(_types);
-var _devtoolsSourceMap = __webpack_require__(3646);
-
var _getFunctionName = __webpack_require__(1621);
var _getFunctionName2 = _interopRequireDefault(_getFunctionName);
@@ -20795,6 +20793,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
// Location information about the expression immediartely surrounding a
// given binding reference.
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at . */
+
+function isGeneratedId(id) {
+ return !/\/originalSource/.test(id);
+}
+
function parseSourceScopes(sourceId) {
const ast = (0, _ast.getAst)(sourceId);
if ((0, _isEmpty2.default)(ast)) {
@@ -20802,9 +20808,7 @@ function parseSourceScopes(sourceId) {
}
return buildScopeList(ast, sourceId);
-} /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
+}
function buildScopeList(ast, sourceId) {
const { global, lexical } = createGlobalScope(ast, sourceId);
@@ -20836,7 +20840,7 @@ function buildScopeList(ast, sourceId) {
// TODO: This should probably check for ".mjs" extension on the
// original file, and should also be skipped if the the generated
// code is an ES6 module rather than a script.
- if ((0, _devtoolsSourceMap.isGeneratedId)(sourceId) || ast.program.sourceType === "script" && !looksLikeCommonJS(global)) {
+ if (isGeneratedId(sourceId) || ast.program.sourceType === "script" && !looksLikeCommonJS(global)) {
stripModuleScope(global);
}
@@ -21479,344 +21483,6 @@ function stripModuleScope(rootScope) {
});
}
-/***/ }),
-
-/***/ 248:
-/***/ (function(module, exports, __webpack_require__) {
-
-(function(){
- var crypt = __webpack_require__(249),
- utf8 = __webpack_require__(250).utf8,
- isBuffer = __webpack_require__(251),
- bin = __webpack_require__(250).bin,
-
- // The core
- md5 = function (message, options) {
- // Convert to byte array
- if (message.constructor == String)
- if (options && options.encoding === 'binary')
- message = bin.stringToBytes(message);
- else
- message = utf8.stringToBytes(message);
- else if (isBuffer(message))
- message = Array.prototype.slice.call(message, 0);
- else if (!Array.isArray(message))
- message = message.toString();
- // else, assume byte array already
-
- var m = crypt.bytesToWords(message),
- l = message.length * 8,
- a = 1732584193,
- b = -271733879,
- c = -1732584194,
- d = 271733878;
-
- // Swap endian
- for (var i = 0; i < m.length; i++) {
- m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
- ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
- }
-
- // Padding
- m[l >>> 5] |= 0x80 << (l % 32);
- m[(((l + 64) >>> 9) << 4) + 14] = l;
-
- // Method shortcuts
- var FF = md5._ff,
- GG = md5._gg,
- HH = md5._hh,
- II = md5._ii;
-
- for (var i = 0; i < m.length; i += 16) {
-
- var aa = a,
- bb = b,
- cc = c,
- dd = d;
-
- a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
- d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
- c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
- b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
- a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
- d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
- c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
- b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
- a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
- d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
- c = FF(c, d, a, b, m[i+10], 17, -42063);
- b = FF(b, c, d, a, m[i+11], 22, -1990404162);
- a = FF(a, b, c, d, m[i+12], 7, 1804603682);
- d = FF(d, a, b, c, m[i+13], 12, -40341101);
- c = FF(c, d, a, b, m[i+14], 17, -1502002290);
- b = FF(b, c, d, a, m[i+15], 22, 1236535329);
-
- a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
- d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
- c = GG(c, d, a, b, m[i+11], 14, 643717713);
- b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
- a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
- d = GG(d, a, b, c, m[i+10], 9, 38016083);
- c = GG(c, d, a, b, m[i+15], 14, -660478335);
- b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
- a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
- d = GG(d, a, b, c, m[i+14], 9, -1019803690);
- c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
- b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
- a = GG(a, b, c, d, m[i+13], 5, -1444681467);
- d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
- c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
- b = GG(b, c, d, a, m[i+12], 20, -1926607734);
-
- a = HH(a, b, c, d, m[i+ 5], 4, -378558);
- d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
- c = HH(c, d, a, b, m[i+11], 16, 1839030562);
- b = HH(b, c, d, a, m[i+14], 23, -35309556);
- a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
- d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
- c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
- b = HH(b, c, d, a, m[i+10], 23, -1094730640);
- a = HH(a, b, c, d, m[i+13], 4, 681279174);
- d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
- c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
- b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
- a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
- d = HH(d, a, b, c, m[i+12], 11, -421815835);
- c = HH(c, d, a, b, m[i+15], 16, 530742520);
- b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
-
- a = II(a, b, c, d, m[i+ 0], 6, -198630844);
- d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
- c = II(c, d, a, b, m[i+14], 15, -1416354905);
- b = II(b, c, d, a, m[i+ 5], 21, -57434055);
- a = II(a, b, c, d, m[i+12], 6, 1700485571);
- d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
- c = II(c, d, a, b, m[i+10], 15, -1051523);
- b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
- a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
- d = II(d, a, b, c, m[i+15], 10, -30611744);
- c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
- b = II(b, c, d, a, m[i+13], 21, 1309151649);
- a = II(a, b, c, d, m[i+ 4], 6, -145523070);
- d = II(d, a, b, c, m[i+11], 10, -1120210379);
- c = II(c, d, a, b, m[i+ 2], 15, 718787259);
- b = II(b, c, d, a, m[i+ 9], 21, -343485551);
-
- a = (a + aa) >>> 0;
- b = (b + bb) >>> 0;
- c = (c + cc) >>> 0;
- d = (d + dd) >>> 0;
- }
-
- return crypt.endian([a, b, c, d]);
- };
-
- // Auxiliary functions
- md5._ff = function (a, b, c, d, x, s, t) {
- var n = a + (b & c | ~b & d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._gg = function (a, b, c, d, x, s, t) {
- var n = a + (b & d | c & ~d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._hh = function (a, b, c, d, x, s, t) {
- var n = a + (b ^ c ^ d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._ii = function (a, b, c, d, x, s, t) {
- var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
-
- // Package private blocksize
- md5._blocksize = 16;
- md5._digestsize = 16;
-
- module.exports = function (message, options) {
- if (message === undefined || message === null)
- throw new Error('Illegal argument ' + message);
-
- var digestbytes = crypt.wordsToBytes(md5(message, options));
- return options && options.asBytes ? digestbytes :
- options && options.asString ? bin.bytesToString(digestbytes) :
- crypt.bytesToHex(digestbytes);
- };
-
-})();
-
-
-/***/ }),
-
-/***/ 249:
-/***/ (function(module, exports) {
-
-(function() {
- var base64map
- = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
-
- crypt = {
- // Bit-wise rotation left
- rotl: function(n, b) {
- return (n << b) | (n >>> (32 - b));
- },
-
- // Bit-wise rotation right
- rotr: function(n, b) {
- return (n << (32 - b)) | (n >>> b);
- },
-
- // Swap big-endian to little-endian and vice versa
- endian: function(n) {
- // If number given, swap endian
- if (n.constructor == Number) {
- return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
- }
-
- // Else, assume array and swap all items
- for (var i = 0; i < n.length; i++)
- n[i] = crypt.endian(n[i]);
- return n;
- },
-
- // Generate an array of any length of random bytes
- randomBytes: function(n) {
- for (var bytes = []; n > 0; n--)
- bytes.push(Math.floor(Math.random() * 256));
- return bytes;
- },
-
- // Convert a byte array to big-endian 32-bit words
- bytesToWords: function(bytes) {
- for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
- words[b >>> 5] |= bytes[i] << (24 - b % 32);
- return words;
- },
-
- // Convert big-endian 32-bit words to a byte array
- wordsToBytes: function(words) {
- for (var bytes = [], b = 0; b < words.length * 32; b += 8)
- bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
- return bytes;
- },
-
- // Convert a byte array to a hex string
- bytesToHex: function(bytes) {
- for (var hex = [], i = 0; i < bytes.length; i++) {
- hex.push((bytes[i] >>> 4).toString(16));
- hex.push((bytes[i] & 0xF).toString(16));
- }
- return hex.join('');
- },
-
- // Convert a hex string to a byte array
- hexToBytes: function(hex) {
- for (var bytes = [], c = 0; c < hex.length; c += 2)
- bytes.push(parseInt(hex.substr(c, 2), 16));
- return bytes;
- },
-
- // Convert a byte array to a base-64 string
- bytesToBase64: function(bytes) {
- for (var base64 = [], i = 0; i < bytes.length; i += 3) {
- var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
- for (var j = 0; j < 4; j++)
- if (i * 8 + j * 6 <= bytes.length * 8)
- base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
- else
- base64.push('=');
- }
- return base64.join('');
- },
-
- // Convert a base-64 string to a byte array
- base64ToBytes: function(base64) {
- // Remove non-base-64 characters
- base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');
-
- for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
- imod4 = ++i % 4) {
- if (imod4 == 0) continue;
- bytes.push(((base64map.indexOf(base64.charAt(i - 1))
- & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
- | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
- }
- return bytes;
- }
- };
-
- module.exports = crypt;
-})();
-
-
-/***/ }),
-
-/***/ 250:
-/***/ (function(module, exports) {
-
-var charenc = {
- // UTF-8 encoding
- utf8: {
- // Convert a string to a byte array
- stringToBytes: function(str) {
- return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
- },
-
- // Convert a byte array to a string
- bytesToString: function(bytes) {
- return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
- }
- },
-
- // Binary encoding
- bin: {
- // Convert a string to a byte array
- stringToBytes: function(str) {
- for (var bytes = [], i = 0; i < str.length; i++)
- bytes.push(str.charCodeAt(i) & 0xFF);
- return bytes;
- },
-
- // Convert a byte array to a string
- bytesToString: function(bytes) {
- for (var str = [], i = 0; i < bytes.length; i++)
- str.push(String.fromCharCode(bytes[i]));
- return str.join('');
- }
- }
-};
-
-module.exports = charenc;
-
-
-/***/ }),
-
-/***/ 251:
-/***/ (function(module, exports) {
-
-/*!
- * Determine if an object is a Buffer
- *
- * @author Feross Aboukhadijeh
- * @license MIT
- */
-
-// The _isBuffer check is for Safari 5-7 support, because it's missing
-// Object.prototype.constructor. Remove this eventually
-module.exports = function (obj) {
- return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
-}
-
-function isBuffer (obj) {
- return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
-}
-
-// For Node v0.10 support. Remove this eventually.
-function isSlowBuffer (obj) {
- return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
-}
-
-
/***/ }),
/***/ 262:
@@ -23124,79 +22790,6 @@ function mapOriginalExpression(expression, ast, mappings) {
/***/ }),
-/***/ 3646:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-const {
- originalToGeneratedId,
- generatedToOriginalId,
- isGeneratedId,
- isOriginalId
-} = __webpack_require__(3652);
-
-const {
- workerUtils: { WorkerDispatcher }
-} = __webpack_require__(3651);
-
-const dispatcher = new WorkerDispatcher();
-
-const setAssetRootURL = dispatcher.task("setAssetRootURL");
-const getOriginalURLs = dispatcher.task("getOriginalURLs");
-const hasOriginalURL = dispatcher.task("hasOriginalURL");
-const getOriginalRanges = dispatcher.task("getOriginalRanges");
-const getGeneratedRanges = dispatcher.task("getGeneratedRanges", {
- queue: true
-});
-const getGeneratedLocation = dispatcher.task("getGeneratedLocation", {
- queue: true
-});
-const getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", {
- queue: true
-});
-const getOriginalLocation = dispatcher.task("getOriginalLocation");
-const getFileGeneratedRange = dispatcher.task("getFileGeneratedRange");
-const getLocationScopes = dispatcher.task("getLocationScopes");
-const getOriginalSourceText = dispatcher.task("getOriginalSourceText");
-const applySourceMap = dispatcher.task("applySourceMap");
-const clearSourceMaps = dispatcher.task("clearSourceMaps");
-const hasMappedSource = dispatcher.task("hasMappedSource");
-const getOriginalStackFrames = dispatcher.task("getOriginalStackFrames");
-
-module.exports = {
- originalToGeneratedId,
- generatedToOriginalId,
- isGeneratedId,
- isOriginalId,
- hasMappedSource,
- getOriginalURLs,
- hasOriginalURL,
- getOriginalRanges,
- getGeneratedRanges,
- getGeneratedLocation,
- getAllGeneratedLocations,
- getOriginalLocation,
- getFileGeneratedRange,
- getLocationScopes,
- getOriginalSourceText,
- applySourceMap,
- clearSourceMaps,
- getOriginalStackFrames,
- startSourceMapWorker(url, assetRoot) {
- dispatcher.start(url);
- setAssetRootURL(assetRoot);
- },
- stopSourceMapWorker: dispatcher.stop.bind(dispatcher)
-};
-
-/***/ }),
-
/***/ 3651:
/***/ (function(module, exports, __webpack_require__) {
@@ -23214,94 +22807,6 @@ module.exports = {
/***/ }),
-/***/ 3652:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-const md5 = __webpack_require__(248);
-
-function originalToGeneratedId(originalId) {
- const match = originalId.match(/(.*)\/originalSource/);
- return match ? match[1] : "";
-}
-
-function generatedToOriginalId(generatedId, url) {
- return `${generatedId}/originalSource-${md5(url)}`;
-}
-
-function isOriginalId(id) {
- return (/\/originalSource/.test(id)
- );
-}
-
-function isGeneratedId(id) {
- return !isOriginalId(id);
-}
-
-/**
- * Trims the query part or reference identifier of a URL string, if necessary.
- */
-function trimUrlQuery(url) {
- const length = url.length;
- const q1 = url.indexOf("?");
- const q2 = url.indexOf("&");
- const q3 = url.indexOf("#");
- const q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length);
-
- return url.slice(0, q);
-}
-
-// Map suffix to content type.
-const contentMap = {
- js: "text/javascript",
- jsm: "text/javascript",
- mjs: "text/javascript",
- ts: "text/typescript",
- tsx: "text/typescript-jsx",
- jsx: "text/jsx",
- vue: "text/vue",
- coffee: "text/coffeescript",
- elm: "text/elm",
- cljc: "text/x-clojure",
- cljs: "text/x-clojurescript"
-};
-
-/**
- * Returns the content type for the specified URL. If no specific
- * content type can be determined, "text/plain" is returned.
- *
- * @return String
- * The content type.
- */
-function getContentType(url) {
- url = trimUrlQuery(url);
- const dot = url.lastIndexOf(".");
- if (dot >= 0) {
- const name = url.substring(dot + 1);
- if (name in contentMap) {
- return contentMap[name];
- }
- }
- return "text/plain";
-}
-
-module.exports = {
- originalToGeneratedId,
- generatedToOriginalId,
- isOriginalId,
- isGeneratedId,
- getContentType,
- contentMapForTesting: contentMap
-};
-
-/***/ }),
-
/***/ 3653:
/***/ (function(module, exports) {
diff --git a/devtools/client/debugger/new/packages/devtools-components/package.json b/devtools/client/debugger/new/packages/devtools-components/package.json
index fd34d4975302..dc5b0fbe0b85 100644
--- a/devtools/client/debugger/new/packages/devtools-components/package.json
+++ b/devtools/client/debugger/new/packages/devtools-components/package.json
@@ -26,7 +26,7 @@
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.1",
"eslint": "^5.0.0",
- "eslint-plugin-mozilla": "1.0.4",
+ "eslint-plugin-mozilla": "1.1.1",
"fs-extra": "^7.0.0",
"lodash": "^4.17.2"
}
diff --git a/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg b/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg
index 68e128c7a65f..d10640814c39 100644
--- a/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg
+++ b/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/devtools/client/debugger/new/packages/devtools-components/src/tree.css b/devtools/client/debugger/new/packages/devtools-components/src/tree.css
index d443a58a7217..ca98cbfa2d83 100644
--- a/devtools/client/debugger/new/packages/devtools-components/src/tree.css
+++ b/devtools/client/debugger/new/packages/devtools-components/src/tree.css
@@ -58,8 +58,8 @@
background:url(/images/arrow.svg) no-repeat;
background-size:contain;
background-position:center center;
- width: 9px;
- height: 9px;
+ width: 10px;
+ height: 10px;
border:0;
padding:0;
margin-inline-start: 1px;
diff --git a/devtools/client/debugger/new/packages/devtools-components/src/tree.js b/devtools/client/debugger/new/packages/devtools-components/src/tree.js
index 04f4f296fbf8..a9f230fec31c 100644
--- a/devtools/client/debugger/new/packages/devtools-components/src/tree.js
+++ b/devtools/client/debugger/new/packages/devtools-components/src/tree.js
@@ -798,7 +798,7 @@ class Tree extends Component {
// it should be scrolled into view.
this._focus(item, { preventAutoScroll: true });
if (this.props.isExpanded(item)) {
- this.props.onCollapse(item);
+ this.props.onCollapse(item, e.altKey);
} else {
this.props.onExpand(item, e.altKey);
}
@@ -806,10 +806,7 @@ class Tree extends Component {
});
});
- const style = Object.assign({}, this.props.style || {}, {
- padding: 0,
- margin: 0
- });
+ const style = Object.assign({}, this.props.style || {});
return dom.div(
{
diff --git a/devtools/client/debugger/new/packages/devtools-components/webpack.config.js b/devtools/client/debugger/new/packages/devtools-components/webpack.config.js
new file mode 100644
index 000000000000..b37441250468
--- /dev/null
+++ b/devtools/client/debugger/new/packages/devtools-components/webpack.config.js
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+const { toolboxConfig } = require("devtools-launchpad/index");
+const {isDevelopment} = require("devtools-config");
+
+const path = require("path");
+const projectPath = path.join(__dirname);
+
+const webpackConfig = {
+ entry: {
+ "devtools-components": path.join(projectPath, "index.js"),
+ },
+
+ output: {
+ path: path.join(__dirname, "assets/build"),
+ filename: "[name].js",
+ publicPath: "/assets/build",
+ libraryTarget: "umd",
+ },
+ resolve: {
+ alias: {
+ "devtools/client/shared/vendor/react": "react",
+ "devtools/client/shared/vendor/react-dom": "react-dom",
+ "devtools/client/shared/vendor/react-dom-factories": "react-dom-factories",
+ "devtools/client/shared/vendor/react-prop-types": "prop-types",
+ "Services": path.join(__dirname,
+ "node_modules/devtools-modules/client/shared/shim/Services"),
+ }
+ }
+};
+
+const extra = {
+ disablePostCSS: true,
+};
+webpackConfig.plugins = [];
+if (!isDevelopment()) {
+ extra.excludeMap = {
+ react: "devtools/client/shared/vendor/react",
+ "react-dom": "devtools/client/shared/vendor/react-dom",
+ "react-dom-factories": "devtools/client/shared/vendor/react-dom-factories",
+ "prop-types": "devtools/client/shared/vendor/react-prop-types",
+ lodash: "devtools/client/shared/vendor/lodash",
+ };
+}
+
+module.exports = toolboxConfig(webpackConfig, {}, extra);
diff --git a/devtools/client/debugger/new/packages/devtools-reps/README.md b/devtools/client/debugger/new/packages/devtools-reps/README.md
index 43aa3bb35010..69765e6b9af6 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/README.md
+++ b/devtools/client/debugger/new/packages/devtools-reps/README.md
@@ -63,17 +63,17 @@ and navigate to `http://localhost:8000` to access the dashboard.
Navigating to the above address will have landed you on an empty launchpad UI:
-![Image of empty launchpad](./assets/images/empty-launchpad.png)
+![Image of empty launchpad](./images/empty-launchpad.png)
Click on the _Launch Firefox_ button. This should launch Firefox with a dedicated profile, listening for connections on port 6080.
The UI should update automatically and show you at least one tab for the new Firefox instance. If it doesn't, reload the dashboard.
-![Image of launchpad](./assets/images/launchpad-app.png)
+![Image of launchpad](./images/launchpad-app.png)
Click on any of the tabs. This should open the demo app:
-![Image of demo app](./assets/images/demo-app.png)
+![Image of demo app](./images/demo-app.png)
Then you can type any expression in the input field. They will be evaluated against the target tab selected in the previous steps (so if there specific objects on window on this webpage, you can check how they are represented with reps etc, ...).
diff --git a/devtools/client/debugger/new/packages/devtools-reps/assets/images/demo-app.png b/devtools/client/debugger/new/packages/devtools-reps/assets/images/demo-app.png
index c5d114d4ccca..1c98b2b74116 100644
Binary files a/devtools/client/debugger/new/packages/devtools-reps/assets/images/demo-app.png and b/devtools/client/debugger/new/packages/devtools-reps/assets/images/demo-app.png differ
diff --git a/devtools/client/debugger/new/packages/devtools-reps/assets/images/empty-launchpad.png b/devtools/client/debugger/new/packages/devtools-reps/assets/images/empty-launchpad.png
index b43918449580..3b4306ebf08e 100644
Binary files a/devtools/client/debugger/new/packages/devtools-reps/assets/images/empty-launchpad.png and b/devtools/client/debugger/new/packages/devtools-reps/assets/images/empty-launchpad.png differ
diff --git a/devtools/client/debugger/new/packages/devtools-reps/assets/images/launchpad-app.png b/devtools/client/debugger/new/packages/devtools-reps/assets/images/launchpad-app.png
index dd05f51b2fbf..d0128db5201d 100644
Binary files a/devtools/client/debugger/new/packages/devtools-reps/assets/images/launchpad-app.png and b/devtools/client/debugger/new/packages/devtools-reps/assets/images/launchpad-app.png differ
diff --git a/devtools/client/debugger/new/packages/devtools-reps/package.json b/devtools/client/debugger/new/packages/devtools-reps/package.json
index df2ed1ff1bc1..d4d339836368 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/package.json
+++ b/devtools/client/debugger/new/packages/devtools-reps/package.json
@@ -38,7 +38,7 @@
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
"babel-preset-react": "^6.24.1",
"devtools-config": "^0.0.16",
- "devtools-launchpad": "^0.0.141",
+ "devtools-launchpad": "^0.0.145",
"devtools-license-check": "^0.7.0",
"devtools-modules": "~1.1.0",
"devtools-services": "^0.0.1",
@@ -46,7 +46,7 @@
"enzyme-adapter-react-16": "^1.1.1",
"enzyme-to-json": "^3.3.1",
"eslint": "^5.0.0",
- "eslint-plugin-mozilla": "1.0.4",
+ "eslint-plugin-mozilla": "1.1.1",
"fs-extra": "^7.0.0",
"immutable": "^3.8.2",
"postcss-url-mapper": "^1.2.0",
diff --git a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js
index 36a3eb29f353..44caffe3305d 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js
+++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js
@@ -104,11 +104,19 @@ function releaseActors(state, client) {
}
}
-function invokeGetter(node: Node, grip: object, getterName: string) {
+function invokeGetter(
+ node: Node,
+ targetGrip: object,
+ receiverId: string | null,
+ getterName: string
+) {
return async ({ dispatch, client, getState }: ThunkArg) => {
try {
- const objectClient = client.createObjectClient(grip);
- const result = await objectClient.getPropertyValue(getterName);
+ const objectClient = client.createObjectClient(targetGrip);
+ const result = await objectClient.getPropertyValue(
+ getterName,
+ receiverId
+ );
dispatch({
type: "GETTER_INVOKED",
data: {
diff --git a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
index 4480308f346f..9a41e5f8780f 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
+++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
@@ -37,7 +37,8 @@ const {
nodeIsLongString,
nodeHasFullText,
nodeHasGetter,
- getNonPrototypeParentGripValue
+ getNonPrototypeParentGripValue,
+ getParentGripValue
} = Utils.node;
type Props = {
@@ -167,11 +168,17 @@ class ObjectInspectorItem extends Component {
}
if (nodeHasGetter(item)) {
- const parentGrip = getNonPrototypeParentGripValue(item);
- if (parentGrip) {
+ const targetGrip = getParentGripValue(item);
+ const receiverGrip = getNonPrototypeParentGripValue(item);
+ if (targetGrip && receiverGrip) {
Object.assign(repProps, {
onInvokeGetterButtonClick: () =>
- this.props.invokeGetter(item, parentGrip, item.name)
+ this.props.invokeGetter(
+ item,
+ targetGrip,
+ receiverGrip.actor,
+ item.name
+ )
});
}
}
diff --git a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap
index 5d90922da530..e8db5f16e6e1 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap
+++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap
@@ -9,12 +9,7 @@ exports[`ObjectInspector - classnames has the expected class 1`] = `
onKeyPress={[Function]}
onKeyUp={[Function]}
role="tree"
- style={
- Object {
- "margin": 0,
- "padding": 0,
- }
- }
+ style={Object {}}
tabIndex="0"
>
EvalError: "EvalError message"
-
-
InternalError: "InternalError message"
-
-
Error: "bar"
-
-
RangeError: "RangeError message"
-
-
ReferenceError: "ReferenceError message"
-
-
Error: "Error message"
-
-
SyntaxError: "SyntaxError message"
-
-
TypeError: "TypeError message"
-
-
URIError: "URIError message"
-
-
Error: "Error message"
-
-
InternalError: "too much recursion"
-
-
Error: ""
-
-
Error: "bar"
-
-
@@ -748,8 +722,6 @@ exports[`Error - renderStacktrace prop uses renderStacktrace with longString err
data-link-actor-id="server1.conn1.child1/obj33"
>
InternalError: "too much recursion"
-
-
diff --git a/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js b/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js
index b53f9287757e..526bdb0cc648 100644
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js
+++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js
@@ -37,3 +37,20 @@ describe("test Symbol without identifier", () => {
expectActorAttribute(renderedComponent, stub.actor);
});
});
+
+describe("test Symbol with long string", () => {
+ const stub = stubs.get("SymbolWithLongString");
+
+ it("renders the expected content", () => {
+ const renderedComponent = shallow(
+ Rep({
+ object: stub
+ })
+ );
+
+ expect(renderedComponent.text()).toEqual(
+ "Symbol(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…)"
+ );
+ expectActorAttribute(renderedComponent, stub.actor);
+ });
+});
diff --git a/devtools/client/debugger/new/packages/devtools-reps/webpack.config.js b/devtools/client/debugger/new/packages/devtools-reps/webpack.config.js
new file mode 100644
index 000000000000..35258d2f6f78
--- /dev/null
+++ b/devtools/client/debugger/new/packages/devtools-reps/webpack.config.js
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+const { toolboxConfig } = require("devtools-launchpad/index");
+const config = require("./config");
+const ObjectRestSpreadPlugin = require("@sucrase/webpack-object-rest-spread-plugin");
+
+const path = require("path");
+const projectPath = path.join(__dirname, "src");
+
+let webpackConfig = {
+ entry: {
+ reps: [path.join(projectPath, "launchpad/index.js")],
+ },
+
+ output: {
+ path: path.join(__dirname, "assets/build"),
+ filename: "[name].js",
+ publicPath: "/assets/build"
+ },
+
+ plugins: [new ObjectRestSpreadPlugin()],
+
+ resolve: {
+ alias: {
+ "devtools/client/shared/vendor/react": "react",
+ "devtools/client/shared/vendor/react-dom": "react-dom",
+ "devtools/client/shared/vendor/react-dom-factories": "react-dom-factories",
+ "devtools/client/shared/vendor/react-prop-types": "prop-types",
+ }
+ }
+};
+
+module.exports = toolboxConfig(webpackConfig, config);
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/index.js b/devtools/client/debugger/new/packages/devtools-source-map/src/index.js
index 92d091eb5b4b..5b8ba62dfb72 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/index.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/index.js
@@ -5,60 +5,123 @@
// @flow
const {
+ workerUtils: { WorkerDispatcher }
+} = require("devtools-utils");
+
+import type { SourceLocation, Source, SourceId } from "debugger-html";
+import type { SourceMapConsumer } from "source-map";
+import type { locationOptions } from "./source-map";
+
+export const dispatcher = new WorkerDispatcher();
+
+const _getGeneratedRanges = dispatcher.task("getGeneratedRanges", {
+ queue: true
+});
+
+const _getGeneratedLocation = dispatcher.task("getGeneratedLocation", { queue: true });
+const _getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", { queue: true });
+
+
+export const setAssetRootURL = async (assetRoot: string): Promise =>
+ dispatcher.invoke("setAssetRootURL", assetRoot);
+
+export const getOriginalURLs = async (
+ generatedSource: Source
+): Promise =>
+ dispatcher.invoke("getOriginalURLs", generatedSource);
+
+export const hasOriginalURL = async (url: string): Promise =>
+ dispatcher.invoke("hasOriginalURL", url);
+
+export const getOriginalRanges = async (
+ sourceId: SourceId,
+ url: string
+): Promise<
+ Array<{
+ line: number,
+ columnStart: number,
+ columnEnd: number
+ }>
+> => dispatcher.invoke("getOriginalRanges", sourceId, url);
+export const getGeneratedRanges = async (
+ location: SourceLocation,
+ originalSource: Source
+): Promise<
+ Array<{
+ line: number,
+ columnStart: number,
+ columnEnd: number
+ }>
+> =>
+ _getGeneratedRanges(location, originalSource);
+
+export const getGeneratedLocation = async (
+ location: SourceLocation,
+ originalSource: Source
+): Promise => _getGeneratedLocation(location,originalSource);
+
+export const getAllGeneratedLocations = async (
+ location: SourceLocation,
+ originalSource: Source
+): Promise> => _getAllGeneratedLocations(
+ location,
+ originalSource
+);
+
+export const getOriginalLocation = async (
+ location: SourceLocation,
+ options: locationOptions = {}
+): Promise =>
+ dispatcher.invoke("getOriginalLocation", location, options);
+
+export const getFileGeneratedRange = async (
+ originalSource: Source
+): Promise{ start: any, end: any }> =>
+ dispatcher.invoke("getFileGeneratedRange", originalSource);
+
+export const getLocationScopes = dispatcher.task("getLocationScopes");
+
+export const getOriginalSourceText = async (
+ originalSource: Source
+): Promise{
+ text: string,
+ contentType: string
+}> => dispatcher.invoke("getOriginalSourceText", originalSource);
+
+export const applySourceMap = async (
+ generatedId: string,
+ url: string,
+ code: string,
+ mappings: Object
+): Promise =>
+ dispatcher.invoke("applySourceMap", generatedId, url, code, mappings);
+
+export const clearSourceMaps = async (): Promise =>
+ dispatcher.invoke("clearSourceMaps");
+
+export const hasMappedSource = async (
+ location: SourceLocation
+): Promise => dispatcher.invoke("hasMappedSource", location);
+
+export const getOriginalStackFrames = async (
+ generatedLocation: SourceLocation
+): Promise> => dispatcher.invoke("getOriginalStackFrames", generatedLocation);
+
+export {
originalToGeneratedId,
generatedToOriginalId,
isGeneratedId,
isOriginalId
-} = require("./utils");
+} from "./utils";
-const {
- workerUtils: { WorkerDispatcher }
-} = require("devtools-utils");
-
-const dispatcher = new WorkerDispatcher();
-
-const setAssetRootURL = dispatcher.task("setAssetRootURL");
-const getOriginalURLs = dispatcher.task("getOriginalURLs");
-const getOriginalRanges = dispatcher.task("getOriginalRanges");
-const getGeneratedRanges = dispatcher.task("getGeneratedRanges", {
- queue: true
-});
-const getGeneratedLocation = dispatcher.task("getGeneratedLocation", {
- queue: true
-});
-const getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", {
- queue: true
-});
-const getOriginalLocation = dispatcher.task("getOriginalLocation");
-const getFileGeneratedRange = dispatcher.task("getFileGeneratedRange");
-const getLocationScopes = dispatcher.task("getLocationScopes");
-const getOriginalSourceText = dispatcher.task("getOriginalSourceText");
-const applySourceMap = dispatcher.task("applySourceMap");
-const clearSourceMaps = dispatcher.task("clearSourceMaps");
-const hasMappedSource = dispatcher.task("hasMappedSource");
-const getOriginalStackFrames = dispatcher.task("getOriginalStackFrames");
-
-module.exports = {
- originalToGeneratedId,
- generatedToOriginalId,
- isGeneratedId,
- isOriginalId,
- hasMappedSource,
- getOriginalURLs,
- getOriginalRanges,
- getGeneratedRanges,
- getGeneratedLocation,
- getAllGeneratedLocations,
- getOriginalLocation,
- getFileGeneratedRange,
- getLocationScopes,
- getOriginalSourceText,
- applySourceMap,
- clearSourceMaps,
- getOriginalStackFrames,
- startSourceMapWorker(url: string, assetRoot: string) {
- dispatcher.start(url);
- setAssetRootURL(assetRoot);
- },
- stopSourceMapWorker: dispatcher.stop.bind(dispatcher)
+export const startSourceMapWorker = (url: string, assetRoot: string) => {
+ dispatcher.start(url);
+ setAssetRootURL(assetRoot);
};
+export const stopSourceMapWorker = dispatcher.stop.bind(dispatcher);
+
+import * as self from "devtools-source-map";
+export default self;
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js b/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js
index c33b375ba98d..7aaff39abf44 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js
@@ -14,7 +14,11 @@ const { SourceMapConsumer, SourceMapGenerator } = require("source-map");
const { createConsumer } = require("./utils/createConsumer");
const assert = require("./utils/assert");
-const { fetchSourceMap } = require("./utils/fetchSourceMap");
+const {
+ fetchSourceMap,
+ hasOriginalURL,
+ clearOriginalURLs
+} = require("./utils/fetchSourceMap");
const {
getSourceMap,
setSourceMap,
@@ -31,7 +35,9 @@ const { clearWasmXScopes } = require("./utils/wasmXScopes");
import type { SourceLocation, Source, SourceId } from "debugger-html";
-async function getOriginalURLs(generatedSource: Source) {
+async function getOriginalURLs(
+ generatedSource: Source
+): Promise {
const map = await fetchSourceMap(generatedSource);
return map && map.sources;
}
@@ -39,7 +45,16 @@ async function getOriginalURLs(generatedSource: Source) {
const COMPUTED_SPANS = new WeakSet();
const SOURCE_MAPPINGS = new WeakMap();
-async function getOriginalRanges(sourceId: SourceId, url: string) {
+async function getOriginalRanges(
+ sourceId: SourceId,
+ url: string
+): Promise<
+ Array<{
+ line: number,
+ columnStart: number,
+ columnEnd: number
+ }>
+> {
if (!isOriginalId(sourceId)) {
return [];
}
@@ -231,7 +246,7 @@ async function getAllGeneratedLocations(
}));
}
-type locationOptions = {
+export type locationOptions = {
search?: "LEAST_UPPER_BOUND" | "GREATEST_LOWER_BOUND"
};
async function getOriginalLocation(
@@ -285,7 +300,12 @@ async function getOriginalLocation(
};
}
-async function getOriginalSourceText(originalSource: Source) {
+async function getOriginalSourceText(
+ originalSource: Source
+): Promise{
+ text: string,
+ contentType: string
+}> {
assert(isOriginalId(originalSource.id), "Source is not an original source");
const generatedSourceId = originalToGeneratedId(originalSource.id);
@@ -306,7 +326,9 @@ async function getOriginalSourceText(originalSource: Source) {
};
}
-async function getFileGeneratedRange(originalSource: Source) {
+async function getFileGeneratedRange(
+ originalSource: Source
+): Promise{ start: any, end: any }> {
assert(isOriginalId(originalSource.id), "Source is not an original source");
const map = await getSourceMap(originalToGeneratedId(originalSource.id));
@@ -360,10 +382,12 @@ function applySourceMap(
function clearSourceMaps() {
clearSourceMapsRequests();
clearWasmXScopes();
+ clearOriginalURLs();
}
module.exports = {
getOriginalURLs,
+ hasOriginalURL,
getOriginalRanges,
getGeneratedRanges,
getGeneratedLocation,
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js
index d4aff5b4190b..48f5b12df240 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js
@@ -17,7 +17,7 @@ function convertDwarf(wasm, instance) {
);
const resultPtr = alloc_mem(12);
const enableXScopes = true;
- convert_dwarf(
+ const success = convert_dwarf(
wasmPtr,
wasm.byteLength,
resultPtr,
@@ -29,6 +29,9 @@ function convertDwarf(wasm, instance) {
const outputPtr = resultView.getUint32(0, true),
outputLen = resultView.getUint32(4, true);
free_mem(resultPtr);
+ if (!success) {
+ throw new Error("Unable to convert from DWARF sections");
+ }
if (!utf8Decoder) {
utf8Decoder = new TextDecoder("utf-8");
}
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js
index 617a15b4c5a5..e56ce4d8feb9 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js
@@ -13,6 +13,17 @@ const { createConsumer } = require("./createConsumer");
import type { Source } from "debugger-html";
+// URLs which have been seen in a completed source map request.
+const originalURLs = new Set();
+
+function clearOriginalURLs() {
+ originalURLs.clear();
+}
+
+function hasOriginalURL(url: string): boolean {
+ return originalURLs.has(url);
+}
+
function _resolveSourceMapURL(source: Source) {
const { url = "", sourceMapURL = "" } = source;
@@ -55,10 +66,14 @@ async function _resolveAndFetch(generatedSource: Source): SourceMapConsumer {
}
}
+ if (map && map.sources) {
+ map.sources.forEach(url => originalURLs.add(url));
+ }
+
return map;
}
-function fetchSourceMap(generatedSource: Source) {
+function fetchSourceMap(generatedSource: Source): SourceMapConsumer {
const existingRequest = getSourceMap(generatedSource.id);
// If it has already been requested, return the request. Make sure
@@ -84,4 +99,4 @@ function fetchSourceMap(generatedSource: Source) {
return req;
}
-module.exports = { fetchSourceMap };
+module.exports = { fetchSourceMap, hasOriginalURL, clearOriginalURLs };
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js
index 8d537991e06c..37256e645ed1 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js
@@ -16,7 +16,7 @@ function generatedToOriginalId(generatedId: string, url: string) {
}
function isOriginalId(id: string) {
- return !!id.match(/\/originalSource/);
+ return /\/originalSource/.test(id);
}
function isGeneratedId(id: string) {
@@ -62,7 +62,7 @@ const contentMap = {
* @return String
* The content type.
*/
-function getContentType(url: string) {
+function getContentType(url: string): string {
url = trimUrlQuery(url);
const dot = url.lastIndexOf(".");
if (dot >= 0) {
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js
index a238f519f234..6536dbf46134 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js
@@ -13,14 +13,18 @@ const { generatedToOriginalId } = require("./index");
const xScopes = new Map();
type XScopeItem = any;
-type XScopeItemsIndex = Map;
+type XScopeItemsIndex = Map;
function indexLinkingNames(items: XScopeItem[]): XScopeItemsIndex {
const result = new Map();
let queue = [...items];
while (queue.length > 0) {
const item = queue.shift();
- if ("linkage_name" in item) {
+ if ("uid" in item) {
+ result.set(item.uid, item);
+ } else if ("linkage_name" in item) {
+ // TODO the linkage_name string value is used for compatibility
+ // with old format. Remove in favour of the uid referencing.
result.set(item.linkage_name, item);
}
if ("children" in item) {
@@ -30,6 +34,19 @@ function indexLinkingNames(items: XScopeItem[]): XScopeItemsIndex {
return result;
}
+function getIndexedItem(
+ index: XScopeItemsIndex,
+ key: string | { uid: number }
+): XScopeItem {
+ if (typeof key === "object" && key != null) {
+ return index.get(key.uid);
+ }
+ if (typeof key === "string") {
+ return index.get(key);
+ }
+ return null;
+}
+
type XScopeData = {
code_section_offset: number,
debug_info: Array,
@@ -112,7 +129,7 @@ function filterScopes(
break;
case "inlined_subroutine":
if (isInRange(item, pc)) {
- const linkedItem = index.get(item.abstract_origin);
+ const linkedItem = getIndexedItem(index, item.abstract_origin);
const s: FoundScope = {
id: item.abstract_origin,
name: linkedItem ? linkedItem.name : void 0
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js b/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js
index ca4b254715f7..da546ff9cbfb 100644
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js
+++ b/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js
@@ -5,6 +5,7 @@
const {
getOriginalURLs,
+ hasOriginalURL,
getOriginalRanges,
getGeneratedRanges,
getGeneratedLocation,
@@ -29,6 +30,7 @@ const {
self.onmessage = workerHandler({
setAssetRootURL,
getOriginalURLs,
+ hasOriginalURL,
getOriginalRanges,
getGeneratedRanges,
getGeneratedLocation,
diff --git a/devtools/client/debugger/new/packages/devtools-source-map/wasm/dwarf_to_json.wasm b/devtools/client/debugger/new/packages/devtools-source-map/wasm/dwarf_to_json.wasm
index ed1fd3bdbffe..2293d179f049 100755
Binary files a/devtools/client/debugger/new/packages/devtools-source-map/wasm/dwarf_to_json.wasm and b/devtools/client/debugger/new/packages/devtools-source-map/wasm/dwarf_to_json.wasm differ
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js b/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js
index d78f1f0dd529..a620247e4d8a 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js
+++ b/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js
@@ -4,9 +4,7 @@
// @flow
-import { isOriginalId } from "devtools-source-map";
import {
- locationMoved,
breakpointExists,
assertBreakpoint,
createBreakpoint,
@@ -20,10 +18,13 @@ import {
getSource,
getSourceActors,
getSymbols,
+ getFirstVisibleBreakpointPosition
} from "../../selectors";
import { getGeneratedLocation } from "../../utils/source-maps";
import { getTextAtPosition } from "../../utils/source";
import { recordEvent } from "../../utils/telemetry";
+import { features } from "../../utils/prefs";
+import { setBreakpointPositions } from "./breakpointPositions";
import type {
BreakpointOptions,
@@ -67,58 +68,40 @@ async function addBreakpointPromise(getState, client, sourceMaps, breakpoint) {
if (breakpointExists(state, location)) {
const newBreakpoint = { ...breakpoint, location, generatedLocation };
assertBreakpoint(newBreakpoint);
- return { breakpoint: newBreakpoint };
+ return newBreakpoint;
}
const sourceActors = getSourceActors(state, generatedSource.id);
- const newGeneratedLocation = { ...generatedLocation };
for (const sourceActor of sourceActors) {
const sourceActorLocation = makeSourceActorLocation(
sourceActor,
generatedLocation
);
- const { actualLocation } = await client.setBreakpoint(
- sourceActorLocation,
- breakpoint.options,
- isOriginalId(location.sourceId)
- );
- newGeneratedLocation.line = actualLocation.line;
- newGeneratedLocation.column = actualLocation.column;
+ await client.setBreakpoint(sourceActorLocation, breakpoint.options);
}
- const newLocation = await sourceMaps.getOriginalLocation(
- newGeneratedLocation
- );
-
const symbols = getSymbols(getState(), source);
- const astLocation = await getASTLocation(source, symbols, newLocation);
+ const astLocation = await getASTLocation(source, symbols, location);
const originalText = getTextAtPosition(source, location);
- const text = getTextAtPosition(generatedSource, newGeneratedLocation);
+ const text = getTextAtPosition(generatedSource, generatedLocation);
const newBreakpoint = {
id: makeBreakpointId(generatedLocation),
disabled: false,
loading: false,
options: breakpoint.options,
- location: newLocation,
+ location,
astLocation,
- generatedLocation: newGeneratedLocation,
+ generatedLocation,
text,
originalText
};
assertBreakpoint(newBreakpoint);
- const previousLocation = locationMoved(location, newLocation)
- ? location
- : null;
-
- return {
- breakpoint: newBreakpoint,
- previousLocation
- };
+ return newBreakpoint;
}
export function addHiddenBreakpoint(location: SourceLocation) {
@@ -144,22 +127,26 @@ export function enableBreakpoint(breakpoint: Breakpoint) {
};
}
-/**
- * Add a new breakpoint
- *
- * @memberof actions/breakpoints
- * @static
- * @param {BreakpointOptions} options Any options for the new breakpoint.
- */
-
export function addBreakpoint(
location: SourceLocation,
options: BreakpointOptions = {}
) {
- return ({ dispatch, getState, sourceMaps, client }: ThunkArgs) => {
+ return async ({ dispatch, getState, sourceMaps, client }: ThunkArgs) => {
recordEvent("add_breakpoint");
+ let breakpointPosition = location;
+ if (features.columnBreakpoints && location.column === undefined) {
+ await dispatch(setBreakpointPositions(location));
+ breakpointPosition = getFirstVisibleBreakpointPosition(
+ getState(),
+ location
+ );
+ }
- const breakpoint = createBreakpoint(location, options);
+ if (!breakpointPosition) {
+ return;
+ }
+
+ const breakpoint = createBreakpoint(breakpointPosition, options);
return dispatch({
type: "ADD_BREAKPOINT",
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/breakpointPositions.js b/devtools/client/debugger/new/src/actions/breakpoints/breakpointPositions.js
new file mode 100644
index 000000000000..249f1c0c8665
--- /dev/null
+++ b/devtools/client/debugger/new/src/actions/breakpoints/breakpointPositions.js
@@ -0,0 +1,37 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at . */
+
+// @flow
+
+import {
+ getSourceActors,
+ getBreakpointPositionsForLine
+} from "../../selectors";
+
+import { makeSourceActorLocation } from "../../utils/breakpoint";
+
+import type { SourceLocation } from "../../types";
+import type { ThunkArgs } from "../../actions/types";
+
+export function setBreakpointPositions(location: SourceLocation) {
+ return async ({ getState, dispatch, client }: ThunkArgs) => {
+ if (
+ getBreakpointPositionsForLine(
+ getState(),
+ location.sourceId,
+ location.line
+ )
+ ) {
+ return;
+ }
+
+ const sourceActors = getSourceActors(getState(), location.sourceId);
+ const sourceActor = sourceActors[0];
+
+ const sourceActorLocation = makeSourceActorLocation(sourceActor, location);
+ const positions = await client.getBreakpointPositions(sourceActorLocation);
+
+ return dispatch({ type: "ADD_BREAKPOINT_POSITIONS", positions, location });
+ };
+}
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/moz.build b/devtools/client/debugger/new/src/actions/breakpoints/moz.build
index bfd32f049ca8..dc4084c38c95 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/moz.build
+++ b/devtools/client/debugger/new/src/actions/breakpoints/moz.build
@@ -9,6 +9,7 @@ DIRS += [
DebuggerModules(
'addBreakpoint.js',
+ 'breakpointPositions.js',
'index.js',
'remapLocations.js',
'syncBreakpoint.js',
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js b/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js
index 05422282d918..cdf2ec45afad 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js
+++ b/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js
@@ -3,6 +3,8 @@
* file, You can obtain one at . */
// @flow
+
+import { setBreakpointPositions } from "./breakpointPositions";
import {
locationMoved,
createBreakpoint,
@@ -16,6 +18,8 @@ import { getGeneratedLocation } from "../../utils/source-maps";
import { getTextAtPosition } from "../../utils/source";
import { originalToGeneratedId, isOriginalId } from "devtools-source-map";
import { getSource, getSourceActors } from "../../selectors";
+import { features } from "../../utils/prefs";
+
import type { ThunkArgs, Action } from "../types";
import type {
@@ -75,6 +79,7 @@ export async function syncBreakpointPromise(
getState: Function,
client: Object,
sourceMaps: Object,
+ dispatch: Function,
sourceId: SourceId,
pendingBreakpoint: PendingBreakpoint
): Promise {
@@ -121,10 +126,19 @@ export async function syncBreakpointPromise(
);
const sourceActors = getSourceActors(getState(), sourceId);
+ let possiblePosition = true;
+ if (features.columnBreakpoints && generatedLocation.column != undefined) {
+ const { positions } = await dispatch(
+ setBreakpointPositions(generatedLocation)
+ );
+ if (!positions.includes(generatedLocation.column)) {
+ possiblePosition = false;
+ }
+ }
/** ******* CASE 1: No server change ***********/
// early return if breakpoint is disabled or we are in the sameLocation
- if (pendingBreakpoint.disabled || isSameLocation) {
+ if (possiblePosition && (pendingBreakpoint.disabled || isSameLocation)) {
// Make sure the breakpoint is installed on all source actors.
if (!pendingBreakpoint.disabled) {
for (const sourceActor of sourceActors) {
@@ -166,42 +180,33 @@ export async function syncBreakpointPromise(
}
}
+ if (!possiblePosition || !scopedGeneratedLocation.line) {
+ return { previousLocation, breakpoint: null };
+ }
+
/** ******* Case 2: Add New Breakpoint ***********/
// If we are not disabled, set the breakpoint on the server and get
// that info so we can set it on our breakpoints.
- if (!scopedGeneratedLocation.line) {
- return { previousLocation, breakpoint: null };
- }
-
- const newGeneratedLocation = { ...scopedGeneratedLocation };
for (const sourceActor of sourceActors) {
const sourceActorLocation = makeSourceActorLocation(
sourceActor,
scopedGeneratedLocation
);
- const { actualLocation } = await client.setBreakpoint(
+ await client.setBreakpoint(
sourceActorLocation,
pendingBreakpoint.options,
isOriginalId(sourceId)
);
- newGeneratedLocation.line = actualLocation.line;
- newGeneratedLocation.column = actualLocation.column;
}
- // the breakpoint might have slid server side, so we want to get the location
- // based on the server's return value
- const newLocation = await sourceMaps.getOriginalLocation(
- newGeneratedLocation
- );
-
- const originalText = getTextAtPosition(source, newLocation);
- const text = getTextAtPosition(generatedSource, newGeneratedLocation);
+ const originalText = getTextAtPosition(source, scopedLocation);
+ const text = getTextAtPosition(generatedSource, scopedGeneratedLocation);
return createSyncData(
pendingBreakpoint,
- newLocation,
- newGeneratedLocation,
+ scopedLocation,
+ scopedGeneratedLocation,
previousLocation,
text,
originalText
@@ -226,6 +231,7 @@ export function syncBreakpoint(
getState,
client,
sourceMaps,
+ dispatch,
sourceId,
pendingBreakpoint
);
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
index 322657062ffb..cfe986e1681e 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
+++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
@@ -1,40 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`breakpoints adding a breakpoint to an invalid location adds only one breakpoint with a corrected location 1`] = `
-Object {
- "astLocation": Object {
- "index": 0,
- "name": undefined,
- "offset": Object {
- "line": 7,
- "sourceId": "a",
- "sourceUrl": "http://localhost:8000/examples/a",
- },
- },
- "disabled": false,
- "generatedLocation": Object {
- "column": undefined,
- "line": 7,
- "sourceId": "a",
- "sourceUrl": "http://localhost:8000/examples/a",
- },
- "id": "a:5:",
- "loading": false,
- "location": Object {
- "line": 7,
- "sourceId": "a",
- "sourceUrl": "http://localhost:8000/examples/a",
- },
- "options": Object {
- "condition": null,
- "hidden": false,
- "logValue": null,
- },
- "originalText": "",
- "text": "",
-}
-`;
-
exports[`breakpoints should add a breakpoint 1`] = `
Array [
Object {
@@ -51,7 +16,6 @@ Array [
},
"disabled": false,
"generatedLocation": Object {
- "column": undefined,
"line": 2,
"sourceId": "a",
"sourceUrl": "http://localhost:8000/examples/a",
@@ -106,7 +70,6 @@ Object {
},
"disabled": false,
"generatedLocation": Object {
- "column": undefined,
"line": 1,
"sourceId": "a.js",
"sourceUrl": "http://localhost:8000/examples/a.js",
@@ -145,7 +108,6 @@ Array [
},
"disabled": true,
"generatedLocation": Object {
- "column": undefined,
"line": 5,
"sourceId": "a",
"sourceUrl": "http://localhost:8000/examples/a",
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap
index 93414a3e4ddc..b2002e6caa74 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap
+++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap
@@ -179,7 +179,7 @@ Object {
"column": undefined,
"line": 3,
"sourceId": "magic.js",
- "sourceUrl": "http://localhost:8000/magic.js",
+ "sourceUrl": "http://localhost:8000/examples/magic.js",
},
"options": Object {
"condition": null,
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js b/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js
index 10e865d2fa7a..2316878ee548 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js
+++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js
@@ -12,10 +12,7 @@ import {
getTelemetryEvents
} from "../../../utils/test-head";
-import {
- simulateCorrectThreadClient,
- simpleMockThreadClient
-} from "../../tests/helpers/threadClient.js";
+import { simpleMockThreadClient } from "../../tests/helpers/threadClient.js";
describe("breakpoints", () => {
it("should add a breakpoint", async () => {
@@ -68,7 +65,7 @@ describe("breakpoints", () => {
const csr = makeSource("a");
await dispatch(actions.newSource(csr));
await dispatch(actions.loadSourceText(csr.source));
- const { breakpoint } = await dispatch(actions.addBreakpoint(loc1));
+ const breakpoint = await dispatch(actions.addBreakpoint(loc1));
await dispatch(actions.disableBreakpoint(breakpoint));
expect(selectors.getBreakpointCount(getState())).toEqual(1);
@@ -98,31 +95,6 @@ describe("breakpoints", () => {
expect(selectors.getBreakpointCount(getState())).toEqual(1);
});
- describe("adding a breakpoint to an invalid location", () => {
- it("adds only one breakpoint with a corrected location", async () => {
- const invalidLocation = {
- sourceId: "a",
- line: 5,
- sourceUrl: "http://localhost:8000/examples/a"
- };
- const {
- correctedThreadClient,
- correctedLocation
- } = simulateCorrectThreadClient(2, invalidLocation);
- const { dispatch, getState } = createStore(correctedThreadClient);
-
- const csr = makeSource("a");
- await dispatch(actions.newSource(csr));
- await dispatch(actions.loadSourceText(csr.source));
-
- await dispatch(actions.addBreakpoint(invalidLocation));
- const state = getState();
- expect(selectors.getBreakpointCount(state)).toEqual(1);
- const bp = selectors.getBreakpoint(state, correctedLocation);
- expect(bp).toMatchSnapshot();
- });
- });
-
it("should remove a breakpoint", async () => {
const { dispatch, getState } = createStore(simpleMockThreadClient);
@@ -181,7 +153,7 @@ describe("breakpoints", () => {
await dispatch(actions.newSource(bCSR));
await dispatch(actions.loadSourceText(bCSR.source));
- const { breakpoint } = await dispatch(actions.addBreakpoint(loc1));
+ const breakpoint = await dispatch(actions.addBreakpoint(loc1));
await dispatch(actions.addBreakpoint(loc2));
await dispatch(actions.disableBreakpoint(breakpoint));
@@ -202,7 +174,7 @@ describe("breakpoints", () => {
await dispatch(actions.newSource(aCSR));
await dispatch(actions.loadSourceText(aCSR.source));
- const { breakpoint } = await dispatch(actions.addBreakpoint(loc));
+ const breakpoint = await dispatch(actions.addBreakpoint(loc));
await dispatch(actions.disableBreakpoint(breakpoint));
let bp = selectors.getBreakpoint(getState(), loc);
@@ -338,7 +310,7 @@ describe("breakpoints", () => {
};
await dispatch(actions.newSource(makeSource("a")));
- const { breakpoint } = await dispatch(actions.addBreakpoint(loc));
+ const breakpoint = await dispatch(actions.addBreakpoint(loc));
await dispatch(actions.disableBreakpoint(breakpoint));
const bp = selectors.getBreakpoint(getState(), loc);
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js b/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js
index 50e5816986f5..e35b6e69d656 100644
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js
+++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js
@@ -135,6 +135,7 @@ describe("loading the debugger", () => {
getState,
threadClient,
sourceMaps,
+ dispatch,
reloadedSource.source.id,
pendingBreakpoint()
);
@@ -165,6 +166,7 @@ describe("loading the debugger", () => {
getState,
threadClient,
sourceMaps,
+ dispatch,
reloadedSource.source.id,
pendingBreakpoint()
);
@@ -209,6 +211,7 @@ describe("reloading debuggee", () => {
getState,
threadClient,
sourceMaps,
+ dispatch,
reloadedSource.source.id,
pendingBreakpoint({ location: loc1 })
);
@@ -252,6 +255,7 @@ describe("reloading debuggee", () => {
getState,
threadClient,
sourceMaps,
+ dispatch,
reloadedSource.source.id,
pendingBreakpoint()
);
@@ -279,7 +283,7 @@ describe("reloading debuggee", () => {
column: undefined
};
- const { breakpoint } = await dispatch(actions.addBreakpoint(location));
+ const breakpoint = await dispatch(actions.addBreakpoint(location));
await dispatch(actions.disableBreakpoint(breakpoint));
(getGeneratedLocation: any).mockImplementationOnce(() =>
diff --git a/devtools/client/debugger/new/src/actions/breakpoints/tests/toggleBreakpointsAtLine.spec.js b/devtools/client/debugger/new/src/actions/breakpoints/tests/toggleBreakpointsAtLine.spec.js
deleted file mode 100644
index 0085e56e19d1..000000000000
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/toggleBreakpointsAtLine.spec.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import {
- createStore,
- selectors,
- actions,
- makeSource,
- waitForState
-} from "../../../utils/test-head";
-
-import { generateBreakpoint } from "../../tests/helpers/breakpoints.js";
-
-import { simpleMockThreadClient } from "../../tests/helpers/threadClient.js";
-
-describe("toggleBreakpointsAtLine", () => {
- it("removes all breakpoints on a given line", async () => {
- const store = createStore(simpleMockThreadClient);
- const { dispatch } = store;
-
- const source = makeSource("foo.js");
- await dispatch(actions.newSource(source));
- await dispatch(actions.loadSourceText(source));
-
- await Promise.all([
- dispatch(
- actions.addBreakpoint(generateBreakpoint("foo.js", 5, 1).location)
- ),
- dispatch(
- actions.addBreakpoint(generateBreakpoint("foo.js", 5, 2).location)
- ),
- dispatch(
- actions.addBreakpoint(generateBreakpoint("foo.js", 5, 3).location)
- )
- ]);
-
- await dispatch(actions.selectLocation({ sourceId: "foo.js" }));
-
- await waitForState(store, state => selectors.hasSymbols(state, source));
-
- await dispatch(actions.toggleBreakpointsAtLine(5));
- await waitForState(
- store,
- state => selectors.getBreakpointCount(state) === 0
- );
- });
-
- it("removes all breakpoints on an empty line", async () => {
- const store = createStore(simpleMockThreadClient);
- const { dispatch } = store;
-
- const source = makeSource("foo.js");
- await dispatch(actions.newSource(source));
- await dispatch(actions.loadSourceText(makeSource("foo.js")));
-
- await dispatch(actions.addBreakpoint({ sourceId: source.id, line: 3 }));
- await dispatch(actions.selectLocation({ sourceId: "foo.js" }));
-
- await waitForState(store, state =>
- selectors.hasPausePoints(state, source.id)
- );
-
- await dispatch(actions.toggleBreakpointsAtLine(3));
-
- await waitForState(
- store,
- state => selectors.getBreakpointCount(state) === 0
- );
- });
-});
diff --git a/devtools/client/debugger/new/src/actions/pause/paused.js b/devtools/client/debugger/new/src/actions/pause/paused.js
index 6a82bd06a8b2..6ce7c86e6c9e 100644
--- a/devtools/client/debugger/new/src/actions/pause/paused.js
+++ b/devtools/client/debugger/new/src/actions/pause/paused.js
@@ -8,7 +8,8 @@ import {
isEvaluatingExpression,
getSelectedFrame,
getSources,
- getLastCommand
+ getLastCommand,
+ wasStepping
} from "../../selectors";
import { mapFrames } from ".";
@@ -81,7 +82,10 @@ export function paused(pauseInfo: Pause) {
await dispatch(selectLocation(selectedFrame.location));
}
- dispatch(togglePaneCollapse("end", false));
+ if (!wasStepping(getState())) {
+ dispatch(togglePaneCollapse("end", false));
+ }
+
await dispatch(fetchScopes());
// Run after fetching scoping data so that it may make use of the sourcemap
diff --git a/devtools/client/debugger/new/src/actions/pause/resumed.js b/devtools/client/debugger/new/src/actions/pause/resumed.js
index 1f190bcee0d2..2ab468cc5a2d 100644
--- a/devtools/client/debugger/new/src/actions/pause/resumed.js
+++ b/devtools/client/debugger/new/src/actions/pause/resumed.js
@@ -23,7 +23,7 @@ export function resumed(packet: ResumedPacket) {
const wasPausedInEval = inDebuggerEval(why);
const wasStepping = isStepping(getState());
- dispatch({ type: "RESUME", thread: packet.from });
+ dispatch({ type: "RESUME", thread: packet.from, wasStepping });
if (!wasStepping && !wasPausedInEval) {
await dispatch(evaluateExpressions());
diff --git a/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap b/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap
index c8fd2d5342b9..84d06b77ec54 100644
--- a/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap
+++ b/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap
@@ -28,43 +28,13 @@ Object {
}
`;
-exports[`invalid breakpoint location a corrected corresponding pending breakpoint is added 1`] = `
-Object {
- "astLocation": Object {
- "index": 0,
- "name": undefined,
- "offset": Object {
- "column": 0,
- "line": 7,
- "sourceId": "foo.js",
- "sourceUrl": "http://localhost:8000/examples/foo.js",
- },
- },
- "disabled": false,
- "generatedLocation": Object {
- "column": 0,
- "line": 7,
- "sourceUrl": "http://localhost:8000/examples/foo.js",
- },
- "location": Object {
- "column": 0,
- "line": 7,
- "sourceUrl": "http://localhost:8000/examples/foo.js",
- },
- "options": Object {
- "condition": null,
- "hidden": false,
- "logValue": null,
- },
-}
-`;
-
exports[`when adding breakpoints a corresponding pending breakpoint should be added 1`] = `
Object {
"astLocation": Object {
"index": 0,
"name": undefined,
"offset": Object {
+ "column": 0,
"line": 5,
"sourceId": "foo.js/originalSource",
"sourceUrl": "http://localhost:8000/examples/foo.js",
@@ -77,7 +47,7 @@ Object {
"sourceUrl": "http://localhost:8000/examples/foo.js",
},
"location": Object {
- "column": undefined,
+ "column": 0,
"line": 5,
"sourceUrl": "http://localhost:8000/examples/foo.js",
},
@@ -95,6 +65,7 @@ Object {
"index": 0,
"name": undefined,
"offset": Object {
+ "column": 0,
"line": 5,
"sourceId": "foo/originalSource",
"sourceUrl": "http://localhost:8000/examples/foo",
@@ -107,7 +78,7 @@ Object {
"sourceUrl": "http://localhost:8000/examples/foo",
},
"location": Object {
- "column": undefined,
+ "column": 0,
"line": 5,
"sourceUrl": "http://localhost:8000/examples/foo",
},
@@ -125,6 +96,7 @@ Object {
"index": 0,
"name": undefined,
"offset": Object {
+ "column": 0,
"line": 5,
"sourceId": "foo2/originalSource",
"sourceUrl": "http://localhost:8000/examples/foo2",
@@ -137,7 +109,7 @@ Object {
"sourceUrl": "http://localhost:8000/examples/foo2",
},
"location": Object {
- "column": undefined,
+ "column": 0,
"line": 5,
"sourceUrl": "http://localhost:8000/examples/foo2",
},
diff --git a/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js b/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js
index 5a8a5ba4b41b..547246a98a23 100644
--- a/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js
+++ b/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js
@@ -4,10 +4,7 @@
// @flow
-import { makeBreakpointActorId } from "../../../utils/breakpoint";
-
import type {
- SourceLocation,
SourceActor,
SourceActorLocation,
BreakpointOptions
@@ -65,39 +62,6 @@ export const simpleMockThreadClient = {
})
};
-// Breakpoint Sliding
-function generateCorrectingThreadClient(offset = 0) {
- return {
- getBreakpointByLocation: (jest.fn(): any),
- setBreakpoint: (location: SourceActorLocation, condition: string) => {
- const actualLocation = { ...location, line: location.line + offset };
-
- return Promise.resolve({
- id: makeBreakpointActorId(location),
- actualLocation,
- condition
- });
- },
- sourceContents: ({ source }: SourceActor) =>
- Promise.resolve(createSource(source))
- };
-}
-
-/* in some cases, a breakpoint may be added, but the source will respond
- * with a different breakpoint location. This is due to the breakpoint being
- * added between functions, or somewhere that doesnt make sense. This function
- * simulates that behavior.
- * */
-export function simulateCorrectThreadClient(
- offset: number,
- location: SourceLocation
-) {
- const correctedThreadClient = generateCorrectingThreadClient(offset);
- const offsetLine = { line: location.line + offset };
- const correctedLocation = { ...location, ...offsetLine };
- return { correctedThreadClient, correctedLocation };
-}
-
// sources and tabs
export const sourceThreadClient = {
sourceContents: function({
diff --git a/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js b/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js
index eae2c0d86ed9..b6ff81cf584b 100644
--- a/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js
+++ b/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js
@@ -10,10 +10,7 @@ import {
mockPendingBreakpoint
} from "./helpers/breakpoints.js";
-import {
- simulateCorrectThreadClient,
- simpleMockThreadClient
-} from "./helpers/threadClient.js";
+import { simpleMockThreadClient } from "./helpers/threadClient.js";
import { asyncStore } from "../../utils/prefs";
@@ -45,8 +42,7 @@ import {
selectors,
actions,
makeOriginalSource,
- waitForState,
- makeSource
+ waitForState
} from "../../utils/test-head";
import { makePendingLocationId } from "../../utils/breakpoint";
@@ -350,31 +346,3 @@ describe("adding sources", () => {
expect(selectors.getBreakpointCount(getState())).toEqual(1);
});
});
-
-describe("invalid breakpoint location", () => {
- it("a corrected corresponding pending breakpoint is added", async () => {
- // setup
- const bp = generateBreakpoint("foo.js");
- const {
- correctedThreadClient,
- correctedLocation
- } = simulateCorrectThreadClient(2, bp.location);
- const { dispatch, getState } = createStore(correctedThreadClient);
- const correctedPendingId = makePendingLocationId(correctedLocation);
-
- // test
- const csr = makeSource("foo.js");
- await dispatch(actions.newSource(csr));
- await dispatch(actions.loadSourceText(csr.source));
-
- // Fixup the breakpoint so that its location can be loaded.
- bp.location.sourceId = "foo.js";
- bp.generatedLocation = { ...bp.location };
-
- await dispatch(actions.addBreakpoint(bp.location));
- const pendingBps = selectors.getPendingBreakpoints(getState());
-
- const pendingBp = pendingBps[correctedPendingId];
- expect(pendingBp).toMatchSnapshot();
- });
-});
diff --git a/devtools/client/debugger/new/src/actions/tests/toolbox.spec.js b/devtools/client/debugger/new/src/actions/tests/toolbox.spec.js
deleted file mode 100644
index 92dcff18c0f8..000000000000
--- a/devtools/client/debugger/new/src/actions/tests/toolbox.spec.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import { actions, createStore } from "../../utils/test-head";
-const threadClient = {
- evaluate: jest.fn()
-};
-
-describe("toolbox", () => {
- describe("evaluate in console", () => {
- it("variable", () => {
- const { dispatch } = createStore(threadClient);
- dispatch(actions.evaluateInConsole("foo"));
-
- expect(threadClient.evaluate).toBeCalledWith(
- 'console.log("foo"); console.log(foo)',
- { frameId: null, thread: "UnknownThread" }
- );
- });
- });
-});
diff --git a/devtools/client/debugger/new/src/actions/types/BreakpointAction.js b/devtools/client/debugger/new/src/actions/types/BreakpointAction.js
index 4d619c7e9c0f..49e96622ad63 100644
--- a/devtools/client/debugger/new/src/actions/types/BreakpointAction.js
+++ b/devtools/client/debugger/new/src/actions/types/BreakpointAction.js
@@ -4,15 +4,15 @@
// @flow
-import type { Breakpoint, SourceLocation, XHRBreakpoint } from "../../types";
+import type {
+ Breakpoint,
+ SourceLocation,
+ XHRBreakpoint,
+ BreakpointLinePositions
+} from "../../types";
import type { PromiseAction } from "../utils/middleware/promise";
-type AddBreakpointResult = {
- previousLocation: SourceLocation,
- breakpoint: Breakpoint
-};
-
export type BreakpointAction =
| PromiseAction<
{|
@@ -20,7 +20,7 @@ export type BreakpointAction =
+breakpoint: Breakpoint,
+condition?: string
|},
- AddBreakpointResult
+ Breakpoint
>
| PromiseAction<{|
+type: "REMOVE_BREAKPOINT",
@@ -74,7 +74,7 @@ export type BreakpointAction =
+type: "ENABLE_BREAKPOINT",
+breakpoint: Breakpoint
|},
- AddBreakpointResult
+ Breakpoint
>
| {|
+type: "DISABLE_BREAKPOINT",
@@ -91,4 +91,9 @@ export type BreakpointAction =
| {|
+type: "REMAP_BREAKPOINTS",
+breakpoints: Breakpoint[]
+ |}
+ | {|
+ type: "ADD_BREAKPOINT_POSITIONS",
+ positions: BreakpointLinePositions,
+ location: SourceLocation
|};
diff --git a/devtools/client/debugger/new/src/actions/types/PauseAction.js b/devtools/client/debugger/new/src/actions/types/PauseAction.js
index 132ab757fb84..99cef7920769 100644
--- a/devtools/client/debugger/new/src/actions/types/PauseAction.js
+++ b/devtools/client/debugger/new/src/actions/types/PauseAction.js
@@ -18,7 +18,8 @@ export type PauseAction =
| {|
+type: "RESUME",
+thread: string,
- +value: void
+ +value: void,
+ +wasStepping: boolean
|}
| {|
+type: "PAUSED",
diff --git a/devtools/client/debugger/new/src/actions/utils/symbols.js b/devtools/client/debugger/new/src/actions/utils/symbols.js
deleted file mode 100644
index 0c5b3f6254eb..000000000000
--- a/devtools/client/debugger/new/src/actions/utils/symbols.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-// @flow
-
-import {
- type SymbolDeclaration,
- type SymbolDeclarations
-} from "../../workers/parser";
-
-import type { Source } from "../../types";
-
-function updateSymbolLocation(
- site: SymbolDeclaration,
- source: Source,
- sourceMaps: any
-) {
- return sourceMaps
- .getGeneratedLocation(
- { ...site.location.start, sourceId: source.id },
- source
- )
- .then(loc => {
- return {
- ...site,
- generatedLocation: { line: loc.line, column: loc.column }
- };
- });
-}
-
-export async function updateSymbolLocations(
- symbols: SymbolDeclarations,
- source: Source,
- sourceMaps: any
-): Promise {
- if (!symbols || !symbols.callExpressions) {
- return Promise.resolve(symbols);
- }
-
- const mappedCallExpressions = await Promise.all(
- symbols.callExpressions.map(site =>
- updateSymbolLocation(site, source, sourceMaps)
- )
- );
-
- const newSymbols = { ...symbols, callExpressions: mappedCallExpressions };
-
- return Promise.resolve(newSymbols);
-}
diff --git a/devtools/client/debugger/new/src/client/firefox/commands.js b/devtools/client/debugger/new/src/client/firefox/commands.js
index af21046694de..af146b368fa4 100644
--- a/devtools/client/debugger/new/src/client/firefox/commands.js
+++ b/devtools/client/debugger/new/src/client/firefox/commands.js
@@ -32,7 +32,7 @@ import type { PausePointsMap } from "../../workers/parser";
import { makeBreakpointActorId } from "../../utils/breakpoint";
-import { createSource, createBreakpointLocation, createWorker } from "./create";
+import { createSource, createWorker } from "./create";
import { supportsWorkers, updateWorkerClients } from "./workers";
import { features } from "../../utils/prefs";
@@ -189,9 +189,8 @@ function removeXHRBreakpoint(path: string, method: string) {
function setBreakpoint(
location: SourceActorLocation,
- options: BreakpointOptions,
- noSliding: boolean
-): Promise {
+ options: BreakpointOptions
+) {
const sourceThreadClient = lookupThreadClient(location.sourceActor.thread);
const sourceClient = sourceThreadClient.source({
actor: location.sourceActor.actor
@@ -202,17 +201,10 @@ function setBreakpoint(
line: location.line,
column: location.column,
options,
- noSliding
})
- .then(([{ actualLocation }, bpClient]) => {
- actualLocation = createBreakpointLocation(location, actualLocation);
-
- const id = makeBreakpointActorId(actualLocation);
+ .then(([, bpClient]) => {
+ const id = makeBreakpointActorId(location);
bpClients[id] = bpClient;
- bpClient.location.line = actualLocation.line;
- bpClient.location.column = actualLocation.column;
-
- return { id, actualLocation };
});
}
@@ -456,6 +448,23 @@ function getMainThread() {
return threadClient.actor;
}
+async function getBreakpointPositions(
+ location: SourceActorLocation
+): Promise> {
+ const {
+ sourceActor: { thread, actor },
+ line
+ } = location;
+ const sourceThreadClient = lookupThreadClient(thread);
+ const sourceClient = sourceThreadClient.source({ actor });
+ const { positions } = await sourceClient.getBreakpointPositionsCompressed({
+ start: { line },
+ end: { line }
+ });
+
+ return positions ? positions[line] : [];
+}
+
const clientCommands = {
autocomplete,
blackBox,
@@ -476,6 +485,7 @@ const clientCommands = {
sourceContents,
getSourceForActor,
getBreakpointByLocation,
+ getBreakpointPositions,
setBreakpoint,
setXHRBreakpoint,
removeXHRBreakpoint,
diff --git a/devtools/client/debugger/new/src/client/firefox/create.js b/devtools/client/debugger/new/src/client/firefox/create.js
index 71004c8bede2..114e6c23f302 100644
--- a/devtools/client/debugger/new/src/client/firefox/create.js
+++ b/devtools/client/debugger/new/src/client/firefox/create.js
@@ -5,7 +5,7 @@
// @flow
// This module converts Firefox specific types to the generic types
-import type { Frame, Source, SourceActorLocation, ThreadId } from "../../types";
+import type { Frame, Source, ThreadId } from "../../types";
import type {
PausedPacket,
FramesResponse,
@@ -96,25 +96,6 @@ export function createPause(
};
}
-// Firefox only returns `actualLocation` if it actually changed,
-// but we want it always to exist. Format `actualLocation` if it
-// exists, otherwise use `location`.
-
-export function createBreakpointLocation(
- location: SourceActorLocation,
- actualLocation?: Object
-): SourceActorLocation {
- if (!actualLocation) {
- return location;
- }
-
- return {
- ...location,
- line: actualLocation.line,
- column: actualLocation.column
- };
-}
-
export function createWorker(actor: string, url: string) {
return {
actor,
diff --git a/devtools/client/debugger/new/src/client/firefox/types.js b/devtools/client/debugger/new/src/client/firefox/types.js
index 1dd95b6e87cd..75cad3321319 100644
--- a/devtools/client/debugger/new/src/client/firefox/types.js
+++ b/devtools/client/debugger/new/src/client/firefox/types.js
@@ -330,9 +330,12 @@ export type SourceClient = {
setBreakpoint: ({
line: number,
column: ?number,
- condition: ?string,
- noSliding: boolean
+ condition: ?string
}) => Promise,
+ getBreakpointPositionsCompressed: (range: {
+ start: { line: number },
+ end: { line: number }
+ }) => Promise,
prettyPrint: number => Promise<*>,
disablePrettyPrint: () => Promise<*>,
blackBox: (range?: Range) => Promise<*>,
@@ -398,7 +401,7 @@ export type BreakpointClient = {
line: number,
column: ?number
},
- setOptions: (BreakpointOptions) => Promise,
+ setOptions: BreakpointOptions => Promise,
// request: any,
source: SourceClient,
options: BreakpointOptions
diff --git a/devtools/client/debugger/new/src/components/Editor/CallSites.js b/devtools/client/debugger/new/src/components/Editor/CallSites.js
deleted file mode 100644
index cc4b9a55af77..000000000000
--- a/devtools/client/debugger/new/src/components/Editor/CallSites.js
+++ /dev/null
@@ -1,238 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import React, { Component } from "react";
-import { connect } from "react-redux";
-
-import { range, keyBy, isEqualWith, uniqBy, groupBy, flatten } from "lodash";
-
-import CallSite from "./CallSite";
-
-import {
- getSelectedSource,
- getSymbols,
- getSelectedLocation,
- getBreakpointsForSource
-} from "../../selectors";
-
-import { getTokenLocation } from "../../utils/editor";
-import { isWasm } from "../../utils/wasm";
-
-import actions from "../../actions";
-
-function getCallSiteAtLocation(callSites, location) {
- return callSites.find(callSite =>
- isEqualWith(callSite.location, location, (cloc, loc) => {
- return (
- loc.line === cloc.start.line &&
- (loc.column >= cloc.start.column && loc.column <= cloc.end.column)
- );
- })
- );
-}
-
-class CallSites extends Component {
- props: {
- symbols: Array,
- callSites: Array,
- editor: Object,
- breakpoints: Map,
- addBreakpoint: Function,
- removeBreakpoint: Function,
- selectedSource: Object,
- selectedLocation: Object
- };
-
- componentDidMount() {
- const { editor } = this.props;
- const codeMirrorWrapper = editor.codeMirror.getWrapperElement();
-
- codeMirrorWrapper.addEventListener("click", e => this.onTokenClick(e));
- }
-
- componentWillUnmount() {
- const { editor } = this.props;
- const codeMirrorWrapper = editor.codeMirror.getWrapperElement();
-
- codeMirrorWrapper.removeEventListener("click", e => this.onTokenClick(e));
- }
-
- onTokenClick(e) {
- const { target } = e;
- const { editor, selectedLocation } = this.props;
-
- if (
- !target.classList.contains("call-site") &&
- !target.classList.contains("call-site-bp")
- ) {
- return;
- }
-
- const { sourceId } = selectedLocation;
- const { line, column } = getTokenLocation(editor.codeMirror, target);
-
- this.toggleBreakpoint(line, isWasm(sourceId) ? undefined : column);
- }
-
- toggleBreakpoint(line, column = undefined) {
- const {
- selectedSource,
- selectedLocation,
- addBreakpoint,
- removeBreakpoint,
- callSites
- } = this.props;
-
- const callSite = getCallSiteAtLocation(callSites, { line, column });
-
- if (!callSite) {
- return;
- }
-
- const bp = callSite.breakpoint;
-
- if ((bp && bp.loading) || !selectedLocation || !selectedSource) {
- return;
- }
-
- const { sourceId } = selectedLocation;
-
- if (bp) {
- // NOTE: it's possible the breakpoint has slid to a column
- column = column || bp.location.column;
- removeBreakpoint({
- sourceId: sourceId,
- line: line,
- column
- });
- } else {
- addBreakpoint({
- sourceId: sourceId,
- sourceUrl: selectedSource.url,
- line: line,
- column: column
- });
- }
- }
-
- // Return the call sites that are on the same line as an
- // existing line breakpoint
- filterCallSitesByLineNumber() {
- const { callSites, breakpoints } = this.props;
-
- // Get unique lines from breakpoints so we can filter out unwated call sites
- const uniqueBreakpointLines = new Set(
- breakpoints.map(bp => bp.location.line)
- );
-
- // Get call sites based on activated breakpoint lines
- const callSitesInRange = callSites.filter(({ location }) =>
- uniqueBreakpointLines.has(location.start.line)
- );
-
- // Group call sites by line
- const callSitesByLineObj = groupBy(callSitesInRange, "location.start.line");
-
- // Per group, ensure all call sites are unique
- return flatten(
- Object.values(callSitesByLineObj).map(arr => {
- const uniques = uniqBy(
- arr,
- site =>
- `${site.generatedLocation.line}:${site.generatedLocation.column}`
- );
- // Only return call sites for a line when more than 1 is found
- return uniques.length > 1 ? uniques : [];
- })
- );
- }
-
- render() {
- const { editor, callSites, selectedSource, breakpoints } = this.props;
-
- if (!callSites || breakpoints.length === 0) {
- return null;
- }
-
- const callSitesFiltered = this.filterCallSitesByLineNumber();
-
- let sites;
- editor.codeMirror.operation(() => {
- const childCallSites = callSitesFiltered.map((callSite, index) => {
- const props = {
- key: index,
- callSite,
- editor,
- source: selectedSource,
- breakpoint: callSite.breakpoint,
- showCallSite: true
- };
- return ;
- });
- sites = {childCallSites}
;
- });
- return sites;
- }
-}
-
-function getCallSites(symbols, breakpoints) {
- if (!symbols || !symbols.callExpressions) {
- return;
- }
-
- const callSites = symbols.callExpressions;
-
- // NOTE: we create a breakpoint map keyed on location
- // to speed up the lookups. Hopefully we'll fix the
- // inconsistency with column offsets so that we can expect
- // a breakpoint to be added at the beginning of a call expression.
- const bpLocationMap = keyBy(breakpoints, ({ location }) =>
- locationKey(location)
- );
-
- function locationKey({ line, column }) {
- return `${line}/${column}`;
- }
-
- function findBreakpoint(callSite) {
- const {
- location: { start, end }
- } = callSite;
-
- const breakpointId = range(start.column - 1, end.column)
- .map(column => locationKey({ line: start.line, column }))
- .find(key => bpLocationMap[key]);
-
- if (breakpointId) {
- return bpLocationMap[breakpointId];
- }
- }
-
- return callSites
- .filter(({ location }) => location.start.line === location.end.line)
- .map(callSite => ({ ...callSite, breakpoint: findBreakpoint(callSite) }));
-}
-
-const mapStateToProps = state => {
- const selectedLocation = getSelectedLocation(state);
- const selectedSource = getSelectedSource(state);
- const sourceId = selectedLocation && selectedLocation.sourceId;
- const symbols = getSymbols(state, selectedSource);
- const breakpoints = getBreakpointsForSource(state, sourceId);
-
- return {
- selectedLocation,
- selectedSource,
- callSites: getCallSites(symbols, breakpoints),
- breakpoints: breakpoints
- };
-};
-
-const { addBreakpoint, removeBreakpoint } = actions;
-const mapDispatchToProps = { addBreakpoint, removeBreakpoint };
-
-export default connect(
- mapStateToProps,
- mapDispatchToProps
-)(CallSites);
diff --git a/devtools/client/debugger/new/src/components/Editor/GutterMenu.js b/devtools/client/debugger/new/src/components/Editor/GutterMenu.js
deleted file mode 100644
index ae1352599d17..000000000000
--- a/devtools/client/debugger/new/src/components/Editor/GutterMenu.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import { Component } from "react";
-import { showMenu } from "devtools-contextmenu";
-import { connect } from "../../utils/connect";
-import { lineAtHeight } from "../../utils/editor";
-import { features } from "../../utils/prefs";
-import {
- getContextMenu,
- getEmptyLines,
- getSelectedLocation,
- getSelectedSource,
- getVisibleBreakpoints,
- isPaused as getIsPaused
-} from "../../selectors";
-
-import actions from "../../actions";
-
-type Props = {
- setContextMenu: Function,
- contextMenu: Object
-};
-
-export function gutterMenu({
- breakpoint,
- line,
- column,
- event,
- isPaused,
- toggleBreakpoint,
- openConditionalPanel,
- toggleDisabledBreakpoint,
- isCbPanelOpen,
- closeConditionalPanel,
- continueToHere,
- sourceId
-}) {
- event.stopPropagation();
- event.preventDefault();
-
- const gutterItems = {
- addBreakpoint: {
- id: "node-menu-add-breakpoint",
- label: L10N.getStr("editor.addBreakpoint")
- },
- addLogPoint: {
- id: "node-menu-add-log-point",
- label: L10N.getStr("editor.addLogPoint")
- },
- addConditional: {
- id: "node-menu-add-conditional-breakpoint",
- label: L10N.getStr("editor.addConditionBreakpoint")
- },
- removeBreakpoint: {
- id: "node-menu-remove-breakpoint",
- label: L10N.getStr("editor.removeBreakpoint")
- },
- editLogPoint: {
- id: "node-menu-edit-log-point",
- label: L10N.getStr("editor.editLogPoint")
- },
- editConditional: {
- id: "node-menu-edit-conditional-breakpoint",
- label: L10N.getStr("editor.editConditionBreakpoint")
- },
- enableBreakpoint: {
- id: "node-menu-enable-breakpoint",
- label: L10N.getStr("editor.enableBreakpoint")
- },
- disableBreakpoint: {
- id: "node-menu-disable-breakpoint",
- label: L10N.getStr("editor.disableBreakpoint")
- },
- continueToHere: {
- id: "node-menu-continue-to-here",
- label: L10N.getStr("editor.continueToHere.label")
- }
- };
-
- const toggleBreakpointItem = {
- accesskey: L10N.getStr("shortcuts.toggleBreakpoint.accesskey"),
- disabled: false,
- click: () => {
- toggleBreakpoint(line, column);
- if (isCbPanelOpen) {
- closeConditionalPanel();
- }
- },
- accelerator: L10N.getStr("toggleBreakpoint.key"),
- ...(breakpoint ? gutterItems.removeBreakpoint : gutterItems.addBreakpoint)
- };
-
- const logPoint = {
- accesskey: L10N.getStr("editor.addLogPoint.accesskey"),
- disabled: false,
- click: () =>
- openConditionalPanel(
- breakpoint ? breakpoint.location : { line, column, sourceId },
- true
- ),
- accelerator: L10N.getStr("toggleCondPanel.key"),
- ...(breakpoint && breakpoint.condition
- ? gutterItems.editLogPoint
- : gutterItems.addLogPoint)
- };
-
- const conditionalBreakpoint = {
- accesskey: L10N.getStr("editor.addConditionBreakpoint.accesskey"),
- disabled: false,
- // Leaving column undefined so pause points can be detected
- click: () =>
- openConditionalPanel(
- breakpoint ? breakpoint.location : { line, column, sourceId }
- ),
- accelerator: L10N.getStr("toggleCondPanel.key"),
- ...(breakpoint && breakpoint.condition
- ? gutterItems.editConditional
- : gutterItems.addConditional)
- };
-
- let items = [toggleBreakpointItem, conditionalBreakpoint];
-
- if (features.logPoints) {
- items.push(logPoint)
- }
-
- if (breakpoint && breakpoint.condition) {
- const remove = breakpoint.log ? conditionalBreakpoint : logPoint;
- items = items.filter(item => item !== remove);
- }
-
- if (isPaused) {
- const continueToHereItem = {
- accesskey: L10N.getStr("editor.continueToHere.accesskey"),
- disabled: false,
- click: () => continueToHere(line, column),
- ...gutterItems.continueToHere
- };
- items.push(continueToHereItem);
- }
-
- if (breakpoint) {
- const disableBreakpoint = {
- accesskey: L10N.getStr("editor.disableBreakpoint.accesskey"),
- disabled: false,
- click: () => toggleDisabledBreakpoint(line, column),
- ...(breakpoint.disabled
- ? gutterItems.enableBreakpoint
- : gutterItems.disableBreakpoint)
- };
- items.push(disableBreakpoint);
- }
-
- showMenu(event, items);
-}
-
-class GutterContextMenuComponent extends Component {
- props: Props;
-
- shouldComponentUpdate(nextProps) {
- return nextProps.contextMenu.type === "Gutter";
- }
-
- componentWillUpdate(nextProps) {
- // clear the context menu since it is open
- this.props.setContextMenu("", null);
- return this.showMenu(nextProps);
- }
-
- showMenu(nextProps) {
- const { contextMenu, ...props } = nextProps;
- const { event } = contextMenu;
-
- const sourceId = props.selectedSource ? props.selectedSource.id : "";
- const line = lineAtHeight(props.editor, sourceId, event);
- const column = props.editor.codeMirror.coordsChar({
- left: event.x,
- top: event.y
- }).ch;
- const breakpoint = nextProps.breakpoints.find(
- bp => bp.location.line === line && bp.location.column === column
- );
-
- // Allow getFirstVisiblePausePoint to find the best first breakpoint
- // position by not providing an explicit column number
- if (features.columnBreakpoints && !breakpoint && column === 0) {
- column = undefined;
- }
-
- gutterMenu({ event, sourceId, line, column, breakpoint, ...props });
- }
-
- render() {
- return null;
- }
-}
-
-const mapStateToProps = state => {
- const selectedSource = getSelectedSource(state);
-
- return {
- selectedLocation: getSelectedLocation(state),
- selectedSource: selectedSource,
- breakpoints: getVisibleBreakpoints(state),
- isPaused: getIsPaused(state),
- contextMenu: getContextMenu(state),
- emptyLines: getEmptyLines(state, selectedSource.id)
- };
-};
-
-export default connect(
- mapStateToProps,
- actions
-)(GutterContextMenuComponent);
diff --git a/devtools/client/debugger/new/src/components/Editor/HitMarker.js b/devtools/client/debugger/new/src/components/Editor/HitMarker.js
deleted file mode 100644
index 941d4c7bab31..000000000000
--- a/devtools/client/debugger/new/src/components/Editor/HitMarker.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-// @flow
-import { Component } from "react";
-
-const markerEl = document.createElement("div");
-
-function makeMarker() {
- const marker = markerEl.cloneNode(true);
- marker.className = "editor hit-marker";
- return marker;
-}
-
-type Props = {
- hitData: { [string]: any },
- editor: any
-};
-
-class HitMarker extends Component {
- addMarker() {
- const hitData = this.props.hitData;
- const line = hitData.line - 1;
-
- this.props.editor.setGutterMarker(line, "hit-markers", makeMarker());
-
- this.props.editor.addLineClass(line, "line", "hit-marker");
- }
-
- shouldComponentUpdate(nextProps: any) {
- return (
- this.props.editor !== nextProps.editor ||
- this.props.hitData !== nextProps.hitData
- );
- }
-
- componentDidMount() {
- this.addMarker();
- }
-
- componentDidUpdate() {
- this.addMarker();
- }
-
- componentWillUnmount() {
- const hitData = this.props.hitData;
- const line = hitData.line - 1;
-
- this.props.editor.setGutterMarker(line, "hit-markers", null);
- this.props.editor.removeLineClass(line, "line", "hit-marker");
- }
-
- render() {
- return null;
- }
-}
-
-export default HitMarker;
diff --git a/devtools/client/debugger/new/src/components/Editor/Tabs.css b/devtools/client/debugger/new/src/components/Editor/Tabs.css
index 345a05286097..cd2b0992465e 100644
--- a/devtools/client/debugger/new/src/components/Editor/Tabs.css
+++ b/devtools/client/debugger/new/src/components/Editor/Tabs.css
@@ -15,6 +15,13 @@
user-select: none;
}
+.source-header .command-bar {
+ flex: initial;
+ flex-shrink: 0;
+ border-bottom: 0;
+ border-inline-start: 1px solid var(--theme-splitter-color);
+}
+
.source-tabs {
max-width: calc(100% - 80px);
align-self: flex-start;
@@ -43,7 +50,8 @@
width: 100%;
height: 2px;
background-color: var(--tab-line-color, transparent);
- transition: transform 250ms var(--animation-curve), opacity 250ms var(--animation-curve);
+ transition: transform 250ms var(--animation-curve),
+ opacity 250ms var(--animation-curve);
opacity: 0;
transform: scaleX(0);
}
diff --git a/devtools/client/debugger/new/src/components/Editor/Tabs.js b/devtools/client/debugger/new/src/components/Editor/Tabs.js
index a545cc78092c..34c6fdff53dc 100644
--- a/devtools/client/debugger/new/src/components/Editor/Tabs.js
+++ b/devtools/client/debugger/new/src/components/Editor/Tabs.js
@@ -7,7 +7,11 @@
import React, { PureComponent } from "react";
import { connect } from "../../utils/connect";
-import { getSelectedSource, getSourcesForTabs } from "../../selectors";
+import {
+ getSelectedSource,
+ getSourcesForTabs,
+ getIsPaused
+} from "../../selectors";
import { isVisible } from "../../utils/ui";
import { getHiddenTabs } from "../../utils/tabs";
@@ -21,6 +25,7 @@ import Tab from "./Tab";
import { PaneToggleButton } from "../shared/Button";
import Dropdown from "../shared/Dropdown";
import AccessibleImage from "../shared/AccessibleImage";
+import CommandBar from "../SecondaryPanes/CommandBar";
import type { Source } from "../../types";
@@ -36,7 +41,8 @@ type Props = {
closeTab: typeof actions.closeTab,
togglePaneCollapse: typeof actions.togglePaneCollapse,
showSource: typeof actions.showSource,
- selectSource: typeof actions.selectSource
+ selectSource: typeof actions.selectSource,
+ isPaused: boolean
};
type State = {
@@ -170,6 +176,15 @@ class Tabs extends PureComponent {
return ;
}
+ renderCommandBar() {
+ const { horizontal, endPanelCollapsed, isPaused } = this.props;
+ if (!endPanelCollapsed || !isPaused) {
+ return;
+ }
+
+ return ;
+ }
+
renderStartPanelToggleButton() {
return (
{
{this.renderTabs()}
{this.renderDropdown()}
{this.renderEndPanelToggleButton()}
+ {this.renderCommandBar()}
);
}
@@ -210,7 +226,8 @@ class Tabs extends PureComponent
{
const mapStateToProps = state => ({
selectedSource: getSelectedSource(state),
- tabSources: getSourcesForTabs(state)
+ tabSources: getSourcesForTabs(state),
+ isPaused: getIsPaused(state)
});
export default connect(
diff --git a/devtools/client/debugger/new/src/components/PrimaryPanes/Sources.css b/devtools/client/debugger/new/src/components/PrimaryPanes/Sources.css
index 725114e45bc0..a2ad9742e523 100644
--- a/devtools/client/debugger/new/src/components/PrimaryPanes/Sources.css
+++ b/devtools/client/debugger/new/src/components/PrimaryPanes/Sources.css
@@ -99,10 +99,6 @@
color: inherit;
}
-.sources-list .tree .img.arrow.expanded {
- transform: rotate(0deg);
-}
-
.theme-dark .source-list .tree .node.focused {
background-color: var(--theme-tab-toolbar-background);
}
diff --git a/devtools/client/debugger/new/src/components/PrimaryPanes/SourcesTree.js b/devtools/client/debugger/new/src/components/PrimaryPanes/SourcesTree.js
index 105079461c0f..ba6c6663008b 100644
--- a/devtools/client/debugger/new/src/components/PrimaryPanes/SourcesTree.js
+++ b/devtools/client/debugger/new/src/components/PrimaryPanes/SourcesTree.js
@@ -98,7 +98,6 @@ class SourcesTree extends Component {
componentWillReceiveProps(nextProps: Props) {
const {
- thread,
projectRoot,
debuggeeUrl,
sources,
diff --git a/devtools/client/debugger/new/src/components/PrimaryPanes/tests/SourcesTree.spec.js b/devtools/client/debugger/new/src/components/PrimaryPanes/tests/SourcesTree.spec.js
index 174482de594e..dae15bbccb08 100644
--- a/devtools/client/debugger/new/src/components/PrimaryPanes/tests/SourcesTree.spec.js
+++ b/devtools/client/debugger/new/src/components/PrimaryPanes/tests/SourcesTree.spec.js
@@ -196,7 +196,7 @@ describe("SourcesTree", () => {
await component
.find(".sources-list")
.simulate("keydown", { keyCode: 13 });
- // expect(props.selectSource).toHaveBeenCalledWith(item.contents.id);
+ expect(props.selectSource).toHaveBeenCalledWith(item.contents.id);
});
});
@@ -370,7 +370,7 @@ function generateDefaults(overrides: Object) {
autoExpandAll: true,
selectSource: jest.fn(),
setExpandedState: jest.fn(),
- sources: { FakeThread: defaultSources },
+ sources: defaultSources,
debuggeeUrl: "http://mdn.com",
clearProjectDirectoryRoot: jest.fn(),
setProjectDirectoryRoot: jest.fn(),
diff --git a/devtools/client/debugger/new/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap b/devtools/client/debugger/new/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
index c77809e8309e..dc35051c97b6 100644
--- a/devtools/client/debugger/new/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
+++ b/devtools/client/debugger/new/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
@@ -6,10 +6,32 @@ exports[`SourcesTree After changing expanded nodes Shows the tree with four.js,
key="pane"
>
- This page has no sources
+
`;
@@ -20,10 +42,25 @@ exports[`SourcesTree Should show the tree with nothing expanded 1`] = `
key="pane"
>
- This page has no sources
+
`;
@@ -34,10 +71,32 @@ exports[`SourcesTree When loading initial source Shows the tree with one.js, two
key="pane"
>
- This page has no sources
+
`;
@@ -48,8 +107,9 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
key="pane"
>
. */
-.frames [role="list"] .frames-group .group,
-.frames [role="list"] .frames-group .group .location {
+.frames ul .frames-group .group,
+.frames ul .frames-group .group .location {
font-weight: 500;
cursor: default;
/*
@@ -14,30 +14,25 @@
direction: ltr;
}
-.frames [role="list"] .frames-group.expanded .group,
-.frames [role="list"] .frames-group.expanded .group .location {
+.frames ul .frames-group.expanded .group,
+.frames ul .frames-group.expanded .group .location {
color: var(--theme-highlight-blue);
}
-.frames [role="list"] .frames-group.expanded .react path {
+.frames ul .frames-group.expanded .react path {
fill: var(--theme-highlight-blue);
}
-.frames [role="list"] .frames-group .frames-list [role="listitem"] {
+.frames ul .frames-group .frames-list li {
padding-left: 30px;
}
-.frames [role="list"] .frames-group .frames-list {
+.frames ul .frames-group .frames-list {
border-top: 1px solid var(--theme-splitter-color);
border-bottom: 1px solid var(--theme-splitter-color);
}
-/* We don't want to display those as flex since only the name is displayed */
-.frames [role="list"] .frames-group .frames-list [role="listitem"] {
- display: block;
-}
-
-.frames [role="list"] .frames-group.expanded .badge {
+.frames ul .frames-group.expanded .badge {
color: var(--theme-highlight-blue);
}
diff --git a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/Frame.spec.js b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/Frame.spec.js
index d297ab22daa8..438a340da760 100644
--- a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/Frame.spec.js
+++ b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/Frame.spec.js
@@ -70,7 +70,7 @@ describe("Frame", () => {
const props = frameProperties(frame, null);
const component = mount( );
- expect(component.text()).toBe("\trenderFoo foo-view.js:10\n");
+ expect(component.text()).toBe(" renderFoo foo-view.js:10");
});
it("full URL", () => {
@@ -80,7 +80,7 @@ describe("Frame", () => {
const props = frameProperties(frame, null, { displayFullUrl: true });
const component = mount( );
- expect(component.text()).toBe(`renderFoo ${url}:10`);
+ expect(component.text()).toBe(` renderFoo ${url}:10`);
});
it("getFrameTitle", () => {
diff --git a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
index 0491d84955f2..7aaa8394d887 100644
--- a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
+++ b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
@@ -65,6 +65,9 @@ exports[`Group displays a group 1`] = `
1
+
`;
@@ -134,11 +137,16 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
3
+
-
+
-
+
-
+
3
+
`;
@@ -561,11 +576,16 @@ exports[`Group renders group with anonymous functions 2`] = `
3
+
-
+
-
+
-
+
. */
-
-import type { Frame } from "../../../types";
-
-export type LocalFrame = Frame & {
- library: string,
- source: Source
-};
diff --git a/devtools/client/debugger/new/src/components/SecondaryPanes/FrameworkComponent.js b/devtools/client/debugger/new/src/components/SecondaryPanes/FrameworkComponent.js
deleted file mode 100644
index 705855ea2685..000000000000
--- a/devtools/client/debugger/new/src/components/SecondaryPanes/FrameworkComponent.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at
. */
-
-import React, { PureComponent } from "react";
-import { connect } from "../../utils/connect";
-import actions from "../../actions";
-
-import { createObjectClient } from "../../client/firefox";
-import { getSelectedFrame, getAllPopupObjectProperties } from "../../selectors";
-
-import { objectInspector } from "devtools-reps";
-import { isReactComponent } from "../../utils/preview";
-
-import type { Frame } from "../../types";
-
-const {
- component: ObjectInspector,
- utils: {
- createNode,
- getChildren,
- loadProperties: { loadItemProperties }
- }
-} = objectInspector;
-
-type Props = {
- selectedFrame: Frame,
- popupObjectProperties: Object,
- setPopupObjectProperties: typeof actions.setPopupObjectProperties,
- openElementInInspector: typeof actions.setPopupObjectProperties
-};
-
-class FrameworkComponent extends PureComponent
{
- async componentWillMount() {
- const expression = "this;";
- const { selectedFrame, setPopupObjectProperties } = this.props;
- const value = selectedFrame.this;
-
- const root = createNode({ name: expression, contents: { value } });
- const properties = await loadItemProperties(root, createObjectClient);
- if (properties) {
- setPopupObjectProperties(value, properties);
- }
- }
-
- renderReactComponent() {
- const {
- selectedFrame,
- popupObjectProperties,
- openElementInInspector
- } = this.props;
- const expression = "this;";
- const value = selectedFrame.this;
- const root = {
- name: expression,
- path: expression,
- contents: { value }
- };
-
- const loadedRootProperties = popupObjectProperties[value.actor];
- if (!loadedRootProperties) {
- return null;
- }
-
- let roots = getChildren({
- item: root,
- loadedProperties: new Map([[root.path, loadedRootProperties]])
- });
-
- roots = roots.filter(r => ["state", "props"].includes(r.name));
-
- return (
-
- createObjectClient(grip)}
- onDOMNodeClick={grip => openElementInInspector(grip)}
- onInspectIconClick={grip => openElementInInspector(grip)}
- />
-
- );
- }
-
- render() {
- const { selectedFrame } = this.props;
- if (selectedFrame && isReactComponent(selectedFrame.this)) {
- return this.renderReactComponent();
- }
-
- return null;
- }
-}
-
-const mapStateToProps = state => ({
- selectedFrame: getSelectedFrame(state),
- popupObjectProperties: getAllPopupObjectProperties(state)
-});
-
-export default connect(
- mapStateToProps,
- {
- setPopupObjectProperties: actions.setPopupObjectProperties,
- openElementInInspector: actions.openElementInInspectorCommand
- }
-)(FrameworkComponent);
diff --git a/devtools/client/debugger/new/src/components/shared/AccessibleImage.css b/devtools/client/debugger/new/src/components/shared/AccessibleImage.css
index 822ef8734d7a..fa774379ef9d 100644
--- a/devtools/client/debugger/new/src/components/shared/AccessibleImage.css
+++ b/devtools/client/debugger/new/src/components/shared/AccessibleImage.css
@@ -7,3 +7,7 @@
background: var(--theme-icon-color);
mask-size: 100%;
}
+
+.img.arrow.arrow.expanded {
+ transform: rotate(0deg);
+}
diff --git a/devtools/client/debugger/new/src/components/shared/tests/Svg.spec.js b/devtools/client/debugger/new/src/components/shared/tests/Svg.spec.js
deleted file mode 100644
index 3500b4b3a9d2..000000000000
--- a/devtools/client/debugger/new/src/components/shared/tests/Svg.spec.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import { shallow } from "enzyme";
-import Svg from "../Svg";
-
-describe("Svg", () => {
- it("renders with props", () => {
- const wrapper = shallow(
- Svg({
- name: "webpack",
- className: "class",
- onClick: () => {},
- "aria-label": "label"
- })
- );
- expect(wrapper).toMatchSnapshot();
- });
-
- it("render nothing if invalid svg name", () => {
- const svg = Svg({ name: "reallyRandomNameHere" });
- expect(svg).toBe(null);
- });
-
- it("calls onClick method on click", () => {
- const onClick = jest.fn();
- const wrapper = shallow(
- Svg({
- name: "webpack",
- className: "class",
- onClick,
- "aria-label": "label"
- })
- );
- wrapper.simulate("click");
- expect(onClick).toBeCalledTimes(1);
- });
-});
diff --git a/devtools/client/debugger/new/src/components/shared/tests/__snapshots__/Svg.spec.js.snap b/devtools/client/debugger/new/src/components/shared/tests/__snapshots__/Svg.spec.js.snap
deleted file mode 100644
index eabfc73f39c2..000000000000
--- a/devtools/client/debugger/new/src/components/shared/tests/__snapshots__/Svg.spec.js.snap
+++ /dev/null
@@ -1,15 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Svg renders with props 1`] = `
-",
- }
- }
- onClick={[Function]}
- src={null}
-/>
-`;
diff --git a/devtools/client/debugger/new/src/reducers/ast.js b/devtools/client/debugger/new/src/reducers/ast.js
index 6f040e5e1bb4..cb2011d99737 100644
--- a/devtools/client/debugger/new/src/reducers/ast.js
+++ b/devtools/client/debugger/new/src/reducers/ast.js
@@ -232,30 +232,6 @@ export function getPausePoint(
}
}
-export function getFirstPausePointLocation(
- state: OuterState,
- location: SourceLocation
-): SourceLocation {
- const { sourceId } = location;
- const pausePoints = getPausePoints(state, location.sourceId);
- if (!pausePoints) {
- return location;
- }
-
- const pausesAtLine = pausePoints.filter(
- point => point.location.line == location.line
- );
-
- if (pausesAtLine) {
- const values: PausePoint[] = (Object.values(pausesAtLine): any);
- const firstPausePoint = values.find(pausePoint => pausePoint.types.break);
- if (firstPausePoint) {
- return { ...firstPausePoint.location, sourceId };
- }
- }
- return location;
-}
-
export function hasPausePoints(state: OuterState, sourceId: string): boolean {
const pausePoints = getPausePoints(state, sourceId);
return !!pausePoints;
diff --git a/devtools/client/debugger/new/src/reducers/breakpoints.js b/devtools/client/debugger/new/src/reducers/breakpoints.js
index bd77b836666b..f158ca5f2892 100644
--- a/devtools/client/debugger/new/src/reducers/breakpoints.js
+++ b/devtools/client/debugger/new/src/reducers/breakpoints.js
@@ -18,7 +18,10 @@ import type {
XHRBreakpoint,
Breakpoint,
BreakpointId,
- SourceLocation
+ SourceLocation,
+ BreakpointPositions,
+ BreakpointLinePositions,
+ BreakpointSourcePositions
} from "../types";
import type { Action, DonePromiseAction } from "../actions/types";
@@ -27,7 +30,9 @@ export type XHRBreakpointsList = $ReadOnlyArray;
export type BreakpointsState = {
breakpoints: BreakpointsMap,
- xhrBreakpoints: XHRBreakpointsList
+ breakpointPositions: BreakpointPositions,
+ xhrBreakpoints: XHRBreakpointsList,
+ breakpointsDisabled: boolean
};
export function initialBreakpointsState(
@@ -36,6 +41,7 @@ export function initialBreakpointsState(
return {
breakpoints: {},
xhrBreakpoints: xhrBreakpoints,
+ breakpointPositions: {},
breakpointsDisabled: false
};
}
@@ -104,6 +110,21 @@ function update(
case "DISABLE_XHR_BREAKPOINT": {
return updateXHRBreakpoint(state, action);
}
+
+ case "ADD_BREAKPOINT_POSITIONS": {
+ const {
+ location: { sourceId, line },
+ positions
+ } = action;
+ const sourcePositions = state.breakpointPositions[sourceId] || {};
+ return {
+ ...state,
+ breakpointPositions: {
+ ...state.breakpointPositions,
+ [sourceId]: { ...sourcePositions, [line]: positions }
+ }
+ };
+ }
}
return state;
@@ -186,7 +207,7 @@ function addBreakpoint(state, action): BreakpointsState {
// when the action completes, we can commit the breakpoint
if (action.status === "done") {
const { value } = ((action: any): DonePromiseAction);
- return syncBreakpoint(state, value);
+ return syncBreakpoint(state, { breakpoint: value, previousLocation: null });
}
// Remove the optimistic update
@@ -331,4 +352,27 @@ export function getHiddenBreakpoint(state: OuterState): ?Breakpoint {
return breakpoints.find(bp => bp.options.hidden);
}
+export function getBreakpointPositions(
+ state: OuterState
+): ?BreakpointPositions {
+ return state.breakpoints.breakpointPositions;
+}
+
+export function getBreakpointPositionsForSource(
+ state: OuterState,
+ sourceId: string
+): ?BreakpointSourcePositions {
+ const positions = getBreakpointPositions(state);
+ return positions && positions[sourceId];
+}
+
+export function getBreakpointPositionsForLine(
+ state: OuterState,
+ sourceId: string,
+ line: number
+): ?BreakpointLinePositions {
+ const positions = getBreakpointPositionsForSource(state, sourceId);
+ return positions ? positions[line] : null;
+}
+
export default update;
diff --git a/devtools/client/debugger/new/src/reducers/pause.js b/devtools/client/debugger/new/src/reducers/pause.js
index 3b04d721b2d6..a3cef3d2b5ba 100644
--- a/devtools/client/debugger/new/src/reducers/pause.js
+++ b/devtools/client/debugger/new/src/reducers/pause.js
@@ -69,6 +69,7 @@ type ThreadPauseState = {
shouldPauseOnCaughtExceptions: boolean,
command: Command,
lastCommand: Command,
+ wasStepping: boolean,
previousLocation: ?MappedLocation,
skipPausing: boolean
};
@@ -277,7 +278,10 @@ function update(
if (!action.thread && !state.currentThread) {
return state;
}
- return updateThreadState(resumedPauseState);
+ return updateThreadState({
+ ...resumedPauseState,
+ wasStepping: !!action.wasStepping
+ });
case "EVALUATE_EXPRESSION":
return updateThreadState({
@@ -359,6 +363,10 @@ export function getLastCommand(state: OuterState, thread: string) {
return getThreadPauseState(state.pause, thread).lastCommand;
}
+export function wasStepping(state: OuterState): boolean {
+ return getCurrentPauseState(state).wasStepping;
+}
+
export function isStepping(state: OuterState) {
return ["stepIn", "stepOver", "stepOut"].includes(getPauseCommand(state));
}
diff --git a/devtools/client/debugger/new/src/reducers/pending-breakpoints.js b/devtools/client/debugger/new/src/reducers/pending-breakpoints.js
index 2a17353546eb..e3a4ac96a239 100644
--- a/devtools/client/debugger/new/src/reducers/pending-breakpoints.js
+++ b/devtools/client/debugger/new/src/reducers/pending-breakpoints.js
@@ -69,15 +69,7 @@ function addBreakpoint(state, action) {
return state;
}
// when the action completes, we can commit the breakpoint
- const {
- breakpoint,
- previousLocation
- } = ((action: any): DonePromiseAction).value;
-
- if (previousLocation) {
- const previousLocationId = makePendingLocationId(previousLocation);
- state = deleteBreakpoint(state, previousLocationId);
- }
+ const breakpoint = ((action: any): DonePromiseAction).value;
const locationId = makePendingLocationId(breakpoint.location);
const pendingBreakpoint = createPendingBreakpoint(breakpoint);
diff --git a/devtools/client/debugger/new/src/selectors/index.js b/devtools/client/debugger/new/src/selectors/index.js
index ea794e38771e..4927f521f496 100644
--- a/devtools/client/debugger/new/src/selectors/index.js
+++ b/devtools/client/debugger/new/src/selectors/index.js
@@ -30,7 +30,8 @@ export {
} from "./breakpointAtLocation";
export {
getVisibleBreakpoints,
- getFirstVisibleBreakpoints
+ getFirstVisibleBreakpoints,
+ getFirstVisibleBreakpointPosition
} from "./visibleBreakpoints";
export { inComponent } from "./inComponent";
export { isSelectedFrameVisible } from "./isSelectedFrameVisible";
diff --git a/devtools/client/debugger/new/src/selectors/visibleBreakpoints.js b/devtools/client/debugger/new/src/selectors/visibleBreakpoints.js
index c95ba8cdb6f5..8d3bef83f770 100644
--- a/devtools/client/debugger/new/src/selectors/visibleBreakpoints.js
+++ b/devtools/client/debugger/new/src/selectors/visibleBreakpoints.js
@@ -7,14 +7,24 @@
import { createSelector } from "reselect";
import { uniqBy } from "lodash";
-import { getBreakpointsList } from "../reducers/breakpoints";
+import {
+ getBreakpointsList,
+ getBreakpointPositionsForLine,
+ getBreakpointPositions
+} from "../reducers/breakpoints";
+import { getPausePoints } from "../reducers/ast";
import { getSelectedSource } from "../reducers/sources";
import { sortBreakpoints } from "../utils/breakpoint";
import { getSelectedLocation } from "../utils/source-maps";
-import type { Breakpoint, Source } from "../types";
-import type { Selector } from "../reducers/types";
+import type {
+ Breakpoint,
+ Source,
+ SourceLocation,
+ BreakpointPositions
+} from "../types";
+import type { Selector, State } from "../reducers/types";
function isVisible(breakpoint: Breakpoint, selectedSource: Source) {
const location = getSelectedLocation(breakpoint, selectedSource);
@@ -27,7 +37,12 @@ function isVisible(breakpoint: Breakpoint, selectedSource: Source) {
export const getVisibleBreakpoints: Selector(Breakpoint[])> = createSelector(
getSelectedSource,
getBreakpointsList,
- (selectedSource: ?Source, breakpoints: Breakpoint[]) => {
+ getBreakpointPositions,
+ (
+ selectedSource: ?Source,
+ breakpoints: Breakpoint[],
+ positions: ?BreakpointPositions
+ ) => {
if (selectedSource == null) {
return null;
}
@@ -39,6 +54,33 @@ export const getVisibleBreakpoints: Selector(Breakpoint[])> = createSelector(
}
);
+export function getFirstVisibleBreakpointPosition(
+ state: State,
+ location: SourceLocation
+): ?SourceLocation {
+ const { sourceId, line } = location;
+ const pausePoints = getPausePoints(state, location.sourceId);
+ const positions = getBreakpointPositionsForLine(state, sourceId, line);
+
+ if (!pausePoints || !positions) {
+ return null;
+ }
+
+ const pausesAtLine = pausePoints.filter(
+ p => p.location.line == line && positions.includes(p.location.column)
+ );
+
+ if (pausesAtLine.length > 0) {
+ const firstPausePoint = pausesAtLine.find(
+ pausePoint => pausePoint.types.break
+ );
+ if (firstPausePoint) {
+ return { ...firstPausePoint.location, sourceId };
+ }
+ }
+ return location;
+}
+
/*
* Finds the first breakpoint per line, which appear in the selected source.
*/
diff --git a/devtools/client/debugger/new/src/types.js b/devtools/client/debugger/new/src/types.js
index bcac69df906f..4292bc032bac 100644
--- a/devtools/client/debugger/new/src/types.js
+++ b/devtools/client/debugger/new/src/types.js
@@ -441,3 +441,8 @@ export type Cancellable = {
export type EventListenerBreakpoints = string[];
export type SourceDocuments = { [string]: Object };
+
+export type BreakpointPosition = { line: number, string: number };
+export type BreakpointLinePositions = Array;
+export type BreakpointSourcePositions = { [number]: BreakpointLinePositions };
+export type BreakpointPositions = { [string]: BreakpointSourcePositions };
diff --git a/devtools/client/debugger/new/src/utils/bootstrap.js b/devtools/client/debugger/new/src/utils/bootstrap.js
index 3913e30b9f38..97c014f12f84 100644
--- a/devtools/client/debugger/new/src/utils/bootstrap.js
+++ b/devtools/client/debugger/new/src/utils/bootstrap.js
@@ -22,6 +22,7 @@ import App from "../components/App";
import { asyncStore, prefs } from "./prefs";
import type { Panel } from "../client/firefox/types";
+import typeof SourceMaps from "../../packages/devtools-source-map/src";
function renderPanel(component, store) {
const root = document.createElement("div");
@@ -41,7 +42,7 @@ function renderPanel(component, store) {
export function bootstrapStore(
client: any,
- sourceMaps: Object,
+ sourceMaps: SourceMaps,
panel: Panel,
initialState: Object
) {
diff --git a/devtools/client/debugger/new/src/utils/createSelector.js b/devtools/client/debugger/new/src/utils/createSelector.js
deleted file mode 100644
index 91f0b61a1c28..000000000000
--- a/devtools/client/debugger/new/src/utils/createSelector.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at . */
-
-import { createSelector as reselectCreateSelector } from "reselect";
-
-function createSelector(...args) {
- // $FlowFixMe
- return reselectCreateSelector(...args);
-}
-
-export { createSelector };
diff --git a/devtools/client/debugger/new/src/utils/quick-open.js b/devtools/client/debugger/new/src/utils/quick-open.js
index bebc4638fd4f..aba58af939f2 100644
--- a/devtools/client/debugger/new/src/utils/quick-open.js
+++ b/devtools/client/debugger/new/src/utils/quick-open.js
@@ -16,15 +16,12 @@ import type { Location as BabelLocation } from "@babel/types";
import type { Symbols } from "../reducers/ast";
import type { QuickOpenType } from "../reducers/quick-open";
import type { TabList } from "../reducers/tabs";
-import type { SourcesMapByThread } from "../reducers/types";
import type { Source } from "../types";
import type {
SymbolDeclaration,
IdentifierDeclaration
} from "../workers/parser";
-import { flatten } from "lodash";
-
export const MODIFIERS = {
"@": "functions",
"#": "variables",
diff --git a/devtools/client/debugger/new/src/workers/parser/getScopes/visitor.js b/devtools/client/debugger/new/src/workers/parser/getScopes/visitor.js
index 4f11181041ed..c333cc381dcf 100644
--- a/devtools/client/debugger/new/src/workers/parser/getScopes/visitor.js
+++ b/devtools/client/debugger/new/src/workers/parser/getScopes/visitor.js
@@ -13,7 +13,6 @@ import type {
Location as BabelLocation
} from "@babel/types";
-import { isGeneratedId } from "devtools-source-map";
import getFunctionName from "../utils/getFunctionName";
import { getAst } from "../utils/ast";
@@ -153,6 +152,10 @@ type ScopeCollectionVisitorState = {
declarationBindingIds: Set
};
+function isGeneratedId(id: string) {
+ return !/\/originalSource/.test(id);
+}
+
export function parseSourceScopes(sourceId: SourceId): ?Array {
const ast = getAst(sourceId);
if (isEmpty(ast)) {
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-breakpoints.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-breakpoints.js
index f690d887107a..328a08e4511f 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-breakpoints.js
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-breakpoints.js
@@ -35,15 +35,6 @@ function enableBreakpoints(dbg, count) {
return enabled;
}
-function findBreakpoint(dbg, url, line) {
- const {
- selectors: { getBreakpoint },
- getState
- } = dbg;
- const source = findSource(dbg, url);
- return getBreakpoint(getState(), { sourceId: source.id, line });
-}
-
// Test enabling and disabling a breakpoint using the check boxes
add_task(async function() {
const dbg = await initDebugger("doc-scripts.html", "simple2");
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-browser-content-toolbox.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-browser-content-toolbox.js
index a050084c0d60..7b7005c766cc 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-browser-content-toolbox.js
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-browser-content-toolbox.js
@@ -31,15 +31,6 @@ async function enableBreakpoint(dbg, index) {
await enabled;
}
-function findBreakpoint(dbg, url, line) {
- const {
- selectors: { getBreakpoint },
- getState
- } = dbg;
- const source = findSource(dbg, url);
- return getBreakpoint(getState(), { sourceId: source.id, line });
-}
-
add_task(async function() {
clearDebuggerPreferences();
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps2.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps2.js
index 5519dd75df0a..312ad94e1581 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps2.js
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps2.js
@@ -30,7 +30,7 @@ add_task(async function() {
await selectSource(dbg, mainSrc);
// Test that breakpoint is not off by a line.
- await addBreakpoint(dbg, mainSrc, 4);
+ await addBreakpoint(dbg, mainSrc, 4, 2);
is(getBreakpointCount(getState()), 1, "One breakpoint exists");
ok(
getBreakpoint(getState(), { sourceId: mainSrc.id, line: 4, column: 2 }),
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps3.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps3.js
index 78c8c300bcaa..7fdcdd7ebb67 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps3.js
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps3.js
@@ -22,7 +22,7 @@ add_task(async function() {
await selectSource(dbg, sortedSrc);
// Test that breakpoint is not off by a line.
- await addBreakpoint(dbg, sortedSrc, 9);
+ await addBreakpoint(dbg, sortedSrc, 9, 4);
is(getBreakpointCount(getState()), 1, "One breakpoint exists");
ok(
getBreakpoint(getState(), { sourceId: sortedSrc.id, line: 9, column: 4 }),
diff --git a/devtools/client/debugger/new/test/mochitest/helpers.js b/devtools/client/debugger/new/test/mochitest/helpers.js
index b58932303023..f176e6910ce6 100644
--- a/devtools/client/debugger/new/test/mochitest/helpers.js
+++ b/devtools/client/debugger/new/test/mochitest/helpers.js
@@ -767,10 +767,13 @@ function findBreakpoint(dbg, url, line) {
if (
Services.prefs.getBoolPref("devtools.debugger.features.column-breakpoints")
) {
- column = dbg.selectors.getFirstPausePointLocation(dbg.store.getState(), {
- sourceId: source.id,
- line
- }).column;
+ ({ column } = dbg.selectors.getFirstVisibleBreakpointPosition(
+ dbg.store.getState(),
+ {
+ sourceId: source.id,
+ line
+ }
+ ));
}
return getBreakpoint(getState(), { sourceId: source.id, line, column });
}
@@ -789,7 +792,7 @@ async function loadAndAddBreakpoint(dbg, filename, line, column) {
await selectSource(dbg, source);
// Test that breakpoint is not off by a line.
- await addBreakpoint(dbg, source, line);
+ await addBreakpoint(dbg, source, line, column);
is(getBreakpointCount(getState()), 1, "One breakpoint exists");
if (!getBreakpoint(getState(), { sourceId: source.id, line, column })) {
@@ -1103,7 +1106,7 @@ const selectors = {
scopeValue: i =>
`.scopes-list .tree-node:nth-child(${i}) .object-delimiter + *`,
frame: i => `.frames [role="list"] [role="listitem"]:nth-child(${i})`,
- frames: '.frames [role="list"] [role="listitem"]',
+ frames: `.frames [role="list"] [role="listitem"]`,
gutter: i => `.CodeMirror-code *:nth-child(${i}) .CodeMirror-linenumber`,
// These work for bobth the breakpoint listing and gutter marker
gutterContextMenu: {
diff --git a/devtools/client/shared/source-map/index.js b/devtools/client/shared/source-map/index.js
index f72a76d9851b..8b05b4bef9f6 100644
--- a/devtools/client/shared/source-map/index.js
+++ b/devtools/client/shared/source-map/index.js
@@ -419,70 +419,97 @@ function isSlowBuffer (obj) {
"use strict";
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.stopSourceMapWorker = exports.startSourceMapWorker = exports.isOriginalId = exports.isGeneratedId = exports.generatedToOriginalId = exports.originalToGeneratedId = exports.getOriginalStackFrames = exports.hasMappedSource = exports.clearSourceMaps = exports.applySourceMap = exports.getOriginalSourceText = exports.getLocationScopes = exports.getFileGeneratedRange = exports.getOriginalLocation = exports.getAllGeneratedLocations = exports.getGeneratedLocation = exports.getGeneratedRanges = exports.getOriginalRanges = exports.hasOriginalURL = exports.getOriginalURLs = exports.setAssetRootURL = exports.dispatcher = undefined;
+
+var _utils = __webpack_require__(3652);
+
+Object.defineProperty(exports, "originalToGeneratedId", {
+ enumerable: true,
+ get: function () {
+ return _utils.originalToGeneratedId;
+ }
+});
+Object.defineProperty(exports, "generatedToOriginalId", {
+ enumerable: true,
+ get: function () {
+ return _utils.generatedToOriginalId;
+ }
+});
+Object.defineProperty(exports, "isGeneratedId", {
+ enumerable: true,
+ get: function () {
+ return _utils.isGeneratedId;
+ }
+});
+Object.defineProperty(exports, "isOriginalId", {
+ enumerable: true,
+ get: function () {
+ return _utils.isOriginalId;
+ }
+});
+
+var _devtoolsSourceMap = __webpack_require__(3646);
+
+var self = _interopRequireWildcard(_devtoolsSourceMap);
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at . */
-const {
- originalToGeneratedId,
- generatedToOriginalId,
- isGeneratedId,
- isOriginalId
-} = __webpack_require__(3652);
-
const {
workerUtils: { WorkerDispatcher }
} = __webpack_require__(3651);
-const dispatcher = new WorkerDispatcher();
+const dispatcher = exports.dispatcher = new WorkerDispatcher();
-const setAssetRootURL = dispatcher.task("setAssetRootURL");
-const getOriginalURLs = dispatcher.task("getOriginalURLs");
-const hasOriginalURL = dispatcher.task("hasOriginalURL");
-const getOriginalRanges = dispatcher.task("getOriginalRanges");
-const getGeneratedRanges = dispatcher.task("getGeneratedRanges", {
+const _getGeneratedRanges = dispatcher.task("getGeneratedRanges", {
queue: true
});
-const getGeneratedLocation = dispatcher.task("getGeneratedLocation", {
- queue: true
-});
-const getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", {
- queue: true
-});
-const getOriginalLocation = dispatcher.task("getOriginalLocation");
-const getFileGeneratedRange = dispatcher.task("getFileGeneratedRange");
-const getLocationScopes = dispatcher.task("getLocationScopes");
-const getOriginalSourceText = dispatcher.task("getOriginalSourceText");
-const applySourceMap = dispatcher.task("applySourceMap");
-const clearSourceMaps = dispatcher.task("clearSourceMaps");
-const hasMappedSource = dispatcher.task("hasMappedSource");
-const getOriginalStackFrames = dispatcher.task("getOriginalStackFrames");
-module.exports = {
- originalToGeneratedId,
- generatedToOriginalId,
- isGeneratedId,
- isOriginalId,
- hasMappedSource,
- getOriginalURLs,
- hasOriginalURL,
- getOriginalRanges,
- getGeneratedRanges,
- getGeneratedLocation,
- getAllGeneratedLocations,
- getOriginalLocation,
- getFileGeneratedRange,
- getLocationScopes,
- getOriginalSourceText,
- applySourceMap,
- clearSourceMaps,
- getOriginalStackFrames,
- startSourceMapWorker(url, assetRoot) {
- dispatcher.start(url);
- setAssetRootURL(assetRoot);
- },
- stopSourceMapWorker: dispatcher.stop.bind(dispatcher)
+const _getGeneratedLocation = dispatcher.task("getGeneratedLocation", { queue: true });
+const _getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", { queue: true });
+
+const setAssetRootURL = exports.setAssetRootURL = async assetRoot => dispatcher.invoke("setAssetRootURL", assetRoot);
+
+const getOriginalURLs = exports.getOriginalURLs = async generatedSource => dispatcher.invoke("getOriginalURLs", generatedSource);
+
+const hasOriginalURL = exports.hasOriginalURL = async url => dispatcher.invoke("hasOriginalURL", url);
+
+const getOriginalRanges = exports.getOriginalRanges = async (sourceId, url) => dispatcher.invoke("getOriginalRanges", sourceId, url);
+const getGeneratedRanges = exports.getGeneratedRanges = async (location, originalSource) => _getGeneratedRanges(location, originalSource);
+
+const getGeneratedLocation = exports.getGeneratedLocation = async (location, originalSource) => _getGeneratedLocation(location, originalSource);
+
+const getAllGeneratedLocations = exports.getAllGeneratedLocations = async (location, originalSource) => _getAllGeneratedLocations(location, originalSource);
+
+const getOriginalLocation = exports.getOriginalLocation = async (location, options = {}) => dispatcher.invoke("getOriginalLocation", location, options);
+
+const getFileGeneratedRange = exports.getFileGeneratedRange = async originalSource => dispatcher.invoke("getFileGeneratedRange", originalSource);
+
+const getLocationScopes = exports.getLocationScopes = dispatcher.task("getLocationScopes");
+
+const getOriginalSourceText = exports.getOriginalSourceText = async originalSource => dispatcher.invoke("getOriginalSourceText", originalSource);
+
+const applySourceMap = exports.applySourceMap = async (generatedId, url, code, mappings) => dispatcher.invoke("applySourceMap", generatedId, url, code, mappings);
+
+const clearSourceMaps = exports.clearSourceMaps = async () => dispatcher.invoke("clearSourceMaps");
+
+const hasMappedSource = exports.hasMappedSource = async location => dispatcher.invoke("hasMappedSource", location);
+
+const getOriginalStackFrames = exports.getOriginalStackFrames = async generatedLocation => dispatcher.invoke("getOriginalStackFrames", generatedLocation);
+
+const startSourceMapWorker = exports.startSourceMapWorker = (url, assetRoot) => {
+ dispatcher.start(url);
+ setAssetRootURL(assetRoot);
};
+const stopSourceMapWorker = exports.stopSourceMapWorker = dispatcher.stop.bind(dispatcher);
+
+exports.default = self;
/***/ }),
diff --git a/dom/base/ShadowRoot.cpp b/dom/base/ShadowRoot.cpp
index 58710690c157..8d74f5296d07 100644
--- a/dom/base/ShadowRoot.cpp
+++ b/dom/base/ShadowRoot.cpp
@@ -457,7 +457,7 @@ void ShadowRoot::GetEventTargetParent(EventChainPreVisitor& aVisitor) {
if (!aVisitor.mEvent->mFlags.mComposed) {
nsCOMPtr originalTarget =
do_QueryInterface(aVisitor.mEvent->mOriginalTarget);
- if (originalTarget->GetContainingShadow() == this) {
+ if (originalTarget && originalTarget->GetContainingShadow() == this) {
// If we do stop propagation, we still want to propagate
// the event to chrome (nsPIDOMWindow::GetParentTarget()).
// The load event is special in that we don't ever propagate it
diff --git a/dom/canvas/WebGL2Context.cpp b/dom/canvas/WebGL2Context.cpp
index f64661b09f8a..cb102ab7aa3e 100644
--- a/dom/canvas/WebGL2Context.cpp
+++ b/dom/canvas/WebGL2Context.cpp
@@ -145,8 +145,10 @@ bool WebGLContext::InitWebGL2(FailureReason* const out_failReason) {
gl->GetUIntegerv(LOCAL_GL_MAX_UNIFORM_BUFFER_BINDINGS,
&mGLMaxUniformBufferBindings);
- mGLMinProgramTexelOffset = gl->GetIntAs(LOCAL_GL_MIN_PROGRAM_TEXEL_OFFSET);
- mGLMaxProgramTexelOffset = gl->GetIntAs(LOCAL_GL_MAX_PROGRAM_TEXEL_OFFSET);
+ mGLMinProgramTexelOffset =
+ gl->GetIntAs(LOCAL_GL_MIN_PROGRAM_TEXEL_OFFSET);
+ mGLMaxProgramTexelOffset =
+ gl->GetIntAs(LOCAL_GL_MAX_PROGRAM_TEXEL_OFFSET);
mIndexedUniformBufferBindings.resize(mGLMaxUniformBufferBindings);
diff --git a/dom/canvas/WebGLContextValidate.cpp b/dom/canvas/WebGLContextValidate.cpp
index 0281f102c21b..c06cae013216 100644
--- a/dom/canvas/WebGLContextValidate.cpp
+++ b/dom/canvas/WebGLContextValidate.cpp
@@ -428,25 +428,35 @@ bool WebGLContext::InitAndValidateGL(FailureReason* const out_failReason) {
////////////////
if (gl->IsGLES()) {
- mGLMaxFragmentUniformVectors = gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_UNIFORM_VECTORS);
- mGLMaxVertexUniformVectors = gl->GetIntAs(LOCAL_GL_MAX_VERTEX_UNIFORM_VECTORS);
+ mGLMaxFragmentUniformVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_UNIFORM_VECTORS);
+ mGLMaxVertexUniformVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VERTEX_UNIFORM_VECTORS);
if (gl->Version() >= 300) {
- mGLMaxVertexOutputVectors = gl->GetIntAs(LOCAL_GL_MAX_VERTEX_OUTPUT_COMPONENTS) / 4;
- mGLMaxFragmentInputVectors = gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_INPUT_COMPONENTS) / 4;
+ mGLMaxVertexOutputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VERTEX_OUTPUT_COMPONENTS) / 4;
+ mGLMaxFragmentInputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_INPUT_COMPONENTS) / 4;
} else {
- mGLMaxFragmentInputVectors = gl->GetIntAs(LOCAL_GL_MAX_VARYING_VECTORS);
+ mGLMaxFragmentInputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VARYING_VECTORS);
mGLMaxVertexOutputVectors = mGLMaxFragmentInputVectors;
}
} else {
- mGLMaxFragmentUniformVectors = gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS) / 4;
- mGLMaxVertexUniformVectors = gl->GetIntAs(LOCAL_GL_MAX_VERTEX_UNIFORM_COMPONENTS) / 4;
+ mGLMaxFragmentUniformVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS) / 4;
+ mGLMaxVertexUniformVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VERTEX_UNIFORM_COMPONENTS) / 4;
if (gl->Version() >= 320) {
- mGLMaxVertexOutputVectors = gl->GetIntAs(LOCAL_GL_MAX_VERTEX_OUTPUT_COMPONENTS) / 4;
- mGLMaxFragmentInputVectors = gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_INPUT_COMPONENTS) / 4;
+ mGLMaxVertexOutputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VERTEX_OUTPUT_COMPONENTS) / 4;
+ mGLMaxFragmentInputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_FRAGMENT_INPUT_COMPONENTS) / 4;
} else {
// Same enum val as GL2's GL_MAX_VARYING_FLOATS.
- mGLMaxFragmentInputVectors = gl->GetIntAs(LOCAL_GL_MAX_VARYING_COMPONENTS) / 4;
+ mGLMaxFragmentInputVectors =
+ gl->GetIntAs(LOCAL_GL_MAX_VARYING_COMPONENTS) / 4;
mGLMaxVertexOutputVectors = mGLMaxFragmentInputVectors;
}
}
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp
index 01c3056a9f63..e4edd36e1350 100644
--- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp
@@ -1819,7 +1819,7 @@ void RuntimeService::CrashIfHanging() {
}
// This string will be leaked.
- MOZ_CRASH_UNSAFE_OOL(strdup(msg.BeginReading()));
+ MOZ_CRASH_UNSAFE(strdup(msg.BeginReading()));
}
// This spins the event loop until all workers are finished and their threads
diff --git a/dom/workers/WorkerHolder.cpp b/dom/workers/WorkerHolder.cpp
index bea21792cb2c..197ad6f6d119 100644
--- a/dom/workers/WorkerHolder.cpp
+++ b/dom/workers/WorkerHolder.cpp
@@ -14,7 +14,7 @@ namespace {
void AssertOnOwningThread(void* aThread) {
if (MOZ_UNLIKELY(aThread != GetCurrentVirtualThread())) {
- MOZ_CRASH_UNSAFE_OOL("WorkerHolder on the wrong thread.");
+ MOZ_CRASH_UNSAFE("WorkerHolder on the wrong thread.");
}
}
diff --git a/gfx/layers/opengl/GLBlitTextureImageHelper.cpp b/gfx/layers/opengl/GLBlitTextureImageHelper.cpp
index d0c88c752b12..cef2924f1b77 100644
--- a/gfx/layers/opengl/GLBlitTextureImageHelper.cpp
+++ b/gfx/layers/opengl/GLBlitTextureImageHelper.cpp
@@ -193,7 +193,7 @@ void GLBlitTextureImageHelper::SetBlitFramebufferForDestTexture(
// your texture is not texture complete -- that is, you
// allocated a texture name, but didn't actually define its
// size via a call to TexImage2D.
- MOZ_CRASH_UNSAFE_OOL(msg.get());
+ MOZ_CRASH_UNSAFE(msg.get());
}
}
diff --git a/gfx/thebes/gfxTextRun.cpp b/gfx/thebes/gfxTextRun.cpp
index 14323a1b3431..0c72691529e1 100644
--- a/gfx/thebes/gfxTextRun.cpp
+++ b/gfx/thebes/gfxTextRun.cpp
@@ -1957,7 +1957,7 @@ gfxFont* gfxFontGroup::GetDefaultFont() {
mFamilyList.ToString(familiesString);
SprintfLiteral(msg, "unable to find a usable font (%.220s)",
familiesString.get());
- MOZ_CRASH_UNSAFE_OOL(msg);
+ MOZ_CRASH_UNSAFE(msg);
}
return mDefaultFont.get();
diff --git a/gfx/wr/webrender/res/prim_shared.glsl b/gfx/wr/webrender/res/prim_shared.glsl
index 1358f57c75fe..344c9d726ce8 100644
--- a/gfx/wr/webrender/res/prim_shared.glsl
+++ b/gfx/wr/webrender/res/prim_shared.glsl
@@ -102,11 +102,15 @@ VertexInfo write_vertex(RectWithSize instance_rect,
// Clamp to the two local clip rects.
vec2 clamped_local_pos = clamp_rect(local_pos, local_clip_rect);
+ // Compute the visible rect to snap against. This ensures segments along the
+ // edges are snapped consistently with other nearby primitives.
+ RectWithSize visible_rect = intersect_rects(local_clip_rect, snap_rect);
+
/// Compute the snapping offset.
vec2 snap_offset = compute_snap_offset(
clamped_local_pos,
transform.m,
- snap_rect,
+ visible_rect,
task.common_data.device_pixel_scale
);
diff --git a/gfx/wr/webrender/src/prim_store/mod.rs b/gfx/wr/webrender/src/prim_store/mod.rs
index 8b6711ad4fb6..9df45d9d40f2 100644
--- a/gfx/wr/webrender/src/prim_store/mod.rs
+++ b/gfx/wr/webrender/src/prim_store/mod.rs
@@ -51,7 +51,7 @@ use std::sync::atomic::{AtomicUsize, Ordering};
use storage;
use util::{ScaleOffset, MatrixHelpers, MaxRect, Recycler, TransformedRectKind};
use util::{pack_as_float, project_rect, raster_rect_to_device_pixels};
-use util::{scale_factors, clamp_to_scale_factor, RectHelpers};
+use util::{scale_factors, clamp_to_scale_factor};
use smallvec::SmallVec;
pub mod borders;
@@ -3536,9 +3536,9 @@ fn compute_snap_offset_impl(
)
}
-/// Retrieve the exact device space rectangle for a primitive, taking
-/// into account the snapping that the shaders will apply if the transform
-/// is axis-aligned.
+/// Retrieve the exact unsnapped device space rectangle for a primitive.
+/// If the transform is axis-aligned, compute the snapping offsets that
+/// the shaders will apply.
fn get_unclipped_device_rect(
prim_spatial_node_index: SpatialNodeIndex,
root_spatial_node_index: SpatialNodeIndex,
@@ -3583,11 +3583,7 @@ fn get_unclipped_device_rect(
bottom_right,
};
- let p0 = unclipped_device_rect.origin + top_left;
- let p1 = unclipped_device_rect.bottom_right() + bottom_right;
- let unclipped = DeviceRect::from_floats(p0.x, p0.y, p1.x, p1.y);
-
- Some((unclipped, snap_offsets))
+ Some((unclipped_device_rect, snap_offsets))
}
TransformedRectKind::Complex => {
Some((unclipped_device_rect, SnapOffsets::empty()))
diff --git a/gfx/wr/wrench/reftests/border/reftest.list b/gfx/wr/wrench/reftests/border/reftest.list
index b178e3b3dc7e..36c26509d1c1 100644
--- a/gfx/wr/wrench/reftests/border/reftest.list
+++ b/gfx/wr/wrench/reftests/border/reftest.list
@@ -14,7 +14,7 @@ platform(linux,mac) == border-suite-3.yaml border-suite-3.png
== border-double-simple-2.yaml border-double-simple-2-ref.yaml
fuzzy(64,24) == border-groove-simple.yaml border-groove-simple-ref.yaml
fuzzy(64,24) == border-ridge-simple.yaml border-ridge-simple-ref.yaml
-platform(linux,mac) fuzzy(1,2) == degenerate-curve.yaml degenerate-curve.png
+platform(linux,mac) fuzzy(1,3) == degenerate-curve.yaml degenerate-curve.png
platform(linux,mac) == border-image.yaml border-image-ref.png
== border-image-crash.yaml border-image-crash-ref.yaml
== border-image-fill.yaml border-image-fill-ref.png
diff --git a/gfx/wr/wrench/reftests/boxshadow/reftest.list b/gfx/wr/wrench/reftests/boxshadow/reftest.list
index 1a78e646d8fe..5daaeee1df19 100644
--- a/gfx/wr/wrench/reftests/boxshadow/reftest.list
+++ b/gfx/wr/wrench/reftests/boxshadow/reftest.list
@@ -34,4 +34,4 @@ fuzzy(1,5) platform(linux,mac) == box-shadow-huge-radius.yaml box-shadow-huge-ra
platform(linux,mac) == box-shadow-large-blur-radius-2.yaml box-shadow-large-blur-radius-2.png
platform(linux,mac) == box-shadow-large-blur-radius-3.yaml box-shadow-large-blur-radius-3.png
-platform(linux,mac) == scale.yaml scale.png
+platform(linux,mac) fuzzy(1,79) == scale.yaml scale.png
diff --git a/gfx/wr/wrench/reftests/transforms/reftest.list b/gfx/wr/wrench/reftests/transforms/reftest.list
index 29ab924ccecb..40e51e0159a7 100644
--- a/gfx/wr/wrench/reftests/transforms/reftest.list
+++ b/gfx/wr/wrench/reftests/transforms/reftest.list
@@ -25,7 +25,7 @@ platform(linux,mac) == perspective-mask.yaml perspective-mask.png
rotate-clip.yaml rotate-clip-ref.yaml
clip-translate.yaml clip-translate-ref.yaml
platform(linux,mac) == perspective-clip.yaml perspective-clip.png
-platform(linux,mac) == perspective-clip-1.yaml perspective-clip-1.png
+platform(linux,mac) fuzzy(1,2) == perspective-clip-1.yaml perspective-clip-1.png
platform(linux,mac) fuzzy(1,2) == perspective-shadow.yaml perspective-shadow.png
== complex-preserve-3d.yaml blank.yaml
platform(linux,mac) fuzzy(9,348) == perspective-border-radius.yaml perspective-border-radius.png
diff --git a/ipc/glue/MessageChannel.cpp b/ipc/glue/MessageChannel.cpp
index aa5875ee9455..f15d2906beb0 100644
--- a/ipc/glue/MessageChannel.cpp
+++ b/ipc/glue/MessageChannel.cpp
@@ -2751,7 +2751,7 @@ void MessageChannel::DebugAbort(const char* file, int line, const char* cond,
pending.popFirst();
}
- MOZ_CRASH_UNSAFE_OOL(why);
+ MOZ_CRASH_UNSAFE(why);
}
void MessageChannel::DumpInterruptStack(const char* const pfx) const {
diff --git a/ipc/glue/ProtocolUtils.cpp b/ipc/glue/ProtocolUtils.cpp
index 55039a5ce039..73ee9aeaf4e2 100644
--- a/ipc/glue/ProtocolUtils.cpp
+++ b/ipc/glue/ProtocolUtils.cpp
@@ -261,12 +261,12 @@ void FatalError(const char* aMsg, bool aIsParent) {
} else {
formattedMessage.AppendLiteral("\". abort()ing as a result.");
#ifndef FUZZING
- MOZ_CRASH_UNSAFE_OOL(formattedMessage.get());
+ MOZ_CRASH_UNSAFE(formattedMessage.get());
#endif
}
}
-void LogicError(const char* aMsg) { MOZ_CRASH_UNSAFE_OOL(aMsg); }
+void LogicError(const char* aMsg) { MOZ_CRASH_UNSAFE(aMsg); }
void ActorIdReadError(const char* aActorDescription) {
#ifndef FUZZING
diff --git a/ipc/glue/Shmem.cpp b/ipc/glue/Shmem.cpp
index 21664a3c015a..a14e5f75a82f 100644
--- a/ipc/glue/Shmem.cpp
+++ b/ipc/glue/Shmem.cpp
@@ -23,17 +23,22 @@ class ShmemCreated : public IPC::Message {
SharedMemory::SharedMemoryType aType)
: IPC::Message(routingId, SHMEM_CREATED_MESSAGE_TYPE, 0,
HeaderFlags(NESTED_INSIDE_CPOW)) {
+ MOZ_RELEASE_ASSERT(aSize < std::numeric_limits::max(),
+ "Tried to create Shmem with size larger than 4GB");
IPC::WriteParam(this, aIPDLId);
- IPC::WriteParam(this, aSize);
+ IPC::WriteParam(this, uint32_t(aSize));
IPC::WriteParam(this, int32_t(aType));
}
static bool ReadInfo(const Message* msg, PickleIterator* iter, id_t* aIPDLId,
size_t* aSize, SharedMemory::SharedMemoryType* aType) {
+ uint32_t size = 0;
if (!IPC::ReadParam(msg, iter, aIPDLId) ||
- !IPC::ReadParam(msg, iter, aSize) ||
- !IPC::ReadParam(msg, iter, reinterpret_cast(aType)))
+ !IPC::ReadParam(msg, iter, &size) ||
+ !IPC::ReadParam(msg, iter, reinterpret_cast(aType))) {
return false;
+ }
+ *aSize = size;
return true;
}
diff --git a/js/src/devtools/rootAnalysis/analyzeHeapWrites.js b/js/src/devtools/rootAnalysis/analyzeHeapWrites.js
index 4df5602af6f3..01246360c071 100644
--- a/js/src/devtools/rootAnalysis/analyzeHeapWrites.js
+++ b/js/src/devtools/rootAnalysis/analyzeHeapWrites.js
@@ -424,8 +424,8 @@ function ignoreContents(entry)
"abort",
/MOZ_ReportAssertionFailure/,
/MOZ_ReportCrash/,
+ /MOZ_Crash/,
/MOZ_CrashPrintf/,
- /MOZ_CrashOOL/,
/AnnotateMozCrashReason/,
/InvalidArrayIndex_CRASH/,
/NS_ABORT_OOM/,
diff --git a/js/src/frontend/BinASTParser.cpp b/js/src/frontend/BinASTParser.cpp
index 3f407f7de210..9f7e955713c6 100644
--- a/js/src/frontend/BinASTParser.cpp
+++ b/js/src/frontend/BinASTParser.cpp
@@ -2037,18 +2037,21 @@ JS::Result BinASTParser::parseInterfaceBreakStatement(
if (!IsIdentifier(label)) {
return raiseError("Invalid identifier");
}
+ }
- auto validity = parseContext_->checkBreakStatement(label->asPropertyName());
-
- if (validity.isErr()) {
- switch (validity.unwrapErr()) {
- case ParseContext::BreakStatementError::ToughBreak:
- return raiseError(kind, "Not in a loop");
- case ParseContext::BreakStatementError::LabelNotFound:
- return raiseError(kind, "Label not found");
- }
+ auto validity = parseContext_->checkBreakStatement(
+ label ? label->asPropertyName() : nullptr);
+ if (validity.isErr()) {
+ switch (validity.unwrapErr()) {
+ case ParseContext::BreakStatementError::ToughBreak:
+ this->error(JSMSG_TOUGH_BREAK);
+ return cx_->alreadyReportedError();
+ case ParseContext::BreakStatementError::LabelNotFound:
+ this->error(JSMSG_LABEL_NOT_FOUND);
+ return cx_->alreadyReportedError();
}
}
+
BINJS_TRY_DECL(result, factory_.newBreakStatement(
label ? label->asPropertyName() : nullptr,
tokenizer_->pos(start)));
@@ -2322,16 +2325,18 @@ JS::Result BinASTParser::parseInterfaceContinueStatement(
if (!IsIdentifier(label)) {
return raiseError("ContinueStatement - Label MUST be an identifier");
}
+ }
- auto validity = parseContext_->checkContinueStatement(
- label ? label->asPropertyName() : nullptr);
- if (validity.isErr()) {
- switch (validity.unwrapErr()) {
- case ParseContext::ContinueStatementError::NotInALoop:
- return raiseError(kind, "Not in a loop");
- case ParseContext::ContinueStatementError::LabelNotFound:
- return raiseError(kind, "Label not found");
- }
+ auto validity = parseContext_->checkContinueStatement(
+ label ? label->asPropertyName() : nullptr);
+ if (validity.isErr()) {
+ switch (validity.unwrapErr()) {
+ case ParseContext::ContinueStatementError::NotInALoop:
+ this->error(JSMSG_BAD_CONTINUE);
+ return cx_->alreadyReportedError();
+ case ParseContext::ContinueStatementError::LabelNotFound:
+ this->error(JSMSG_LABEL_NOT_FOUND);
+ return cx_->alreadyReportedError();
}
}
@@ -3923,7 +3928,7 @@ JS::Result BinASTParser::parseInterfaceSwitchStatement(
#endif // defined(DEBUG)
BINJS_MOZ_TRY_DECL(discriminant, parseExpression());
-
+ ParseContext::Statement stmt(parseContext_, StatementKind::Switch);
BINJS_MOZ_TRY_DECL(cases, parseListOfSwitchCase());
BINJS_TRY_DECL(scope, factory_.newLexicalScope(nullptr, cases));
@@ -3947,7 +3952,7 @@ BinASTParser::parseInterfaceSwitchStatementWithDefault(
#endif // defined(DEBUG)
BINJS_MOZ_TRY_DECL(discriminant, parseExpression());
-
+ ParseContext::Statement stmt(parseContext_, StatementKind::Switch);
BINJS_MOZ_TRY_DECL(preDefaultCases, parseListOfSwitchCase());
BINJS_MOZ_TRY_DECL(defaultCase, parseSwitchDefault());
diff --git a/js/src/frontend/BinASTParserPerTokenizer.cpp b/js/src/frontend/BinASTParserPerTokenizer.cpp
index f97162422350..935d64d78f25 100644
--- a/js/src/frontend/BinASTParserPerTokenizer.cpp
+++ b/js/src/frontend/BinASTParserPerTokenizer.cpp
@@ -772,7 +772,7 @@ BinASTParserPerTokenizer::raiseError(BinKind kind,
const char* description) {
Sprinter out(cx_);
BINJS_TRY(out.init());
- BINJS_TRY(out.printf("In %s, ", description));
+ BINJS_TRY(out.printf("In %s, %s", describeBinKind(kind), description));
return tokenizer_->raiseError(out.string());
}
diff --git a/js/src/frontend/BinSource.yaml b/js/src/frontend/BinSource.yaml
index 1205af71e226..efb61890b894 100644
--- a/js/src/frontend/BinSource.yaml
+++ b/js/src/frontend/BinSource.yaml
@@ -637,19 +637,22 @@ BreakStatement:
if (!IsIdentifier(label)) {
return raiseError("Invalid identifier");
}
+ }
- auto validity
- = parseContext_->checkBreakStatement(label->asPropertyName());
-
- if (validity.isErr()) {
- switch (validity.unwrapErr()) {
- case ParseContext::BreakStatementError::ToughBreak:
- return raiseError(kind, "Not in a loop");
- case ParseContext::BreakStatementError::LabelNotFound:
- return raiseError(kind, "Label not found");
- }
+ auto validity
+ = parseContext_->checkBreakStatement(label ? label->asPropertyName()
+ : nullptr);
+ if (validity.isErr()) {
+ switch (validity.unwrapErr()) {
+ case ParseContext::BreakStatementError::ToughBreak:
+ this->error(JSMSG_TOUGH_BREAK);
+ return cx_->alreadyReportedError();
+ case ParseContext::BreakStatementError::LabelNotFound:
+ this->error(JSMSG_LABEL_NOT_FOUND);
+ return cx_->alreadyReportedError();
}
}
+
BINJS_TRY_DECL(result,
factory_.newBreakStatement(label ? label->asPropertyName()
: nullptr,
@@ -775,22 +778,25 @@ ContinueStatement:
if (!IsIdentifier(label)) {
return raiseError("ContinueStatement - Label MUST be an identifier");
}
+ }
- auto validity
- = parseContext_->checkContinueStatement(label ? label->asPropertyName()
- : nullptr);
- if (validity.isErr()) {
- switch (validity.unwrapErr()) {
- case ParseContext::ContinueStatementError::NotInALoop:
- return raiseError(kind, "Not in a loop");
- case ParseContext::ContinueStatementError::LabelNotFound:
- return raiseError(kind, "Label not found");
- }
+ auto validity
+ = parseContext_->checkContinueStatement(label ? label->asPropertyName()
+ : nullptr);
+ if (validity.isErr()) {
+ switch (validity.unwrapErr()) {
+ case ParseContext::ContinueStatementError::NotInALoop:
+ this->error(JSMSG_BAD_CONTINUE);
+ return cx_->alreadyReportedError();
+ case ParseContext::ContinueStatementError::LabelNotFound:
+ this->error(JSMSG_LABEL_NOT_FOUND);
+ return cx_->alreadyReportedError();
}
}
BINJS_TRY_DECL(result,
- factory_.newContinueStatement(label ? label->asPropertyName() : nullptr,
+ factory_.newContinueStatement(label ? label->asPropertyName()
+ : nullptr,
tokenizer_->pos(start)));
DataProperty:
@@ -1392,6 +1398,10 @@ SwitchDefault:
factory_.newCaseOrDefault(start, nullptr, consequent));
SwitchStatement:
+ fields:
+ discriminant:
+ after: |
+ ParseContext::Statement stmt(parseContext_, StatementKind::Switch);
build: |
BINJS_TRY_DECL(scope, factory_.newLexicalScope(nullptr, cases));
BINJS_TRY_DECL(result,
@@ -1399,6 +1409,10 @@ SwitchStatement:
/* hasDefault = */ false));
SwitchStatementWithDefault:
+ fields:
+ discriminant:
+ after: |
+ ParseContext::Statement stmt(parseContext_, StatementKind::Switch);
build: |
// Concatenate `preDefaultCase`, `defaultCase`, `postDefaultCase`
auto cases = preDefaultCases;
diff --git a/js/src/jit-test/tests/binast/invalid/break-outside-while.binjs b/js/src/jit-test/tests/binast/invalid/break-outside-while.binjs
new file mode 100644
index 000000000000..4e2739246311
Binary files /dev/null and b/js/src/jit-test/tests/binast/invalid/break-outside-while.binjs differ
diff --git a/js/src/jit-test/tests/binast/invalid/break-outside-while.dir b/js/src/jit-test/tests/binast/invalid/break-outside-while.dir
new file mode 100644
index 000000000000..cb084ef1f2f1
--- /dev/null
+++ b/js/src/jit-test/tests/binast/invalid/break-outside-while.dir
@@ -0,0 +1 @@
+// |jit-test| error: unlabeled break must be inside loop or switch
\ No newline at end of file
diff --git a/js/src/jit-test/tests/binast/invalid/continue-outside-while.binjs b/js/src/jit-test/tests/binast/invalid/continue-outside-while.binjs
new file mode 100644
index 000000000000..093c05a6684b
Binary files /dev/null and b/js/src/jit-test/tests/binast/invalid/continue-outside-while.binjs differ
diff --git a/js/src/jit-test/tests/binast/invalid/continue-outside-while.dir b/js/src/jit-test/tests/binast/invalid/continue-outside-while.dir
new file mode 100644
index 000000000000..b49edc80961d
--- /dev/null
+++ b/js/src/jit-test/tests/binast/invalid/continue-outside-while.dir
@@ -0,0 +1 @@
+// |jit-test| error: continue must be inside loop
\ No newline at end of file
diff --git a/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.binjs b/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.binjs
new file mode 100644
index 000000000000..50fc29970510
Binary files /dev/null and b/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.binjs differ
diff --git a/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.dir b/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.dir
new file mode 100644
index 000000000000..f81c3fef8064
--- /dev/null
+++ b/js/src/jit-test/tests/binast/invalid/labelled-break-outside-while.dir
@@ -0,0 +1 @@
+// |jit-test| error: label not found
\ No newline at end of file
diff --git a/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.binjs b/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.binjs
new file mode 100644
index 000000000000..0fb72bf49040
Binary files /dev/null and b/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.binjs differ
diff --git a/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.dir b/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.dir
new file mode 100644
index 000000000000..b49edc80961d
--- /dev/null
+++ b/js/src/jit-test/tests/binast/invalid/labelled-continue-outside-while.dir
@@ -0,0 +1 @@
+// |jit-test| error: continue must be inside loop
\ No newline at end of file
diff --git a/js/src/jsapi-tests/binast/encode.py b/js/src/jsapi-tests/binast/encode.py
index 00688a746120..9a7a96b5bad2 100755
--- a/js/src/jsapi-tests/binast/encode.py
+++ b/js/src/jsapi-tests/binast/encode.py
@@ -17,6 +17,9 @@ parser.add_option('--binjsdir', dest='binjsdir',
help='cwd when running binjs_encode')
parser.add_option('--binjs_encode', dest='binjs_encode',
help='path to binjs_encode commad')
+parser.add_option('--binjs_convert_from_json', dest='binjs_convert_from_json',
+ default="",
+ help='path to binjs_convert_from_json commad (optional)')
(options, filters) = parser.parse_args()
@@ -53,10 +56,30 @@ def ensure_file(path, name):
ensure_dir(options.topsrcdir, 'topsrcdir')
ensure_dir(options.binjsdir, 'binjsdir')
ensure_file(options.binjs_encode, 'binjs_encode command')
+if options.binjs_convert_from_json:
+ ensure_file(options.binjs_convert_from_json, 'binjs_convert_from_json command')
jittest_dir = os.path.join(options.topsrcdir, 'js', 'src', 'jit-test', 'tests')
ensure_dir(jittest_dir, 'jit-test')
+jsapi_tests_dir = os.path.join(options.topsrcdir, 'js', 'src', 'jsapi-tests')
+ensure_dir(jsapi_tests_dir, 'binast in jsapi-tests')
+
+jsapi_binast_dir = os.path.join(jsapi_tests_dir, 'binast')
+ensure_dir(jsapi_binast_dir, 'binast in jsapi-tests')
+
+invalid_tests_dir = os.path.join(jsapi_binast_dir, 'invalid', 'tests')
+ensure_dir(invalid_tests_dir, 'invalid tests')
+
+invalid_lib_dir = os.path.join(jsapi_binast_dir, 'invalid', 'lib')
+ensure_dir(invalid_lib_dir, 'library for libvalid tests')
+sys.path.insert(0, os.path.join(invalid_lib_dir))
+
+invalid_tests_output_dir = os.path.join(jittest_dir, 'binast', 'invalid')
+ensure_dir(invalid_tests_output_dir, 'invalid tests output')
+
+import filter_runner
+
def check_filter(outfile_path):
""" Check if the output file is the target.
@@ -345,10 +368,55 @@ def convert_wpt():
def convert_jsapi_test():
""" Convert jsapi-test files into .binjs.
"""
- binast_test_dir = os.path.join(options.topsrcdir, 'js', 'src', 'jsapi-tests', 'binast')
- ensure_dir(binast_test_dir, 'binast in jsapi-tests')
+ encode_inplace(os.path.join(jsapi_binast_dir, 'parser', 'multipart'))
- encode_inplace(os.path.join(binast_test_dir, 'parser', 'multipart'))
+
+def convert(infile_path, filter_path, outfile_path, binjs_convert_from_json_args=[]):
+ """ Convert the given .js file into .binjs, with filter applied.
+
+ :param infile_path (string)
+ The path to the input .js file.
+ :param filter_path (string)
+ The path to the filter .py file.
+ :param outfile_path (string)
+ The path to the output .binjs file.
+
+ :param binjs_convert_from_json_args (list)
+ The command line arguments passed to binjs_convert_from_json command.
+ """
+
+ if not check_filter(outfile_path):
+ return
+
+ print(' converting', infile_path)
+ print(' to', outfile_path)
+ print('with filter', filter_path)
+
+ infile = open(infile_path)
+ outfile = open(outfile_path, 'w')
+
+ source = subprocess.check_output(
+ [options.binjs_encode, 'advanced', 'json'],
+ cwd=options.binjsdir, stdin=infile)
+
+ filtered_source = filter_runner.run(filter_path, source)
+
+ convert_from_json = subprocess.Popen(
+ [options.binjs_convert_from_json] + binjs_convert_from_json_args,
+ cwd=options.binjsdir, stdin=subprocess.PIPE, stdout=outfile)
+ convert_from_json.stdin.write(filtered_source)
+ convert_from_json.stdin.close()
+
+
+def convert_invalid_test():
+ for root, dirs, files in os.walk(invalid_tests_dir):
+ for filename in files:
+ if filename.endswith('.js'):
+ infile_path = os.path.join(root, filename)
+ filter_path = os.path.join(root, filename.replace('.js', '.py'))
+ outfile_path = os.path.join(invalid_tests_output_dir,
+ filename.replace('.js', '.binjs'))
+ convert(infile_path, filter_path, outfile_path)
convert_jittest()
@@ -356,3 +424,6 @@ convert_jittest()
convert_wpt()
convert_jsapi_test()
+
+if options.binjs_convert_from_json:
+ convert_invalid_test()
diff --git a/js/src/jsapi-tests/binast/invalid/lib/filter_runner.py b/js/src/jsapi-tests/binast/invalid/lib/filter_runner.py
new file mode 100644
index 000000000000..cafe2c4f4f36
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/lib/filter_runner.py
@@ -0,0 +1,26 @@
+# A utility to run filter program for given JSON format BinAST.
+
+import json
+import runpy
+
+
+def run(filter_path, source):
+ """
+ Run filter script against JSON source.
+
+ :param filter_path(string)
+ The path to the filter script (python script)
+ :param source(string)
+ The string representation of JSON format of BinAST file
+ :returns (string)
+ The string representation of filtered JSON
+ """
+ ast = json.loads(source)
+
+ # The filter script is executed with sys.path that has this directory in
+ # the first element, so that it can import filter_utils.
+ filter_global = runpy.run_path(filter_path)
+
+ filtered_ast = filter_global['filter_ast'](ast)
+
+ return json.dumps(filtered_ast)
diff --git a/js/src/jsapi-tests/binast/invalid/lib/filter_utils.py b/js/src/jsapi-tests/binast/invalid/lib/filter_utils.py
new file mode 100644
index 000000000000..56f7bab0117a
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/lib/filter_utils.py
@@ -0,0 +1,180 @@
+# Utilities to modify JSON encoded AST
+#
+# All functions raise exception on unexpected case, to avoid overlooking AST
+# change.
+
+
+def assert_tagged_tuple(obj):
+ """
+ Assert that the object is a tagged tuple
+
+ :param obj (dict)
+ The tagged tuple
+ """
+ type_ = obj['@TYPE']
+ if type_ != 'tagged tuple':
+ raise Exception('expected a tagged tuple, got {}'.format(type_))
+
+
+def assert_list(obj):
+ """
+ Assert that the object is a list
+
+ :param obj (dict)
+ The list
+ """
+ type_ = obj['@TYPE']
+ if type_ != 'list':
+ raise Exception('expected a list, got {}'.format(type_))
+
+
+def assert_interface(obj, expected_name):
+ """
+ Assert that the object is a tagged tuple for given interface
+
+ :param obj (dict)
+ The tagged tuple
+ :param expected_name (string)
+ The name of the interface
+ """
+ assert_tagged_tuple(obj)
+ actual_name = obj['@INTERFACE']
+ if actual_name != expected_name:
+ raise Exception('expected {}, got {}'.format(expected_name, actual_name))
+
+
+def get_field(obj, name):
+ """
+ Returns the field of the tagged tuple.
+
+ :param obj (dict)
+ The tagged tuple
+ :param name (string)
+ The name of the field to get
+ :return (dict)
+ The field value
+ :raises Exception
+ If there's no such field
+ """
+ assert_tagged_tuple(obj)
+ fields = obj['@FIELDS']
+ for field in fields:
+ if field['@FIELD_NAME'] == name:
+ return field['@FIELD_VALUE']
+ raise Exception('No such field: {}'.format(name))
+
+
+def replace_field(obj, name, value):
+ """
+ Replaces the field of the tagged tuple.
+
+ :param obj (dict)
+ the tagged tuple
+ :param name (string)
+ the name of the field to replace
+ :param value (dict)
+ the value of the field
+ :raises Exception
+ If there's no such field
+ """
+ assert_tagged_tuple(obj)
+ fields = obj['@FIELDS']
+ for field in fields:
+ if field['@FIELD_NAME'] == name:
+ field['@FIELD_VALUE'] = value
+ return
+ raise Exception('No such field: {}'.format(name))
+
+
+def remove_field(obj, name):
+ """
+ Removes the field from the tagged tuple
+
+ :param obj (dict)
+ the tagged tuple
+ :param name (string)
+ the name of the field to remove
+ :raises Exception
+ If there's no such field
+ """
+ assert_tagged_tuple(obj)
+ i = 0
+ fields = obj['@FIELDS']
+ for field in fields:
+ if field['@FIELD_NAME'] == name:
+ del fields[i]
+ return
+ i += 1
+ raise Exception('No such field: {}'.format(name))
+
+
+def get_element(obj, i):
+ """
+ Returns the element of the list.
+
+ :param obj (dict)
+ The list
+ :param i (int)
+ The indef of the element to get
+ :return (dict)
+ The element value
+ :raises Exception
+ On out of bound access
+ """
+ assert_list(obj)
+ elements = obj['@VALUE']
+ if i >= len(elements):
+ raise Exception('Out of bound: {} < {}'.format(i, len(elements)))
+ return elements[i]
+
+
+def replace_element(obj, i, value):
+ """
+ Replaces the element of the list.
+
+ :param obj (dict)
+ the list
+ :param i (int)
+ The indef of the element to replace
+ :param value (dict)
+ the value of the element
+ :raises Exception
+ On out of bound access
+ """
+ assert_list(obj)
+ elements = obj['@VALUE']
+ if i >= len(elements):
+ raise Exception('Out of bound: {} < {}'.format(i, len(elements)))
+ elements[i] = value
+
+
+def append_element(obj, value):
+ """
+ Appends the element to the list.
+
+ :param obj (dict)
+ the list
+ :param value (dict)
+ the value to be added to the list
+ """
+ assert_list(obj)
+ elements = obj['@VALUE']
+ elements.append(value)
+
+
+def remove_element(obj, i):
+ """
+ Removes the element from the list
+
+ :param obj (dict)
+ the list
+ :param i (int)
+ The indef of the element to remove
+ :raises Exception
+ On out of bound access
+ """
+ assert_list(obj)
+ elements = obj['@VALUE']
+ if i >= len(elements):
+ raise Exception('Out of bound: {} < {}'.format(i, len(elements)))
+ del elements[i]
diff --git a/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.js b/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.js
new file mode 100644
index 000000000000..ddc8e948d1f1
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.js
@@ -0,0 +1,3 @@
+while (true) {
+ break;
+}
diff --git a/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.py b/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.py
new file mode 100644
index 000000000000..3f8327ef604b
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/break-outside-while.py
@@ -0,0 +1,21 @@
+def filter_ast(ast):
+ # Move a break statement out of a while loop.
+ import filter_utils as utils
+
+ utils.assert_interface(ast, 'Script')
+ global_stmts = utils.get_field(ast, 'statements')
+
+ while_stmt = utils.get_element(global_stmts, 0)
+ utils.assert_interface(while_stmt, 'WhileStatement')
+
+ while_body = utils.get_field(while_stmt, 'body')
+ utils.assert_interface(while_body, 'Block')
+ while_body_stmts = utils.get_field(while_body, 'statements')
+
+ break_stmt = utils.get_element(while_body_stmts, 0)
+ utils.assert_interface(break_stmt, 'BreakStatement')
+
+ utils.remove_element(while_body_stmts, 0)
+ utils.append_element(global_stmts, break_stmt)
+
+ return ast
diff --git a/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.js b/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.js
new file mode 100644
index 000000000000..b6739703a8fa
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.js
@@ -0,0 +1,3 @@
+while (true) {
+ continue;
+}
diff --git a/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.py b/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.py
new file mode 100644
index 000000000000..8f9177c1f7c5
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/continue-outside-while.py
@@ -0,0 +1,21 @@
+def filter_ast(ast):
+ # Move a continue statement out of a while loop.
+ import filter_utils as utils
+
+ utils.assert_interface(ast, 'Script')
+ global_stmts = utils.get_field(ast, 'statements')
+
+ while_stmt = utils.get_element(global_stmts, 0)
+ utils.assert_interface(while_stmt, 'WhileStatement')
+
+ while_body = utils.get_field(while_stmt, 'body')
+ utils.assert_interface(while_body, 'Block')
+ while_body_stmts = utils.get_field(while_body, 'statements')
+
+ continue_stmt = utils.get_element(while_body_stmts, 0)
+ utils.assert_interface(continue_stmt, 'ContinueStatement')
+
+ utils.remove_element(while_body_stmts, 0)
+ utils.append_element(global_stmts, continue_stmt)
+
+ return ast
diff --git a/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.js b/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.js
new file mode 100644
index 000000000000..1462f189e3d8
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.js
@@ -0,0 +1,3 @@
+foo: while (true) {
+ break foo;
+}
diff --git a/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.py b/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.py
new file mode 100644
index 000000000000..67134aa4da1e
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/labelled-break-outside-while.py
@@ -0,0 +1,24 @@
+def filter_ast(ast):
+ # Move a break statement out of a while loop.
+ import filter_utils as utils
+
+ utils.assert_interface(ast, 'Script')
+ global_stmts = utils.get_field(ast, 'statements')
+
+ labelled_stmt = utils.get_element(global_stmts, 0)
+ utils.assert_interface(labelled_stmt, 'LabelledStatement')
+
+ while_stmt = utils.get_field(labelled_stmt, 'body')
+ utils.assert_interface(while_stmt, 'WhileStatement')
+
+ while_body = utils.get_field(while_stmt, 'body')
+ utils.assert_interface(while_body, 'Block')
+ while_body_stmts = utils.get_field(while_body, 'statements')
+
+ break_stmt = utils.get_element(while_body_stmts, 0)
+ utils.assert_interface(break_stmt, 'BreakStatement')
+
+ utils.remove_element(while_body_stmts, 0)
+ utils.append_element(global_stmts, break_stmt)
+
+ return ast
diff --git a/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.js b/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.js
new file mode 100644
index 000000000000..a621546fc487
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.js
@@ -0,0 +1,3 @@
+foo: while (true) {
+ continue foo;
+}
diff --git a/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.py b/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.py
new file mode 100644
index 000000000000..e8d147d91cef
--- /dev/null
+++ b/js/src/jsapi-tests/binast/invalid/tests/labelled-continue-outside-while.py
@@ -0,0 +1,24 @@
+def filter_ast(ast):
+ # Move a continue statement out of a while loop.
+ import filter_utils as utils
+
+ utils.assert_interface(ast, 'Script')
+ global_stmts = utils.get_field(ast, 'statements')
+
+ labelled_stmt = utils.get_element(global_stmts, 0)
+ utils.assert_interface(labelled_stmt, 'LabelledStatement')
+
+ while_stmt = utils.get_field(labelled_stmt, 'body')
+ utils.assert_interface(while_stmt, 'WhileStatement')
+
+ while_body = utils.get_field(while_stmt, 'body')
+ utils.assert_interface(while_body, 'Block')
+ while_body_stmts = utils.get_field(while_body, 'statements')
+
+ continue_stmt = utils.get_element(while_body_stmts, 0)
+ utils.assert_interface(continue_stmt, 'ContinueStatement')
+
+ utils.remove_element(while_body_stmts, 0)
+ utils.append_element(global_stmts, continue_stmt)
+
+ return ast
diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp
index 16294eaa8cd8..5967926851f9 100644
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -3699,7 +3699,7 @@ static bool Crash(JSContext* cx, unsigned argc, Value* vp) {
#ifndef DEBUG
MOZ_ReportCrash(utf8chars.get(), __FILE__, __LINE__);
#endif
- MOZ_CRASH_UNSAFE_OOL(utf8chars.get());
+ MOZ_CRASH_UNSAFE(utf8chars.get());
}
static bool GetSLX(JSContext* cx, unsigned argc, Value* vp) {
diff --git a/js/src/tests/jstests.py b/js/src/tests/jstests.py
index d2da3d38c559..d5a66b9179d1 100755
--- a/js/src/tests/jstests.py
+++ b/js/src/tests/jstests.py
@@ -304,7 +304,7 @@ def parse_args():
return (options, prefix, requested_paths, excluded_paths)
-def load_wpt_tests(xul_tester, requested_paths, excluded_paths):
+def load_wpt_tests(xul_tester, requested_paths, excluded_paths, update_manifest=True):
"""Return a list of `RefTestCase` objects for the jsshell testharness.js
tests filtered by the given paths and debug-ness."""
repo_root = abspath(os.path.join(here, "..", "..", ".."))
@@ -323,6 +323,7 @@ def load_wpt_tests(xul_tester, requested_paths, excluded_paths):
"testing/mozbase/mozprocess",
"testing/mozbase/mozprofile",
"testing/mozbase/mozrunner",
+ "testing/mozbase/mozversion",
"testing/web-platform/",
"testing/web-platform/tests/tools",
"testing/web-platform/tests/tools/third_party/html5lib",
@@ -356,7 +357,8 @@ def load_wpt_tests(xul_tester, requested_paths, excluded_paths):
logger = wptlogging.setup({}, {})
- manifestupdate.run(repo_root, manifest_root, logger)
+ test_manifests = manifestupdate.run(repo_root, manifest_root, logger,
+ update=update_manifest)
kwargs = vars(wptcommandline.create_parser().parse_args([]))
kwargs.update({
@@ -366,15 +368,12 @@ def load_wpt_tests(xul_tester, requested_paths, excluded_paths):
"wasm": xul_tester.test("wasmIsSupported()"),
})
wptcommandline.set_from_config(kwargs)
- test_paths = kwargs["test_paths"]
def filter_jsshell_tests(it):
- for test in it:
- if test[1].get("jsshell"):
- yield test
-
- test_manifests = testloader.ManifestLoader(test_paths, types=["testharness"],
- meta_filters=[filter_jsshell_tests]).load()
+ for item_type, path, tests in it:
+ tests = set(item for item in tests if item.jsshell)
+ if tests:
+ yield item_type, path, tests
run_info_extras = products.load_product(kwargs["config"], "firefox")[-1](**kwargs)
run_info = wpttest.get_run_info(kwargs["test_paths"]["/"]["metadata_path"],
@@ -388,7 +387,7 @@ def load_wpt_tests(xul_tester, requested_paths, excluded_paths):
loader = testloader.TestLoader(test_manifests,
["testharness"],
run_info,
- manifest_filters=[path_filter])
+ manifest_filters=[path_filter, filter_jsshell_tests])
extra_helper_paths = [
os.path.join(here, "web-platform-test-shims.js"),
diff --git a/js/src/tests/lib/jittests.py b/js/src/tests/lib/jittests.py
index 018ee496df52..1f9f543faf9b 100755
--- a/js/src/tests/lib/jittests.py
+++ b/js/src/tests/lib/jittests.py
@@ -393,6 +393,8 @@ def find_tests(substring=None, run_binast=False):
continue
if os.path.join('binast', 'nonlazy') in dirpath:
continue
+ if os.path.join('binast', 'invalid') in dirpath:
+ continue
for filename in filenames:
if not (filename.endswith('.js') or filename.endswith('.binjs')):
diff --git a/layout/reftests/border-image/reftest.list b/layout/reftests/border-image/reftest.list
index 0b18a4290cab..fc9828183b8e 100644
--- a/layout/reftests/border-image/reftest.list
+++ b/layout/reftests/border-image/reftest.list
@@ -48,14 +48,14 @@ fuzzy(0-1,0-149) fuzzy-if(OSX,0-1,0-10595) fuzzy-if(webrender,1-3,24999-25136) =
fuzzy(0-1,0-433) fuzzy-if(skiaContent,0-1,0-2500) fuzzy-if(webrender,1-3,84138-85584) == border-image-linear-gradient-slice-fill-1.html border-image-linear-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-177) fuzzy-if(OSX,0-1,0-25771) fuzzy-if(skiaContent&&!Android,0-1,0-400) fuzzy-if(Android,0-1,0-6093) fuzzy-if(webrender,1-3,57249-57464) == border-image-linear-gradient-slice-fill-2.html border-image-linear-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-48) fuzzy-if(OSX,0-5,0-1676) fuzzy-if(webrender,1-1,4464-4537) == border-image-linear-gradient-width.html border-image-linear-gradient-width-ref.html
-fuzzy(0-1,0-5000) fuzzy-if(OSX,0-1,0-15000) fuzzy-if(webrender,2-2,58629-58936) == border-image-linear-gradient-slice-width.html border-image-linear-gradient-slice-width-ref.html
-fuzzy(0-1,0-3000) fuzzy-if(OSX,0-1,0-6000) fuzzy-if(webrender,1-3,26067-26413) == border-image-linear-gradient-outset.html border-image-linear-gradient-outset-ref.html
+fuzzy(0-1,0-5000) fuzzy-if(OSX,0-1,0-15000) fuzzy-if(webrender,2-2,58629-58939) == border-image-linear-gradient-slice-width.html border-image-linear-gradient-slice-width-ref.html
+fuzzy(0-1,0-3000) fuzzy-if(OSX,0-1,0-6000) fuzzy-if(webrender,1-3,25940-26413) == border-image-linear-gradient-outset.html border-image-linear-gradient-outset-ref.html
fuzzy(0-1,0-12) fuzzy-if(skiaContent,0-1,0-400) fuzzy-if(webrender,1-3,26195-26872) == border-image-linear-gradient-repeat-repeat-1.html border-image-linear-gradient-repeat-repeat-1-ref.html
fuzzy(0-1,0-13) fuzzy-if(skiaContent,0-1,0-300) fuzzy-if(webrender,1-3,26168-27131) == border-image-linear-gradient-repeat-round-1.html border-image-linear-gradient-repeat-round-1-ref.html
fuzzy-if(webrender,1-3,64826-67805) == border-image-linear-gradient-repeat-repeat-2.html border-image-linear-gradient-repeat-repeat-2-ref.html
fuzzy(0-1,0-576) fuzzy-if(skiaContent,0-1,0-2000) fuzzy-if(webrender,1-2,64575-68383) == border-image-linear-gradient-repeat-round-2.html border-image-linear-gradient-repeat-round-2-ref.html
fuzzy(0-1,0-8533) fuzzy-if(webrender,1-3,84604-85925) == border-image-linear-gradient-repeat-repeat-3.html border-image-linear-gradient-repeat-repeat-3-ref.html
-fuzzy(0-1,0-7161) fuzzy-if(webrender,2-3,92540-93290) == border-image-linear-gradient-repeat-round-3.html border-image-linear-gradient-repeat-round-3-ref.html
+fuzzy(0-1,0-7161) fuzzy-if(webrender,1-3,85706-86037) == border-image-linear-gradient-repeat-round-3.html border-image-linear-gradient-repeat-round-3-ref.html
fuzzy-if(webrender,0-1,0-2096) == border-image-radial-gradient.html border-image-radial-gradient-ref.html
fuzzy(0-1,0-42) fuzzy-if(skiaContent,0-2,0-20) fuzzy-if(webrender,0-1,0-37818) == border-image-radial-gradient-slice-1.html border-image-radial-gradient-slice-1-ref.html
diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list
index a67cba565459..4fc80c2bc36e 100644
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -318,7 +318,7 @@ fuzzy-if(Android,0-3,0-50) fuzzy-if(skiaContent,0-1,0-133) == 273681-1.html 2736
== 283686-2.html 283686-2-ref.html
== 283686-3.html about:blank
== 289384-1.xhtml 289384-ref.xhtml
-fails-if(webrender&>kWidget) random-if(d2d) fuzzy-if(webrender&&cocoaWidget,1-2,400-900) fuzzy-if(Android,0-8,0-1439) HTTP == 289480.html#top 289480-ref.html # basically-verbatim acid2 test, HTTP for a 404 page -- bug 578114 for the d2d failures
+random-if(d2d) fuzzy-if(Android,0-8,0-1439) fuzzy-if(webrender,0-6,0-1124) HTTP == 289480.html#top 289480-ref.html # basically-verbatim acid2 test, HTTP for a 404 page -- bug 578114 for the d2d failures
== 290129-1.html 290129-1-ref.html
== 291078-1.html 291078-1-ref.html
== 291078-2.html 291078-2-ref.html
diff --git a/layout/reftests/css-gradients/reftest.list b/layout/reftests/css-gradients/reftest.list
index ba287c710f72..8a77d5147740 100644
--- a/layout/reftests/css-gradients/reftest.list
+++ b/layout/reftests/css-gradients/reftest.list
@@ -27,7 +27,7 @@ fuzzy-if(!contentSameGfxBackendAsCanvas,0-3,0-88500) fuzzy-if(azureSkiaGL||skiaC
fuzzy-if(!contentSameGfxBackendAsCanvas,0-3,0-88500) fuzzy-if(azureSkiaGL||skiaContent,0-3,0-89700) == linear-vertical-1b.html linear-vertical-1-ref.html
fuzzy-if(!contentSameGfxBackendAsCanvas,0-3,0-88500) fuzzy-if(azureSkiaGL||skiaContent,0-3,0-89700) == linear-vertical-1c.html linear-vertical-1-ref.html
fuzzy-if(!contentSameGfxBackendAsCanvas,0-3,0-88500) fuzzy-if(azureSkiaGL||skiaContent,0-3,0-89700) == linear-vertical-1d.html linear-vertical-1-ref.html
-fuzzy-if(webrender&&cocoaWidget,0-1,0-98) == linear-vertical-subpixel-1.html linear-vertical-subpixel-1-ref.html
+fuzzy-if(webrender,0-3,0-21070) == linear-vertical-subpixel-1.html linear-vertical-subpixel-1-ref.html
== linear-viewport.html linear-viewport-ref.html
== nostops.html about:blank
== onestop.html about:blank
diff --git a/layout/reftests/w3c-css/submitted/images3/reftest.list b/layout/reftests/w3c-css/submitted/images3/reftest.list
index 5abac4f3b5fa..7d963efa9f25 100644
--- a/layout/reftests/w3c-css/submitted/images3/reftest.list
+++ b/layout/reftests/w3c-css/submitted/images3/reftest.list
@@ -185,9 +185,9 @@ fails-if(!webrender) random-if(webrender) == object-position-svg-001e.html objec
== object-position-svg-001i.html object-position-svg-001-ref.html
fails-if(!webrender) random-if(webrender) == object-position-svg-001o.html object-position-svg-001-ref.html # bug 1103286
== object-position-svg-001p.html object-position-svg-001-ref.html
-fails-if(!webrender) == object-position-svg-002e.html object-position-svg-002-ref.html # bug 1103286
+fails == object-position-svg-002e.html object-position-svg-002-ref.html # bug 1103286
== object-position-svg-002i.html object-position-svg-002-ref.html
-fails-if(!webrender) == object-position-svg-002o.html object-position-svg-002-ref.html # bug 1103286
+fails == object-position-svg-002o.html object-position-svg-002-ref.html # bug 1103286
== object-position-svg-002p.html object-position-svg-002-ref.html
# Tests for gradient color stops with 'currentcolor'
diff --git a/layout/style/nsLayoutStylesheetCache.cpp b/layout/style/nsLayoutStylesheetCache.cpp
index 46e683a0d671..4deda8006add 100644
--- a/layout/style/nsLayoutStylesheetCache.cpp
+++ b/layout/style/nsLayoutStylesheetCache.cpp
@@ -274,7 +274,7 @@ static void ErrorLoadingSheet(nsIURI* aURI, const char* aMsg,
}
}
- MOZ_CRASH_UNSAFE_OOL(errorMessage.get());
+ MOZ_CRASH_UNSAFE(errorMessage.get());
}
void nsLayoutStylesheetCache::LoadSheet(nsIURI* aURI,
diff --git a/mfbt/Assertions.cpp b/mfbt/Assertions.cpp
index 8e680929896a..8bf7f29182f8 100644
--- a/mfbt/Assertions.cpp
+++ b/mfbt/Assertions.cpp
@@ -50,9 +50,9 @@ MOZ_FORMAT_PRINTF(3, 4) void MOZ_CrashPrintf(const char* aFilename, int aLine,
ret >= 0 && size_t(ret) < sPrintfCrashReasonSize,
"Could not write the explanation string to the supplied buffer!");
#ifdef DEBUG
- MOZ_CrashOOL(aFilename, aLine, sPrintfCrashReason);
+ MOZ_Crash(aFilename, aLine, sPrintfCrashReason);
#else
- MOZ_CrashOOL(nullptr, aLine, sPrintfCrashReason);
+ MOZ_Crash(nullptr, aLine, sPrintfCrashReason);
#endif
}
diff --git a/mfbt/Assertions.h b/mfbt/Assertions.h
index 69fda73a0028..7bd3efab0574 100644
--- a/mfbt/Assertions.h
+++ b/mfbt/Assertions.h
@@ -293,27 +293,27 @@ MOZ_NoReturn(int aLine) {
#endif
/*
- * MOZ_CRASH_UNSAFE_OOL(explanation-string) can be used if the explanation
- * string cannot be a string literal (but no other processing needs to be done
- * on it). A regular MOZ_CRASH() is preferred wherever possible, as passing
- * arbitrary strings from a potentially compromised process is not without risk.
- * If the string being passed is the result of a printf-style function,
- * consider using MOZ_CRASH_UNSAFE_PRINTF instead.
+ * MOZ_CRASH_UNSAFE(explanation-string) can be used if the explanation string
+ * cannot be a string literal (but no other processing needs to be done on it).
+ * A regular MOZ_CRASH() is preferred wherever possible, as passing arbitrary
+ * strings from a potentially compromised process is not without risk. If the
+ * string being passed is the result of a printf-style function, consider using
+ * MOZ_CRASH_UNSAFE_PRINTF instead.
*
* @note This macro causes data collection because crash strings are annotated
* to crash-stats and are publicly visible. Firefox data stewards must do data
* review on usages of this macro.
*/
-static inline MOZ_COLD MOZ_NORETURN void MOZ_CrashOOL(const char* aFilename,
- int aLine,
- const char* aReason) {
+static inline MOZ_COLD MOZ_NORETURN void MOZ_Crash(const char* aFilename,
+ int aLine,
+ const char* aReason) {
#ifdef DEBUG
MOZ_ReportCrash(aReason, aFilename, aLine);
#endif
MOZ_CRASH_ANNOTATE(aReason);
MOZ_REALLY_CRASH(aLine);
}
-#define MOZ_CRASH_UNSAFE_OOL(reason) MOZ_CrashOOL(__FILE__, __LINE__, reason)
+#define MOZ_CRASH_UNSAFE(reason) MOZ_Crash(__FILE__, __LINE__, reason)
static const size_t sPrintfMaxArgs = 4;
static const size_t sPrintfCrashReasonSize = 1024;
diff --git a/mfbt/RangedPtr.h b/mfbt/RangedPtr.h
index 436c1bd50409..a0db2eb78ddc 100644
--- a/mfbt/RangedPtr.h
+++ b/mfbt/RangedPtr.h
@@ -211,7 +211,7 @@ class RangedPtr {
return *this;
}
- T& operator[](int aIndex) const {
+ T& operator[](ptrdiff_t aIndex) const {
MOZ_ASSERT(size_t(aIndex > 0 ? aIndex : -aIndex) <= size_t(-1) / sizeof(T));
return *create(mPtr + aIndex);
}
diff --git a/netwerk/ipc/NeckoCommon.h b/netwerk/ipc/NeckoCommon.h
index bd0f127bb80e..543ffe6b4789 100644
--- a/netwerk/ipc/NeckoCommon.h
+++ b/netwerk/ipc/NeckoCommon.h
@@ -38,7 +38,7 @@ class TabChild;
msg.AppendLiteral( \
" (set NECKO_ERRORS_ARE_FATAL=0 in your environment " \
"to convert this error into a warning.)"); \
- MOZ_CRASH_UNSAFE_OOL(msg.get()); \
+ MOZ_CRASH_UNSAFE(msg.get()); \
} else { \
msg.AppendLiteral( \
" (set NECKO_ERRORS_ARE_FATAL=1 in your environment " \
diff --git a/netwerk/ipc/NeckoParent.cpp b/netwerk/ipc/NeckoParent.cpp
index 2793515c32ec..8feac733cbb2 100644
--- a/netwerk/ipc/NeckoParent.cpp
+++ b/netwerk/ipc/NeckoParent.cpp
@@ -148,7 +148,7 @@ static already_AddRefed GetRequestingPrincipal(
// We prefer to crash on the parent, so we get the reason in the crash report.
static MOZ_COLD void CrashWithReason(const char* reason) {
#ifndef RELEASE_OR_BETA
- MOZ_CRASH_UNSAFE_OOL(reason);
+ MOZ_CRASH_UNSAFE(reason);
#endif
}
diff --git a/testing/web-platform/manifestupdate.py b/testing/web-platform/manifestupdate.py
index 48576ac2ac68..389b776aa2ae 100644
--- a/testing/web-platform/manifestupdate.py
+++ b/testing/web-platform/manifestupdate.py
@@ -114,12 +114,12 @@ def run(src_root, obj_root, logger=None, **kwargs):
else:
logger.debug("Skipping manifest download")
- if kwargs["update"] or kwargs["rebuild"]:
- manifests = update(logger, src_wpt_dir, test_paths, rebuild=kwargs["rebuild"],
- cache_root=kwargs["cache_root"])
- else:
- logger.debug("Skipping manifest update")
- manifests = load_manifests(test_paths)
+ update = kwargs["update"] or kwargs["rebuild"]
+ manifests = load_and_update(logger, src_wpt_dir, test_paths,
+ update=update,
+ rebuild=kwargs["rebuild"],
+ cache_root=kwargs["cache_root"],
+ meta_filters=kwargs.get("meta_filters"))
return manifests
@@ -175,7 +175,8 @@ def generate_config(logger, repo_root, wpt_dir, dest_path, force_rewrite=False):
return dest_config_path
-def update(logger, wpt_dir, test_paths, rebuild=False, config_dir=None, cache_root=None):
+def load_and_update(logger, wpt_dir, test_paths, rebuild=False, config_dir=None, cache_root=None,
+ meta_filters=None, update=True):
rv = {}
wptdir_hash = hashlib.sha256(os.path.abspath(wpt_dir)).hexdigest()
for url_base, paths in test_paths.iteritems():
@@ -184,8 +185,11 @@ def update(logger, wpt_dir, test_paths, rebuild=False, config_dir=None, cache_ro
m = manifest.manifest.load_and_update(paths["tests_path"],
manifest_path,
url_base,
+ update=update,
+ rebuild=rebuild,
working_copy=True,
- cache_root=this_cache_root)
+ cache_root=this_cache_root,
+ meta_filters=meta_filters)
path_data = {"url_base": url_base}
path_data.update(paths)
rv[m] = path_data
@@ -193,16 +197,6 @@ def update(logger, wpt_dir, test_paths, rebuild=False, config_dir=None, cache_ro
return rv
-def load_manifests(test_paths):
- rv = {}
- for url_base, paths in test_paths.iteritems():
- m = manifest.manifest.load(paths["tests_path"], manifest_path)
- path_data = {"url_base": url_base}
- path_data.update(paths)
- rv[m] = path_data
- return rv
-
-
def log_error(logger, manifest_path, msg):
logger.lint_error(path=manifest_path,
message=msg,
diff --git a/testing/web-platform/meta/2dcontext/context-attributes/getContextAttributes.html.ini b/testing/web-platform/meta/2dcontext/context-attributes/getContextAttributes.html.ini
new file mode 100644
index 000000000000..ad09d258bf7b
--- /dev/null
+++ b/testing/web-platform/meta/2dcontext/context-attributes/getContextAttributes.html.ini
@@ -0,0 +1,10 @@
+[getContextAttributes.html]
+ [Test context creation attributes alpha: true]
+ expected: FAIL
+
+ [Test context creation attributes alpha: false]
+ expected: FAIL
+
+ [Test default context creation attributes]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/IndexedDB/idb-explicit-commit.any.js.ini b/testing/web-platform/meta/IndexedDB/idb-explicit-commit.any.js.ini
index 3dafcd074719..275de216f440 100644
--- a/testing/web-platform/meta/IndexedDB/idb-explicit-commit.any.js.ini
+++ b/testing/web-platform/meta/IndexedDB/idb-explicit-commit.any.js.ini
@@ -71,6 +71,9 @@
[Transactions with same scope should stay in program order, even if one calls commit.]
expected: FAIL
+ [Transactions that handle all errors properly should be behave as expected when an explicit commit is called in an onerror handler.]
+ expected: FAIL
+
[idb-explicit-commit.any.html]
[Ensure that calling commit on a committed transaction throws.]
@@ -145,3 +148,6 @@
[Transactions with same scope should stay in program order, even if one calls commit.]
expected: FAIL
+ [Transactions that handle all errors properly should be behave as expected when an explicit commit is called in an onerror handler.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/IndexedDB/idlharness.any.js.ini b/testing/web-platform/meta/IndexedDB/idlharness.any.js.ini
index abe2ce7252e4..d8565f02a98d 100644
--- a/testing/web-platform/meta/IndexedDB/idlharness.any.js.ini
+++ b/testing/web-platform/meta/IndexedDB/idlharness.any.js.ini
@@ -5,6 +5,9 @@
[IDBFactory interface: operation databases()]
expected: FAIL
+ [IDBTransaction interface: operation commit()]
+ expected: FAIL
+
[idlharness.any.html]
[idlharness]
@@ -16,6 +19,9 @@
[IDBFactory interface: operation databases()]
expected: FAIL
+ [IDBTransaction interface: operation commit()]
+ expected: FAIL
+
[idlharness.any.worker.html]
[idlharness]
@@ -27,6 +33,9 @@
[IDBFactory interface: operation databases()]
expected: FAIL
+ [IDBTransaction interface: operation commit()]
+ expected: FAIL
+
[idlharness.https.any.serviceworker.html]
expected: TIMEOUT
@@ -38,3 +47,6 @@
[IDBFactory interface: operation databases()]
expected: FAIL
+ [IDBTransaction interface: operation commit()]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/IndexedDB/transaction-lifecycle.htm.ini b/testing/web-platform/meta/IndexedDB/transaction-lifecycle.htm.ini
deleted file mode 100644
index 5ed357fdf731..000000000000
--- a/testing/web-platform/meta/IndexedDB/transaction-lifecycle.htm.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[transaction-lifecycle.htm]
- disabled: Bug 1519865
diff --git a/testing/web-platform/meta/accelerometer/Accelerometer-supported-by-feature-policy.html.ini b/testing/web-platform/meta/accelerometer/Accelerometer-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..86ddd4456ae9
--- /dev/null
+++ b/testing/web-platform/meta/accelerometer/Accelerometer-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[Accelerometer-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise accelerometer.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/ambient-light/AmbientLightSensor-supported-by-feature-policy.html.ini b/testing/web-platform/meta/ambient-light/AmbientLightSensor-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..87364e4d2041
--- /dev/null
+++ b/testing/web-platform/meta/ambient-light/AmbientLightSensor-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[AmbientLightSensor-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise ambient-light-sensor.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/animation-worklet/animation-worklet-inside-iframe.https.html.ini b/testing/web-platform/meta/animation-worklet/animation-worklet-inside-iframe.https.html.ini
new file mode 100644
index 000000000000..89c4d531d8a4
--- /dev/null
+++ b/testing/web-platform/meta/animation-worklet/animation-worklet-inside-iframe.https.html.ini
@@ -0,0 +1,5 @@
+[animation-worklet-inside-iframe.https.html]
+ expected: TIMEOUT
+ [Both main frame and iframe should update the opacity of their target]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/animation-worklet/current-time.https.html.ini b/testing/web-platform/meta/animation-worklet/current-time.https.html.ini
new file mode 100644
index 000000000000..3bdb0f7dcbf4
--- /dev/null
+++ b/testing/web-platform/meta/animation-worklet/current-time.https.html.ini
@@ -0,0 +1,7 @@
+[current-time.https.html]
+ [The current time returns the hold time when set]
+ expected: FAIL
+
+ [The current time is calculated from the timeline time and start time]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/animation-worklet/scroll-timeline-writing-modes.https.html.ini b/testing/web-platform/meta/animation-worklet/scroll-timeline-writing-modes.https.html.ini
new file mode 100644
index 000000000000..0d6dd8a50119
--- /dev/null
+++ b/testing/web-platform/meta/animation-worklet/scroll-timeline-writing-modes.https.html.ini
@@ -0,0 +1,2 @@
+[scroll-timeline-writing-modes.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/animation-worklet/worklet-animation-with-fill-mode.https.html.ini b/testing/web-platform/meta/animation-worklet/worklet-animation-with-fill-mode.https.html.ini
new file mode 100644
index 000000000000..5d7efe407f41
--- /dev/null
+++ b/testing/web-platform/meta/animation-worklet/worklet-animation-with-fill-mode.https.html.ini
@@ -0,0 +1,19 @@
+[worklet-animation-with-fill-mode.https.html]
+ [Effect with fill mode forwards in after phase produces output that is equivalent to effect's end value.]
+ expected: FAIL
+
+ [Effect with local time at start point is in active phase.]
+ expected: FAIL
+
+ [Effect without fill mode backwards in before phase (local time before start) should deactivate the animation.]
+ expected: FAIL
+
+ [Effect without fill mode forwards in after phase (local time beyond end) should deactivate the animation.]
+ expected: FAIL
+
+ [Effect without fill mode in after phase (local time at end) should deactivate the animation.]
+ expected: FAIL
+
+ [Effect with fill mode backwards in before phase produces output that is equivalent to effect's start value.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/animation-worklet/worklet-animation-with-invalid-effect.https.html.ini b/testing/web-platform/meta/animation-worklet/worklet-animation-with-invalid-effect.https.html.ini
new file mode 100644
index 000000000000..41fe06887f7e
--- /dev/null
+++ b/testing/web-platform/meta/animation-worklet/worklet-animation-with-invalid-effect.https.html.ini
@@ -0,0 +1,4 @@
+[worklet-animation-with-invalid-effect.https.html]
+ [Trying to play invalid worklet animation should throw an exception.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/async-local-storage/api-surface.tentative.https.html.ini b/testing/web-platform/meta/async-local-storage/api-surface.tentative.https.html.ini
deleted file mode 100644
index 6fc771828557..000000000000
--- a/testing/web-platform/meta/async-local-storage/api-surface.tentative.https.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[api-surface.tentative.https.html]
- expected: TIMEOUT
diff --git a/testing/web-platform/meta/async-local-storage/key-types.tentative.https.html.ini b/testing/web-platform/meta/async-local-storage/key-types.tentative.https.html.ini
deleted file mode 100644
index a878dd98e501..000000000000
--- a/testing/web-platform/meta/async-local-storage/key-types.tentative.https.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[key-types.tentative.https.html]
- expected: TIMEOUT
diff --git a/testing/web-platform/meta/async-local-storage/non-secure-context-dynamic-import.tentative.html.ini b/testing/web-platform/meta/async-local-storage/non-secure-context-dynamic-import.tentative.html.ini
deleted file mode 100644
index b6d895f4c011..000000000000
--- a/testing/web-platform/meta/async-local-storage/non-secure-context-dynamic-import.tentative.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[non-secure-context-dynamic-import.tentative.html]
- [Async local storage: should not work in non-secure contexts when included via import()]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/async-local-storage/non-secure-context-import-statement.tentative.html.ini b/testing/web-platform/meta/async-local-storage/non-secure-context-import-statement.tentative.html.ini
deleted file mode 100644
index 9edd135f65b7..000000000000
--- a/testing/web-platform/meta/async-local-storage/non-secure-context-import-statement.tentative.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[non-secure-context-import-statement.tentative.html]
- expected: TIMEOUT
- [Async local storage: should not work in non-secure contexts when included via an import statement]
- expected: TIMEOUT
-
diff --git a/testing/web-platform/meta/async-local-storage/non-secure-context-script-element.tentative.html.ini b/testing/web-platform/meta/async-local-storage/non-secure-context-script-element.tentative.html.ini
deleted file mode 100644
index 3c0abd3f2660..000000000000
--- a/testing/web-platform/meta/async-local-storage/non-secure-context-script-element.tentative.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[non-secure-context-script-element.tentative.html]
- expected: TIMEOUT
- [Async local storage: should not work in non-secure contexts when included via a script element]
- expected: TIMEOUT
-
diff --git a/testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini b/testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini
deleted file mode 100644
index ed3bae849e65..000000000000
--- a/testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[storage-smoke-test.tentative.https.html]
- expected:
- if (os == "linux") and debug and not webrender: TIMEOUT
- if (os == "linux") and debug and webrender: TIMEOUT
- if (os == "linux") and not debug: TIMEOUT
- if os == "win": TIMEOUT
- if os == "android": TIMEOUT
- if os == "mac": TIMEOUT
diff --git a/testing/web-platform/meta/background-fetch/fetch-uploads.https.window.js.ini b/testing/web-platform/meta/background-fetch/fetch-uploads.https.window.js.ini
index 174c06966f21..080eddac7b4f 100644
--- a/testing/web-platform/meta/background-fetch/fetch-uploads.https.window.js.ini
+++ b/testing/web-platform/meta/background-fetch/fetch-uploads.https.window.js.ini
@@ -2,3 +2,9 @@
[Fetch with an upload should work]
expected: FAIL
+ [Progress event includes uploaded bytes]
+ expected: FAIL
+
+ [Duplicate upload requests work and can be distinguished.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/background-fetch/fetch.https.window.js.ini b/testing/web-platform/meta/background-fetch/fetch.https.window.js.ini
index 4bc0ebd50c94..35ba60310ed8 100644
--- a/testing/web-platform/meta/background-fetch/fetch.https.window.js.ini
+++ b/testing/web-platform/meta/background-fetch/fetch.https.window.js.ini
@@ -50,3 +50,9 @@
[Matching multiple times on the same request works as expected.]
expected: FAIL
+ [Responses failing CORS checks are not leaked]
+ expected: FAIL
+
+ [Access to active fetches is supported.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html.ini
index c55b8929cfa3..93f000abfc38 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html.ini
@@ -1,6 +1,7 @@
[empty-filter.https.html]
+ expected: ERROR
[A filter must restrict the devices in some way.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html.ini
index 575f1ba8200f..e50cb41d21ca 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html.ini
@@ -1,6 +1,7 @@
[empty-filters-member.https.html]
+ expected: ERROR
[An empty |filters| member should result in a TypeError]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html.ini
index 3f791d024b4e..bffd18c6ab9a 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html.ini
@@ -1,6 +1,7 @@
[empty-namePrefix.https.html]
+ expected: ERROR
[requestDevice with empty namePrefix. Should reject with TypeError.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html.ini
index 36be184abdd9..1dfb454211ac 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html.ini
@@ -1,6 +1,7 @@
[empty-services-member.https.html]
+ expected: ERROR
[Services member must contain at least one service.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html.ini
index e18159bae31f..519ea5c0cef4 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html.ini
@@ -1,6 +1,7 @@
[filters-xor-acceptAllDevices.https.html]
+ expected: ERROR
[RequestDeviceOptions should have exactly one of 'filters' or 'acceptAllDevices:true'. Reject with TypeError if not.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html.ini
index b2bee231993d..c43387d34ef9 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html.ini
@@ -1,6 +1,7 @@
[max-length-exceeded-name-unicode.https.html]
+ expected: ERROR
[Unicode string with utf8 representation longer than 248 bytes in 'name' must throw TypeError.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html.ini
index d529d400f865..54ad784660a7 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html.ini
@@ -1,6 +1,7 @@
[max-length-exceeded-name.https.html]
+ expected: ERROR
[A device name longer than 248 must reject.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html.ini
index 4e96e58a05f9..bb608a0ad695 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html.ini
@@ -1,6 +1,7 @@
[max-length-exceeded-namePrefix-unicode.https.html]
+ expected: ERROR
[Unicode string with utf8 representation longer than 248 bytes in 'namePrefix' must throw NotFoundError.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html.ini
index d7aceeb2fb48..113481e4f208 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html.ini
@@ -1,6 +1,7 @@
[max-length-exceeded-namePrefix.https.html]
+ expected: ERROR
[A device name prefix longer than 248 must reject.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html.ini
index 5f5e024b87f4..16400e6fad1a 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html.ini
@@ -1,6 +1,7 @@
[wrong-service-in-optionalServices-member.https.html]
+ expected: ERROR
[Invalid optional service must reject the promise.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html.ini b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html.ini
index a3a7870b27c1..3ffccd62fb86 100644
--- a/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html.ini
+++ b/testing/web-platform/meta/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html.ini
@@ -1,6 +1,7 @@
[wrong-service-in-services-member.https.html]
+ expected: ERROR
[Invalid service must reject the promise.]
- expected: FAIL
+ expected: TIMEOUT
[Untitled]
expected: FAIL
diff --git a/testing/web-platform/meta/clipboard-apis/async-navigator-clipboard-basics.https.html.ini b/testing/web-platform/meta/clipboard-apis/async-navigator-clipboard-basics.https.html.ini
new file mode 100644
index 000000000000..0a31d3137c74
--- /dev/null
+++ b/testing/web-platform/meta/clipboard-apis/async-navigator-clipboard-basics.https.html.ini
@@ -0,0 +1,10 @@
+[async-navigator-clipboard-basics.https.html]
+ [navigator.clipboard.readImageExperimental() succeeds]
+ expected: FAIL
+
+ [navigator.clipboard.writeImageExperimental(Blob) succeeds]
+ expected: FAIL
+
+ [navigator.clipboard.writeImageExperimental() fails (expect Blob)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/compat/webkit-appearance.html.ini b/testing/web-platform/meta/compat/webkit-appearance.html.ini
deleted file mode 100644
index 4f2c331caa3a..000000000000
--- a/testing/web-platform/meta/compat/webkit-appearance.html.ini
+++ /dev/null
@@ -1,72 +0,0 @@
-[webkit-appearance.html]
- prefs: [layout.css.webkit-appearance.enabled:true]
- [-webkit-appearance: button]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: listbox]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: menulist]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: menulist-text]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: caret]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: bogus-button (invalid)]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: menulist-textfield]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: checkbox]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: menulist-button]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: button-bevel]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: listitem]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: radio]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: textfield]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
- [-webkit-appearance: searchfield]
- expected:
- if os == "android": FAIL
- bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1502150
-
diff --git a/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html.ini b/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html.ini
new file mode 100644
index 000000000000..0f256a8ca261
--- /dev/null
+++ b/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html.ini
@@ -0,0 +1,5 @@
+[serviceworker_cookieStore_cross_origin.tentative.https.sub.html]
+ expected: TIMEOUT
+ [cookieStore.get() in ServiceWorker reads cookie set in cross-origin frame]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/css/CSS2/bidi-005.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-005.xht.ini
new file mode 100644
index 000000000000..86289cdac222
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-005.xht.ini
@@ -0,0 +1,2 @@
+[bidi-005.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/bidi-006.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-006.xht.ini
new file mode 100644
index 000000000000..c48ebe38be89
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-006.xht.ini
@@ -0,0 +1,2 @@
+[bidi-006.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/bidi-007.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-007.xht.ini
new file mode 100644
index 000000000000..3ad433b3b272
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-007.xht.ini
@@ -0,0 +1,2 @@
+[bidi-007.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/bidi-008.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-008.xht.ini
new file mode 100644
index 000000000000..78e74fba2221
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-008.xht.ini
@@ -0,0 +1,2 @@
+[bidi-008.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/bidi-009.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-009.xht.ini
new file mode 100644
index 000000000000..5512b703eec4
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-009.xht.ini
@@ -0,0 +1,2 @@
+[bidi-009.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/bidi-010.xht.ini b/testing/web-platform/meta/css/CSS2/bidi-010.xht.ini
new file mode 100644
index 000000000000..6a99a28b88f4
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/bidi-010.xht.ini
@@ -0,0 +1,2 @@
+[bidi-010.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/generated-content/content-173.xht.ini b/testing/web-platform/meta/css/CSS2/generated-content/content-173.xht.ini
deleted file mode 100644
index 27d146b4f76f..000000000000
--- a/testing/web-platform/meta/css/CSS2/generated-content/content-173.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[content-173.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/positioning/__dir__.ini b/testing/web-platform/meta/css/CSS2/positioning/__dir__.ini
new file mode 100644
index 000000000000..daf68383df9a
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/positioning/__dir__.ini
@@ -0,0 +1 @@
+leak-threshold: [default:51200]
diff --git a/testing/web-platform/meta/css/CSS2/positioning/abspos-float-with-inline-container.html.ini b/testing/web-platform/meta/css/CSS2/positioning/abspos-float-with-inline-container.html.ini
new file mode 100644
index 000000000000..d396793faece
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/positioning/abspos-float-with-inline-container.html.ini
@@ -0,0 +1,11 @@
+[abspos-float-with-inline-container.html]
+ expected:
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-001.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-001.xht.ini
deleted file mode 100644
index 5a50c8528bd6..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-001.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-001.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-002.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-002.xht.ini
deleted file mode 100644
index 19ddbb368ae6..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-002.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-002.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-003.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-003.xht.ini
deleted file mode 100644
index 1d4f55fd3b39..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-003.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-003.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-004.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-004.xht.ini
deleted file mode 100644
index 58cecfd0cb5e..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-004.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-004.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-005.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-005.xht.ini
index 9d6319419471..9d1939e9de32 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-005.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-005.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-005.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-006.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-006.xht.ini
index 6f001d7953a9..1cf03f27459c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-006.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-006.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-007.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-007.xht.ini
index 4c58bc249f0a..aee17a73a6f5 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-007.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-007.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-008.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-008.xht.ini
index ea06eeaaa61c..bddedb2ab2f7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-008.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-008.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-009.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-009.xht.ini
index bb22921b91c8..b3c39867a322 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-009.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-009.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-010.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-010.xht.ini
index 0eccc4d8dcab..37930a5e639d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-010.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-010.xht.ini
@@ -5,4 +5,3 @@
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-012.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-012.xht.ini
index 145f761eeb13..4728fc82ad78 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-012.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-012.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-013.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-013.xht.ini
index 9e2db33da074..565b7d075cbd 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-013.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-013.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-014.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-014.xht.ini
index 5d0355dda1a6..fa8a42e27e00 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-014.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-014.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-015.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-015.xht.ini
index 4ef0ae03b8b5..ee9e3e646279 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-015.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-015.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-016.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-016.xht.ini
index e1a3b089a9a4..ca6237b7af66 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-016.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-016.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-017.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-017.xht.ini
index a284f5f7522a..9f7ee113a46b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-017.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-017.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-018.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-018.xht.ini
index 1464d0da3887..ec8c8073c25b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-018.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-018.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-019.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-019.xht.ini
index 10bf289c2e7c..b5c2ddcfad3c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-019.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-019.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-020.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-020.xht.ini
index 9d0ca5abf5ca..78b0876287ef 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-020.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-020.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-021.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-021.xht.ini
index b7e628889b7d..0b9a4c4d00a3 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-021.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-021.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-022.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-022.xht.ini
index 0626d3366ff0..b6b51569358f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-022.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-022.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-023.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-023.xht.ini
index 65958f9d1ec6..312e80647312 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-023.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-023.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-024.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-024.xht.ini
index a71ecf3720b9..015b96413d0f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-024.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-024.xht.ini
@@ -5,4 +5,3 @@
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-025.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-025.xht.ini
index 89e9a58f0ee6..7f46db0d5268 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-025.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-025.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-026.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-026.xht.ini
index 92f5de81a7c9..fa0a246bab8c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-026.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-026.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-027.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-027.xht.ini
index c6bc8cb7d434..389cc7cc7340 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-027.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-027.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-028.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-028.xht.ini
index 9e1689fe84d6..55243b802dd6 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-028.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-028.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-029.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-029.xht.ini
index c5b1ecf2fd2d..648f0d890c44 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-029.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-029.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-030.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-030.xht.ini
index 90f404ddd00c..f808b5aaf28f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-030.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-030.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-031.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-031.xht.ini
index 1d2ca5776070..03d1ec33854c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-031.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-031.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-032.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-032.xht.ini
index 6d3d0cbb9d60..f76f03af8451 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-032.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-032.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-033.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-033.xht.ini
index 1b94fed50fd1..2daa7dc72cb9 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-033.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-033.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-034.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-034.xht.ini
index 8077277f4817..770fd18b50b4 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-034.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-034.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-035.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-035.xht.ini
index 5c28cb76da2e..19f13cca0abf 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-035.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-035.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-036.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-036.xht.ini
index 93ac6d1252a4..dc0c14ac15c2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-036.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-036.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-037.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-037.xht.ini
index 582a73984ab1..6dba5a829e40 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-037.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-037.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-038.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-038.xht.ini
index 3385968b2d66..4278bad8e177 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-038.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-038.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-039.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-039.xht.ini
index 8027beed5aa3..9e75083a82e5 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-039.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-039.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-040.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-040.xht.ini
index 3d9568592816..1f31a33e0a82 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-040.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-040.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-041.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-041.xht.ini
index 0b1a9e12a7e9..8f910437eb35 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-041.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-041.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-042.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-042.xht.ini
index 58f0d5c52320..51bc82af8d37 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-042.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-042.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-043.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-043.xht.ini
index 0210a2c7d1fb..081e339890c7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-043.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-043.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-044.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-044.xht.ini
index 9fdfe243d170..5777f7881b88 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-044.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-044.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-047.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-047.xht.ini
index 1a2b8e659be0..5e13a9007085 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-047.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-047.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-048.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-048.xht.ini
index 27bc52eb0b1f..dc95f5ec2950 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-048.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-048.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-062.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-062.xht.ini
index e3b8cf28863c..349a34308353 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-062.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-062.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-063.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-063.xht.ini
index 70b06cf24614..06b25f168e31 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-063.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-063.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-064.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-064.xht.ini
index 1f9968b1b011..bc2876348108 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-064.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-064.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-065.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-065.xht.ini
index ff1fbff77f10..a26258603025 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-065.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-065.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-066.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-066.xht.ini
index f8d239af0eb1..8a51fb2854d6 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-066.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-066.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-067.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-067.xht.ini
deleted file mode 100644
index 83625c26a4b1..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-067.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-067.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-068.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-068.xht.ini
index 9d392a08124e..cecf2a7fe607 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-068.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-068.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-068.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-069.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-069.xht.ini
index 768a03e97532..8dd0591eed84 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-069.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-069.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-069.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-070.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-070.xht.ini
deleted file mode 100644
index 344ec1d32fcb..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-070.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-070.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-071.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-071.xht.ini
deleted file mode 100644
index e6d7651fa91c..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-071.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-071.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-072.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-072.xht.ini
deleted file mode 100644
index 214012996fd7..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-072.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-072.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-073.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-073.xht.ini
deleted file mode 100644
index e5831ea0c017..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-073.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-073.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-074.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-074.xht.ini
deleted file mode 100644
index e0693ff795c4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-074.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-074.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-075.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-075.xht.ini
index 926219642fa9..43c65947e70e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-075.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-075.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-076.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-076.xht.ini
deleted file mode 100644
index 3163e5af60d5..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-076.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-076.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-077.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-077.xht.ini
index 51d481a8a607..628b5ebbe8d2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-077.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-077.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-077.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-078.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-078.xht.ini
index 3f4bf165dfd9..fdbe22835ffd 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-078.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-078.xht.ini
@@ -1,5 +1,3 @@
[first-letter-punctuation-078.xht]
expected:
- if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-079.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-079.xht.ini
index 0758e2e8c186..eeb6b5b586b1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-079.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-079.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-079.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-080.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-080.xht.ini
index 719ed5325e0d..37433156ed66 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-080.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-080.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-081.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-081.xht.ini
deleted file mode 100644
index a8275d190386..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-081.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-081.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-082.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-082.xht.ini
deleted file mode 100644
index 7f1e4a2c6d5a..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-082.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-082.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-083.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-083.xht.ini
deleted file mode 100644
index 8e0f9afd9a18..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-083.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-083.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-084.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-084.xht.ini
deleted file mode 100644
index 14a6e991546d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-084.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-084.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-085.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-085.xht.ini
deleted file mode 100644
index 9a6e3abd921d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-085.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-085.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-086.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-086.xht.ini
index 43ccf546cb42..3b89dfa0399d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-086.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-086.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-087.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-087.xht.ini
deleted file mode 100644
index f9201456e9a2..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-087.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-087.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-088.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-088.xht.ini
index eff10f9e7fac..74caa2aae924 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-088.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-088.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-088.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-089.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-089.xht.ini
deleted file mode 100644
index 5d6f5717cccb..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-089.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-089.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-090.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-090.xht.ini
deleted file mode 100644
index 8feaff03af9d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-090.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-090.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-091.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-091.xht.ini
deleted file mode 100644
index f38352f133d4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-091.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-091.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-092.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-092.xht.ini
index 1802c47d708b..2f2090745997 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-092.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-092.xht.ini
@@ -1,2 +1,3 @@
[first-letter-punctuation-092.xht]
- expected: FAIL
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-093.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-093.xht.ini
deleted file mode 100644
index 367505fbf062..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-093.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-093.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-094.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-094.xht.ini
deleted file mode 100644
index b53d485c8857..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-094.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-094.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-095.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-095.xht.ini
deleted file mode 100644
index ee1f9429991c..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-095.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-095.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-096.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-096.xht.ini
deleted file mode 100644
index 6b5ab2768653..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-096.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-096.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-097.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-097.xht.ini
deleted file mode 100644
index 15a20aacb08f..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-097.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-097.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-098.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-098.xht.ini
deleted file mode 100644
index 1e8ab51b2121..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-098.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-098.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-099.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-099.xht.ini
deleted file mode 100644
index f9c3a5dcb977..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-099.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-099.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-100.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-100.xht.ini
deleted file mode 100644
index e080a9c2edf1..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-100.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-100.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-101.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-101.xht.ini
deleted file mode 100644
index bbd42f06f8fe..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-101.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-101.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-102.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-102.xht.ini
deleted file mode 100644
index c9ab1bf2aace..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-102.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-102.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-103.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-103.xht.ini
deleted file mode 100644
index 48efd2f06c6d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-103.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-103.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-104.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-104.xht.ini
deleted file mode 100644
index 4369058c823d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-104.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-104.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-105.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-105.xht.ini
deleted file mode 100644
index b291e966696a..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-105.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-105.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-106.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-106.xht.ini
deleted file mode 100644
index 3cfdfa17d8cf..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-106.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-106.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-107.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-107.xht.ini
index 6bf5229e8a81..2e69976efff9 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-107.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-107.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-108.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-108.xht.ini
index fbbf5148f85d..a881133074a5 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-108.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-108.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-109.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-109.xht.ini
index a4391144c5f1..1486c57b87d4 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-109.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-109.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-110.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-110.xht.ini
index a1b67c33d821..ea526a8c30b7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-110.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-110.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-111.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-111.xht.ini
index e87825ee01e9..2957b3434e4d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-111.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-111.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-112.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-112.xht.ini
index 6c510c1bd9ab..4212848aba07 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-112.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-112.xht.ini
@@ -3,4 +3,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-113.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-113.xht.ini
index bd0399f0a8e9..e9b37c4311d8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-113.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-113.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-120.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-120.xht.ini
index b72fac82742f..1317f87ba7f1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-120.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-120.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-125.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-125.xht.ini
index e9352a5e9ff0..319f4442d6db 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-125.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-125.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-126.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-126.xht.ini
index 03c6fb94c394..651bc409c42d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-126.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-126.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-127.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-127.xht.ini
index ca0d088058eb..74b43c9f742b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-127.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-127.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-144.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-144.xht.ini
index 125530148d70..3721b163ab2d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-144.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-144.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-145.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-145.xht.ini
index 21ae912ec01e..a2ed1c0be443 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-145.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-145.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-146.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-146.xht.ini
index 216644ea8fb1..d2e5e51844ac 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-146.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-146.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-147.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-147.xht.ini
index 28476a12d7c6..d65c5ea07f42 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-147.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-147.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-151.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-151.xht.ini
deleted file mode 100644
index d00736924fb3..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-151.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-151.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-152.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-152.xht.ini
deleted file mode 100644
index db63dcb358a5..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-152.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-152.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-153.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-153.xht.ini
deleted file mode 100644
index 6c52bfb1fc7f..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-153.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-153.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-154.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-154.xht.ini
deleted file mode 100644
index ae0e2930c8a4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-154.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-154.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-155.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-155.xht.ini
deleted file mode 100644
index 17abc5e11068..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-155.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-155.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-156.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-156.xht.ini
deleted file mode 100644
index 9d2c61e134c6..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-156.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-156.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-157.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-157.xht.ini
deleted file mode 100644
index d36aefa17522..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-157.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-157.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-158.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-158.xht.ini
deleted file mode 100644
index a2c33f890389..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-158.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-158.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-159.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-159.xht.ini
deleted file mode 100644
index 307cdbf8ba19..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-159.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-159.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-160.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-160.xht.ini
deleted file mode 100644
index e4c4a1785c00..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-160.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-160.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-161.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-161.xht.ini
deleted file mode 100644
index a6a6a10ebeb4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-161.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-161.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-162.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-162.xht.ini
deleted file mode 100644
index 15a8fd20532b..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-162.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-162.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-163.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-163.xht.ini
deleted file mode 100644
index 7dc9f549c50f..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-163.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-163.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-164.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-164.xht.ini
deleted file mode 100644
index 16baff77a998..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-164.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-164.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-165.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-165.xht.ini
deleted file mode 100644
index c708f97b16dd..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-165.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-165.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-166.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-166.xht.ini
deleted file mode 100644
index 9bf2794a0375..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-166.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-166.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-167.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-167.xht.ini
deleted file mode 100644
index b77e426bf51b..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-167.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-167.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-168.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-168.xht.ini
deleted file mode 100644
index c5109c69c7d2..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-168.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-168.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-169.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-169.xht.ini
deleted file mode 100644
index b23f97ecc4f5..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-169.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-169.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-170.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-170.xht.ini
deleted file mode 100644
index f67d365b6721..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-170.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-170.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-171.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-171.xht.ini
deleted file mode 100644
index fa45983d4ad3..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-171.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-171.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-172.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-172.xht.ini
deleted file mode 100644
index 9910504b0917..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-172.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-172.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-173.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-173.xht.ini
deleted file mode 100644
index c717f68206fc..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-173.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-173.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-174.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-174.xht.ini
deleted file mode 100644
index 3eb2ac243fe1..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-174.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-174.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-175.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-175.xht.ini
index 8abd598badde..ac70906b3751 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-175.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-175.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-176.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-176.xht.ini
index a426bb77973c..9799d35cb735 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-176.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-176.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-177.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-177.xht.ini
index a2146a57ae56..b8d63cae5d64 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-177.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-177.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-178.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-178.xht.ini
index 3af6db18f197..8f46457376eb 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-178.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-178.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-179.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-179.xht.ini
index 9bf223fbb9ae..f2e27d0e1c99 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-179.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-179.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-180.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-180.xht.ini
index 754e82e0e89e..a16f275bfd5e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-180.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-180.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-181.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-181.xht.ini
index 8a70623226ba..19b4b6947376 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-181.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-181.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-182.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-182.xht.ini
index ec5b0aa20eca..33b7cf47c021 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-182.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-182.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-183.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-183.xht.ini
index 6f8a68379328..7ee9975d7580 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-183.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-183.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-184.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-184.xht.ini
index ff353891ca98..3a71b978233b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-184.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-184.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-185.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-185.xht.ini
index d6ac211e69a3..fa8892acc1b0 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-185.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-185.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-186.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-186.xht.ini
index e4fafcb4d6c2..7d162737a11a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-186.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-186.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-187.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-187.xht.ini
index 2a6933b94864..acce3880a742 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-187.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-187.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-188.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-188.xht.ini
index 22a53eaddb5c..4d6fd581582d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-188.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-188.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-189.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-189.xht.ini
index c6812e55dbe7..c732a9d8bb1b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-189.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-189.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-189.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-190.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-190.xht.ini
index 9a32f478ac69..3ed6bcd8b3a8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-190.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-190.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-190.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-197.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-197.xht.ini
index 378b11ec80ce..ffdf882b42da 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-197.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-197.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-198.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-198.xht.ini
index 842b011e2734..4edb04ba9470 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-198.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-198.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-199.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-199.xht.ini
index 509b68bfb86b..2e7ba753b101 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-199.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-199.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-200.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-200.xht.ini
index 3fac4f98e901..51c817fc9873 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-200.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-200.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-201.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-201.xht.ini
index c325842387ce..873d6f067690 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-201.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-201.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-202.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-202.xht.ini
index 1197a20e830d..32d2ea413a4b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-202.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-202.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-203.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-203.xht.ini
index 994d1cfceaed..7db43fa45bf2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-203.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-203.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-204.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-204.xht.ini
index c1c6cf0046b6..e24e2053affa 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-204.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-204.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-205.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-205.xht.ini
index 3b1e28eb1d85..5fd1b6e49b66 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-205.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-205.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-206.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-206.xht.ini
index 7ca8aa095b67..66953b19cdcb 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-206.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-206.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-207.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-207.xht.ini
index 4cc79860ba92..0f15e0f878b0 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-207.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-207.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-207.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-208.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-208.xht.ini
index 45a9f9c0df41..db01f2e8860f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-208.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-208.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-208.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-211.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-211.xht.ini
index 064b7fd361d0..b2be56d58dce 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-211.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-211.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-212.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-212.xht.ini
index b296daa3983f..de59cd0e0063 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-212.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-212.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-213.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-213.xht.ini
index d8caaf00e615..130e398002a1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-213.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-213.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-214.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-214.xht.ini
index f0fff79e64ce..0319430faf32 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-214.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-214.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-215.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-215.xht.ini
deleted file mode 100644
index 43e64e5a3cb0..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-215.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-215.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-216.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-216.xht.ini
deleted file mode 100644
index 1c8c7de48dfb..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-216.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-216.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-217.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-217.xht.ini
deleted file mode 100644
index da1fd1d49318..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-217.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-217.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-218.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-218.xht.ini
index 5e6057cf68d7..00dd365017e7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-218.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-218.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-219.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-219.xht.ini
index 563b46ac3c8a..bdbe1b636ac6 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-219.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-219.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-220.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-220.xht.ini
index f047fb53bf45..d34fc048d31d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-220.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-220.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-221.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-221.xht.ini
deleted file mode 100644
index 8aa48a5df9b4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-221.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-221.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-222.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-222.xht.ini
index eb33ebdb376e..ff2ecf62d87f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-222.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-222.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-223.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-223.xht.ini
deleted file mode 100644
index 6790388f4fff..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-223.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-223.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-224.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-224.xht.ini
index b6e3b0cc318f..2ac2cad90e7c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-224.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-224.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-225.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-225.xht.ini
index f270fd700912..4bdc56fad307 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-225.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-225.xht.ini
@@ -1,5 +1,3 @@
[first-letter-punctuation-225.xht]
expected:
- if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-226.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-226.xht.ini
index 8a58eafd7c63..ad3705510360 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-226.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-226.xht.ini
@@ -1,5 +1,3 @@
[first-letter-punctuation-226.xht]
expected:
- if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-227.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-227.xht.ini
index 1d170fa4c82e..1c1a55f71b47 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-227.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-227.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-228.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-228.xht.ini
index 610f5b0e02c6..533fd6d3e029 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-228.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-228.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-229.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-229.xht.ini
index 91f5a44e52fa..ccfc168ffc4d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-229.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-229.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-230.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-230.xht.ini
index 9327c4858833..e93784f5e37e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-230.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-230.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-231.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-231.xht.ini
index 8a4d467759b5..66057923791c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-231.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-231.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-232.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-232.xht.ini
index 197026fca572..870dd1789fe2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-232.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-232.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-233.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-233.xht.ini
index 4dad20e3997f..36ada7ea5fda 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-233.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-233.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-234.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-234.xht.ini
index c27c86e133b2..a8888d0c5374 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-234.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-234.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-235.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-235.xht.ini
index eed403995f5a..e08b8574ed6c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-235.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-235.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-236.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-236.xht.ini
index 60fccfc57464..f8e9682260a7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-236.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-236.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-237.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-237.xht.ini
index 3fc53670734e..db3902104070 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-237.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-237.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-238.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-238.xht.ini
index b3621080612b..2a80b10b7979 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-238.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-238.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-239.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-239.xht.ini
index 7b3ed5e44b59..44c500a6ab1e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-239.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-239.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-240.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-240.xht.ini
index a4bae2d2384a..4bc36f35d91e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-240.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-240.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-241.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-241.xht.ini
index ffc92cd1872d..da94efe9feb2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-241.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-241.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-242.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-242.xht.ini
index 5d8f027ed7c6..6e7e80710baa 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-242.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-242.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-243.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-243.xht.ini
index bfe02eccf068..8531ac8285a7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-243.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-243.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-244.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-244.xht.ini
index af96ba53de14..3bcfa36f33ef 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-244.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-244.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-245.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-245.xht.ini
index 1615843158bb..f67435d91407 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-245.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-245.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-246.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-246.xht.ini
index a8bcfc4c5c4d..bd1b8a9a10b2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-246.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-246.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-247.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-247.xht.ini
index c66e76456e34..9f09f38f422d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-247.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-247.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-248.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-248.xht.ini
index 919001021ee0..ad4cdc667f80 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-248.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-248.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-249.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-249.xht.ini
index abe2437de924..da1e95825940 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-249.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-249.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-250.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-250.xht.ini
index 05325a2cef79..802ced88159a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-250.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-250.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-251.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-251.xht.ini
index 8cd4a21af314..9036c47e01b9 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-251.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-251.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-252.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-252.xht.ini
index 50f1505dfa9b..2a8ddeec8a71 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-252.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-252.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-253.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-253.xht.ini
index 1284839bf420..1c744d6f1ae0 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-253.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-253.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-254.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-254.xht.ini
index fa1a0601a22b..1c3f03e756af 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-254.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-254.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-255.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-255.xht.ini
index 71c78dc14032..156ebb51cc66 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-255.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-255.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-256.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-256.xht.ini
index d4615348a234..0fbda6f6e5ad 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-256.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-256.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-257.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-257.xht.ini
index 24c2c0693661..f5abe67bb634 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-257.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-257.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-258.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-258.xht.ini
index b90bfa4b515f..1bef2a6350aa 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-258.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-258.xht.ini
@@ -2,4 +2,3 @@
expected:
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-259.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-259.xht.ini
index 3d23cc9f584d..6f119370c064 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-259.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-259.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-260.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-260.xht.ini
index 591b06bd882a..f1820ff08f8c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-260.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-260.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-262.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-262.xht.ini
index ef4a42abac0f..ff9a7892c1b6 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-262.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-262.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-263.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-263.xht.ini
index cb07470c152e..058997c6a5d8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-263.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-263.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-264.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-264.xht.ini
index 743314d5a7ef..ebef0390bcb7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-264.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-264.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-265.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-265.xht.ini
index 87eb76a01312..8a4932b088c3 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-265.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-265.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-266.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-266.xht.ini
index 3e897bce92b2..f0c41815054b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-266.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-266.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-267.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-267.xht.ini
index 4d6958c503d6..311801ce2888 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-267.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-267.xht.ini
@@ -3,4 +3,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-268.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-268.xht.ini
deleted file mode 100644
index b98b0be46dd1..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-268.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-268.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-269.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-269.xht.ini
deleted file mode 100644
index 3bcf971e56ae..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-269.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-269.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-270.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-270.xht.ini
deleted file mode 100644
index 8c915759d0d0..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-270.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-270.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-271.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-271.xht.ini
deleted file mode 100644
index 4e2068af9627..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-271.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-271.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-272.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-272.xht.ini
deleted file mode 100644
index 38f92a8359ab..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-272.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-272.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-273.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-273.xht.ini
deleted file mode 100644
index 74f449529f96..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-273.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-273.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-274.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-274.xht.ini
deleted file mode 100644
index b32b3dbd6641..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-274.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-274.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-275.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-275.xht.ini
deleted file mode 100644
index ac60c4032d53..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-275.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-275.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-276.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-276.xht.ini
deleted file mode 100644
index b618c64c913b..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-276.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-276.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-277.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-277.xht.ini
deleted file mode 100644
index 7fbb34a5ed69..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-277.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-277.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-278.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-278.xht.ini
deleted file mode 100644
index 9522bd5c3f3d..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-278.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-278.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-279.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-279.xht.ini
deleted file mode 100644
index f6b06dfb56d8..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-279.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-279.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-280.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-280.xht.ini
deleted file mode 100644
index 4f5b40f6bc35..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-280.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-280.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-281.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-281.xht.ini
deleted file mode 100644
index b66a9ebc3c27..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-281.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-281.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-282.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-282.xht.ini
deleted file mode 100644
index 1c197418c86b..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-282.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-282.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-283.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-283.xht.ini
index ef11fc3601a9..81369dcc4ff8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-283.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-283.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-284.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-284.xht.ini
index ffdfb2f84b11..3ca7bb680b37 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-284.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-284.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-285.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-285.xht.ini
index 05a9a9e1f8e0..5ea5b7aa41a8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-285.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-285.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-286.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-286.xht.ini
index 966ca07afca2..ddf88c7d9273 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-286.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-286.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-287.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-287.xht.ini
index 4c5ebb7a2128..f1f7a9af30e4 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-287.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-287.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-293.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-293.xht.ini
deleted file mode 100644
index f2ec4cd5988b..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-293.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-293.xht]
- expected:
- if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-294.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-294.xht.ini
deleted file mode 100644
index 90dd939c8861..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-294.xht.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[first-letter-punctuation-294.xht]
- expected:
- if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-297.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-297.xht.ini
index bd8f48b00374..f14cc991202b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-297.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-297.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-298.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-298.xht.ini
index a1a0f951a12e..6c8ff06c762a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-298.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-298.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-316.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-316.xht.ini
index 8f00d9074110..3cdff24f12b3 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-316.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-316.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-317.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-317.xht.ini
index 60e930827ba7..3c06f5e4a8ea 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-317.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-317.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-318.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-318.xht.ini
index 4487cb17f700..223b210c2525 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-318.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-318.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-319.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-319.xht.ini
index 4f46a864293d..b93c3a6561ea 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-319.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-319.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-320.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-320.xht.ini
index b63edd587707..49ffce528e99 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-320.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-320.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-321.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-321.xht.ini
index 00d8ca60af37..2482c317e6c5 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-321.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-321.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-322.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-322.xht.ini
index 74487bb91725..e5f6319d740c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-322.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-322.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-323.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-323.xht.ini
index 23e08e6f5028..f754f4fb6960 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-323.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-323.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-324.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-324.xht.ini
index 1eccccfdeebc..013fc2d10990 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-324.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-324.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-325.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-325.xht.ini
index b1c60f7b2985..9c4d302b25d8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-325.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-325.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-326.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-326.xht.ini
index 291bbaf8b806..0703e2285516 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-326.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-326.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-327.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-327.xht.ini
index ebcebad48ef5..b7fe609c9a70 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-327.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-327.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-328.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-328.xht.ini
index 66d9511eb388..9eff2e2f0a70 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-328.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-328.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-329.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-329.xht.ini
index c29fac9e3f6b..ebfa24047961 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-329.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-329.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-330.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-330.xht.ini
index 9671c62e0391..5f19ad024bd1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-330.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-330.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-331.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-331.xht.ini
index f982ac15f82f..4b7708341f98 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-331.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-331.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-332.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-332.xht.ini
index d8bf433bf3c2..d1079407af3a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-332.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-332.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-333.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-333.xht.ini
index 9a65617d14e0..ff9efd11604c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-333.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-333.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-334.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-334.xht.ini
deleted file mode 100644
index 7622a416b0f1..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-334.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-334.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-335.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-335.xht.ini
deleted file mode 100644
index 8abcd07f2e19..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-335.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-335.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-336.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-336.xht.ini
index aa51a0ce3e75..3ffdb004970f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-336.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-336.xht.ini
@@ -2,4 +2,3 @@
expected:
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-346.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-346.xht.ini
deleted file mode 100644
index 54432fc620e4..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-346.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-346.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-347.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-347.xht.ini
deleted file mode 100644
index 22fe051ddae8..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-347.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-347.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-348.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-348.xht.ini
deleted file mode 100644
index 56411921667e..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-348.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-348.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-349.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-349.xht.ini
deleted file mode 100644
index 7fac43d63320..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-349.xht.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[first-letter-punctuation-349.xht]
- expected:
- if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
- if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
- if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-350.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-350.xht.ini
index 276d4cf602ca..f9100240f5f8 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-350.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-350.xht.ini
@@ -1,4 +1,3 @@
[first-letter-punctuation-350.xht]
expected:
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-351.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-351.xht.ini
index b9887b78329d..507fe872c69f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-351.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-351.xht.ini
@@ -6,4 +6,3 @@
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-352.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-352.xht.ini
deleted file mode 100644
index a555e11f31c6..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-352.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-352.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-353.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-353.xht.ini
deleted file mode 100644
index 8cca77255263..000000000000
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-353.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[first-letter-punctuation-353.xht]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-354.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-354.xht.ini
index 11c087ba2fe9..97a9dc85af72 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-354.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-354.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-355.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-355.xht.ini
index b04be281fae2..779058696cf1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-355.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-355.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-356.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-356.xht.ini
index 215aff8d3190..ce9844024c97 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-356.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-356.xht.ini
@@ -4,4 +4,3 @@
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-357.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-357.xht.ini
index 5d4cab9462d9..e56ca034f682 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-357.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-357.xht.ini
@@ -5,4 +5,3 @@
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-359.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-359.xht.ini
index 8e82376ec6fc..f9b73dcd2276 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-359.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-359.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-360.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-360.xht.ini
index d8da37b84658..eccaaf71bc3b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-360.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-360.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-361.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-361.xht.ini
index f5371f8b563c..337c1536bd0d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-361.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-361.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-362.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-362.xht.ini
index 849d1c669102..d79275411af7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-362.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-362.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-363.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-363.xht.ini
index f5bfb87cc904..9fb676d8709d 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-363.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-363.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-364.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-364.xht.ini
index 6515e660a633..fd8a1323ce90 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-364.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-364.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-365.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-365.xht.ini
index 1d23e05ff455..f467d91ec212 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-365.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-365.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-366.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-366.xht.ini
index 52d1e8cf35cb..597ab9768a6e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-366.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-366.xht.ini
@@ -5,4 +5,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-367.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-367.xht.ini
index eb5f6333cf9d..cbfbde7746fc 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-367.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-367.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-368.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-368.xht.ini
index 26bb73d7c880..f94f75f1d8bc 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-368.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-368.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-369.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-369.xht.ini
index b8d030ce36d7..c81af494dba2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-369.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-369.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-370.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-370.xht.ini
index e290198f92ce..7010d6671669 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-370.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-370.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-371.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-371.xht.ini
index c9fc6419b1d5..b86f33723c6a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-371.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-371.xht.ini
@@ -5,4 +5,3 @@
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-372.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-372.xht.ini
index c03974e5d089..50905c0fc47f 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-372.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-372.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-373.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-373.xht.ini
index 6057f147cf55..fb19c9317cd0 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-373.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-373.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-374.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-374.xht.ini
index 316a443966ba..d91a84872f61 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-374.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-374.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-375.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-375.xht.ini
index db00cd82428f..42bed241bf3e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-375.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-375.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-376.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-376.xht.ini
index de25d06ef0b5..02368ffaef70 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-376.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-376.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-377.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-377.xht.ini
index df6199a549f0..623f1f263afb 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-377.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-377.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-378.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-378.xht.ini
index fc0e0a32fca4..4b3ca66f547c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-378.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-378.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-379.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-379.xht.ini
index 7fa830f42239..3333150f6982 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-379.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-379.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-380.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-380.xht.ini
index 6c3131a09f72..59b19baa82b1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-380.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-380.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-381.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-381.xht.ini
index c7d1c7ab0539..fe84da562685 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-381.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-381.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-382.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-382.xht.ini
index 03b5375c901e..96403442f4d2 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-382.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-382.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-383.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-383.xht.ini
index 65311bcb9f2f..278449a0378e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-383.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-383.xht.ini
@@ -4,4 +4,3 @@
if debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-384.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-384.xht.ini
index 4cd70d7f8406..63ea77fcecb7 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-384.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-384.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-385.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-385.xht.ini
index 5715b9a99319..666563c07691 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-385.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-385.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-386.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-386.xht.ini
index fe5dbc883c96..7fcc775d33b1 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-386.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-386.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-387.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-387.xht.ini
index 8ba12639811b..ae20e831472e 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-387.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-387.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-388.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-388.xht.ini
index eda460c8c140..1f24e85eff7c 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-388.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-388.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-389.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-389.xht.ini
index 553d4ac74169..52f194ac0789 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-389.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-389.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-390.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-390.xht.ini
index 6c3aca8e7c79..9f052de120ea 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-390.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-390.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-391.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-391.xht.ini
index aafe7cc8ed14..f1cb1c429ddd 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-391.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-391.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-393.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-393.xht.ini
index a35e7df2dca0..6583fde63ca3 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-393.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-393.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-394.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-394.xht.ini
index 6284219217f3..e24ea59fbbfb 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-394.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-394.xht.ini
@@ -3,4 +3,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-408.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-408.xht.ini
index ae207a01fd00..ecc3efd54c1b 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-408.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-408.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-409.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-409.xht.ini
index 564a3d57ca9d..660025a71ac6 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-409.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-409.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-410.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-410.xht.ini
index 4d80ab9f446c..b5ef74c2a594 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-410.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-410.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-411.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-411.xht.ini
index 535b476f2c0b..c816b52ad4ab 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-411.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-411.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-412.xht.ini b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-412.xht.ini
index 0384cd964bb3..c734d2353e41 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-412.xht.ini
+++ b/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-412.xht.ini
@@ -7,4 +7,3 @@
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
if os == "android": PASS
- FAIL
diff --git a/testing/web-platform/meta/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini b/testing/web-platform/meta/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini
new file mode 100644
index 000000000000..ccd71f91cefe
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini
@@ -0,0 +1,7 @@
+[opacity-change-twice-stacking-context.html]
+ expected:
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-001.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-001.xht.ini
new file mode 100644
index 000000000000..71bc6517475a
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-001.xht.ini
@@ -0,0 +1,3 @@
+[white-space-001.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-002.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-002.xht.ini
new file mode 100644
index 000000000000..91fd38ace0c1
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-002.xht.ini
@@ -0,0 +1,3 @@
+[white-space-002.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-003.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-003.xht.ini
new file mode 100644
index 000000000000..182a9fc2d1e7
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-003.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-005.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-005.xht.ini
new file mode 100644
index 000000000000..53b794745628
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-005.xht.ini
@@ -0,0 +1,3 @@
+[white-space-005.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-006.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-006.xht.ini
new file mode 100644
index 000000000000..7d4cd56acffc
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-006.xht.ini
@@ -0,0 +1,3 @@
+[white-space-006.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-008.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-008.xht.ini
new file mode 100644
index 000000000000..8830bca84172
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-008.xht.ini
@@ -0,0 +1,10 @@
+[white-space-008.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-001.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-001.xht.ini
new file mode 100644
index 000000000000..9a86f6c492e3
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-001.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-001.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-002.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-002.xht.ini
new file mode 100644
index 000000000000..eac834bd9e60
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-002.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-002.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-005.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-005.xht.ini
new file mode 100644
index 000000000000..10c2559d69db
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-005.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-005.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-006.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-006.xht.ini
new file mode 100644
index 000000000000..74b3275ab99f
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-006.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-006.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-007.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-007.xht.ini
new file mode 100644
index 000000000000..535e261dfae5
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-007.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-007.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-008.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-008.xht.ini
new file mode 100644
index 000000000000..6fe6b3496de7
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-008.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-008.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-009.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-009.xht.ini
new file mode 100644
index 000000000000..55d235b3a7d8
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-009.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-009.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-010.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-010.xht.ini
new file mode 100644
index 000000000000..59a18d005762
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-010.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-010.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-011.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-011.xht.ini
new file mode 100644
index 000000000000..1709881cd8e5
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-011.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-011.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-012.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-012.xht.ini
new file mode 100644
index 000000000000..40999df5983c
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-012.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-012.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-013.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-013.xht.ini
new file mode 100644
index 000000000000..07596682086a
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-013.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-013.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-014.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-014.xht.ini
new file mode 100644
index 000000000000..50de8e4277a7
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-014.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-014.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-015.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-015.xht.ini
new file mode 100644
index 000000000000..29fa8c4eb40c
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-applies-to-015.xht.ini
@@ -0,0 +1,3 @@
+[white-space-applies-to-015.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini
new file mode 100644
index 000000000000..254a97604f09
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini
@@ -0,0 +1,8 @@
+[white-space-collapsing-breaks-001.xht]
+ expected:
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-pre-element-001.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-pre-element-001.xht.ini
new file mode 100644
index 000000000000..a93a162650e3
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-pre-element-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-pre-element-001.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-001.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-001.xht.ini
new file mode 100644
index 000000000000..d5f20aa91f55
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-001.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-001.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-002.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-002.xht.ini
new file mode 100644
index 000000000000..afeca194b374
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-002.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-002.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-003.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-003.xht.ini
new file mode 100644
index 000000000000..a9d1b50557f3
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-003.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-003.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-004.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-004.xht.ini
new file mode 100644
index 000000000000..0ae55ec31f69
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-004.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-004.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-008.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-008.xht.ini
new file mode 100644
index 000000000000..4cb34788db72
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-008.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-008.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-009.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-009.xht.ini
new file mode 100644
index 000000000000..e6e61574727d
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-009.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-009.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-010.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-010.xht.ini
new file mode 100644
index 000000000000..817418412243
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-010.xht.ini
@@ -0,0 +1,16 @@
+[white-space-processing-010.xht]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-011.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-011.xht.ini
new file mode 100644
index 000000000000..1ce495c703be
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-011.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-011.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-012.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-012.xht.ini
new file mode 100644
index 000000000000..542dae332d19
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-012.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-012.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-019.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-019.xht.ini
new file mode 100644
index 000000000000..5d519b2057d5
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-019.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-019.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-020.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-020.xht.ini
new file mode 100644
index 000000000000..06b3ea2bfca9
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-020.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-020.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-021.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-021.xht.ini
new file mode 100644
index 000000000000..1b8630fecd22
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-021.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-021.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-022.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-022.xht.ini
new file mode 100644
index 000000000000..e8bccb29020f
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-022.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-022.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-023.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-023.xht.ini
new file mode 100644
index 000000000000..ce639823904c
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-023.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-023.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-024.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-024.xht.ini
new file mode 100644
index 000000000000..d55e0e52c7db
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-024.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-024.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-025.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-025.xht.ini
new file mode 100644
index 000000000000..392ebeca3030
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-025.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-025.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-026.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-026.xht.ini
new file mode 100644
index 000000000000..bab33a509c51
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-026.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-026.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-027.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-027.xht.ini
new file mode 100644
index 000000000000..1c129dfbc15a
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-027.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-027.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-028.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-028.xht.ini
new file mode 100644
index 000000000000..ffdaed88e442
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-028.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-028.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-029.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-029.xht.ini
new file mode 100644
index 000000000000..63d2703877d2
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-029.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-029.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-030.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-030.xht.ini
new file mode 100644
index 000000000000..431768d30887
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-030.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-030.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-031.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-031.xht.ini
new file mode 100644
index 000000000000..789c3eaf6adc
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-031.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-031.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-032.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-032.xht.ini
new file mode 100644
index 000000000000..b9ab28a1f9d9
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-032.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-032.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-033.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-033.xht.ini
new file mode 100644
index 000000000000..b366ca0de19e
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-033.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-033.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-034.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-034.xht.ini
new file mode 100644
index 000000000000..e9a2de8ea197
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-034.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-034.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-035.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-035.xht.ini
new file mode 100644
index 000000000000..29b946d65059
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-035.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-035.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-036.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-036.xht.ini
new file mode 100644
index 000000000000..f3821b270cd0
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-036.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-036.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-037.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-037.xht.ini
new file mode 100644
index 000000000000..6973478ad7d9
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-037.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-037.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-038.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-038.xht.ini
new file mode 100644
index 000000000000..e8f5fae1cba4
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-038.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-038.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-039.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-039.xht.ini
new file mode 100644
index 000000000000..23a5b4db1be8
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-039.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-039.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-040.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-040.xht.ini
new file mode 100644
index 000000000000..73d73909c54b
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-040.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-040.xht]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-041.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-041.xht.ini
new file mode 100644
index 000000000000..482025064f31
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-041.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-041.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-042.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-042.xht.ini
new file mode 100644
index 000000000000..e8efe2102493
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-042.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-042.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-050.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-050.xht.ini
new file mode 100644
index 000000000000..db1ea52934c5
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-050.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-050.xht]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-051.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-051.xht.ini
new file mode 100644
index 000000000000..4fd7b871a433
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-051.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-051.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-054.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-054.xht.ini
new file mode 100644
index 000000000000..58430d522f5b
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-054.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-054.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/CSS2/text/white-space-processing-055.xht.ini b/testing/web-platform/meta/css/CSS2/text/white-space-processing-055.xht.ini
new file mode 100644
index 000000000000..65ca798fd072
--- /dev/null
+++ b/testing/web-platform/meta/css/CSS2/text/white-space-processing-055.xht.ini
@@ -0,0 +1,3 @@
+[white-space-processing-055.xht]
+ expected:
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/css-backgrounds/background-image-first-line.html.ini b/testing/web-platform/meta/css/css-backgrounds/background-image-first-line.html.ini
new file mode 100644
index 000000000000..98e9448ed302
--- /dev/null
+++ b/testing/web-platform/meta/css/css-backgrounds/background-image-first-line.html.ini
@@ -0,0 +1,2 @@
+[background-image-first-line.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-backgrounds/table-cell-background-local.html.ini b/testing/web-platform/meta/css/css-backgrounds/table-cell-background-local.html.ini
new file mode 100644
index 000000000000..61e4f26cb33f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-backgrounds/table-cell-background-local.html.ini
@@ -0,0 +1,2 @@
+[table-cell-background-local.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-conditional/idlharness.html.ini b/testing/web-platform/meta/css/css-conditional/idlharness.html.ini
index 79d18d7b0e86..1e8365c0517c 100644
--- a/testing/web-platform/meta/css/css-conditional/idlharness.html.ini
+++ b/testing/web-platform/meta/css/css-conditional/idlharness.html.ini
@@ -11,3 +11,9 @@
[Partial interface CSS: original interface defined]
expected: FAIL
+ [CSSGroupingRule interface: calling insertRule(CSSOMString, unsigned long) on cssMediaRule with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [CSSGroupingRule interface: calling insertRule(CSSOMString, unsigned long) on cssSupportsRule with too few arguments must throw TypeError]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-contain/contain-size-replaced-001.html.ini b/testing/web-platform/meta/css/css-contain/contain-size-replaced-001.html.ini
new file mode 100644
index 000000000000..84b1cc55acc0
--- /dev/null
+++ b/testing/web-platform/meta/css/css-contain/contain-size-replaced-001.html.ini
@@ -0,0 +1,2 @@
+[contain-size-replaced-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-contain/contain-size-replaced-002.html.ini b/testing/web-platform/meta/css/css-contain/contain-size-replaced-002.html.ini
new file mode 100644
index 000000000000..bc7645eae0c3
--- /dev/null
+++ b/testing/web-platform/meta/css/css-contain/contain-size-replaced-002.html.ini
@@ -0,0 +1,2 @@
+[contain-size-replaced-002.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-fonts/font-display/font-display-feature-policy.tentative.html.ini b/testing/web-platform/meta/css/css-fonts/font-display/font-display-feature-policy.tentative.html.ini
new file mode 100644
index 000000000000..5345ae812b9a
--- /dev/null
+++ b/testing/web-platform/meta/css/css-fonts/font-display/font-display-feature-policy.tentative.html.ini
@@ -0,0 +1,2 @@
+[font-display-feature-policy.tentative.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-fonts/idlharness.html.ini b/testing/web-platform/meta/css/css-fonts/idlharness.html.ini
index 9bec24d78eef..87eaeb7833c7 100644
--- a/testing/web-platform/meta/css/css-fonts/idlharness.html.ini
+++ b/testing/web-platform/meta/css/css-fonts/idlharness.html.ini
@@ -68,3 +68,9 @@
[CSSRule interface: constant FONT_PALETTE_VALUES_RULE on interface prototype object]
expected: FAIL
+ [CSSRule interface: cssRule must inherit property "FONT_PALETTE_VALUES_RULE" with the proper type]
+ expected: FAIL
+
+ [CSSRule interface: cssFontFaceRule must inherit property "FONT_PALETTE_VALUES_RULE" with the proper type]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-fonts/variations/at-font-face-descriptors.html.ini b/testing/web-platform/meta/css/css-fonts/variations/at-font-face-descriptors.html.ini
index a30ffe9fbc0b..c26560ae7524 100644
--- a/testing/web-platform/meta/css/css-fonts/variations/at-font-face-descriptors.html.ini
+++ b/testing/web-platform/meta/css/css-fonts/variations/at-font-face-descriptors.html.ini
@@ -155,3 +155,9 @@
[font-weight(valid): Out-of-range simple calc value (should be clamped): calc(1001)]
expected: FAIL
+ [font-style(valid): 'oblique' followed by calc with out of range value (should be clamped): oblique calc(-91deg)]
+ expected: FAIL
+
+ [font-style(valid): 'oblique' followed by calc with out of range value (should be clamped): oblique calc(91deg)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-fonts/variations/font-style-parsing.html.ini b/testing/web-platform/meta/css/css-fonts/variations/font-style-parsing.html.ini
new file mode 100644
index 000000000000..8ccf1e00a10c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-fonts/variations/font-style-parsing.html.ini
@@ -0,0 +1,7 @@
+[font-style-parsing.html]
+ [Font-style (computed): 'oblique' followed by positive angle in radians is valid]
+ expected: FAIL
+
+ [Font-style (computed): 'oblique' followed by calc is valid even if it mixes units (with computation)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-padding-001.html.ini b/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-padding-001.html.ini
deleted file mode 100644
index 585d4beb8a2d..000000000000
--- a/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-padding-001.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[grid-positioned-items-padding-001.html]
- [.grid 4]
- expected: FAIL
-
- [.grid 8]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html.ini b/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html.ini
deleted file mode 100644
index c2530ea78baf..000000000000
--- a/testing/web-platform/meta/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[grid-positioned-items-unknown-named-grid-line-001.html]
- [.grid 1]
- expected: FAIL
-
- [.grid 2]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/css/css-grid/alignment/__dir__.ini b/testing/web-platform/meta/css/css-grid/alignment/__dir__.ini
index e69de29bb2d1..dd7cf64fc5db 100644
--- a/testing/web-platform/meta/css/css-grid/alignment/__dir__.ini
+++ b/testing/web-platform/meta/css/css-grid/alignment/__dir__.ini
@@ -0,0 +1,2 @@
+leak-threshold:
+ [default:51200]
diff --git a/testing/web-platform/meta/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html.ini b/testing/web-platform/meta/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html.ini
new file mode 100644
index 000000000000..07fdcfd2d89a
--- /dev/null
+++ b/testing/web-platform/meta/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html.ini
@@ -0,0 +1,2 @@
+[grid-auto-repeat-multiple-values-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-auto-columns-computed.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-auto-columns-computed.html.ini
new file mode 100644
index 000000000000..05bfaa880951
--- /dev/null
+++ b/testing/web-platform/meta/css/css-grid/parsing/grid-auto-columns-computed.html.ini
@@ -0,0 +1,7 @@
+[grid-auto-columns-computed.html]
+ [Property grid-auto-columns value '1px 2px 3px 0px' computes to '1px 2px 3px 0px']
+ expected: FAIL
+
+ [Property grid-auto-columns value 'fit-content(1px) minmax(2px, 3px) 4px' computes to 'fit-content(1px) minmax(2px, 3px) 4px']
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-auto-rows-computed.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-auto-rows-computed.html.ini
new file mode 100644
index 000000000000..b66262a1f823
--- /dev/null
+++ b/testing/web-platform/meta/css/css-grid/parsing/grid-auto-rows-computed.html.ini
@@ -0,0 +1,7 @@
+[grid-auto-rows-computed.html]
+ [Property grid-auto-rows value '1px 2px 3px 0px' computes to '1px 2px 3px 0px']
+ expected: FAIL
+
+ [Property grid-auto-rows value 'fit-content(1px) minmax(2px, 3px) 4px' computes to 'fit-content(1px) minmax(2px, 3px) 4px']
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-template-areas-computed.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-template-areas-computed.html.ini
new file mode 100644
index 000000000000..383bf3915d99
--- /dev/null
+++ b/testing/web-platform/meta/css/css-grid/parsing/grid-template-areas-computed.html.ini
@@ -0,0 +1,10 @@
+[grid-template-areas-computed.html]
+ [Property grid-template-areas value '"first ..."' computes to '"first ."']
+ expected: FAIL
+
+ [Property grid-template-areas value '"c\td"' computes to '"c d"']
+ expected: FAIL
+
+ [Property grid-template-areas value '" a \t b "' computes to '"a b"']
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-layout-api/__dir__.ini b/testing/web-platform/meta/css/css-layout-api/__dir__.ini
new file mode 100644
index 000000000000..2e2a85383b01
--- /dev/null
+++ b/testing/web-platform/meta/css/css-layout-api/__dir__.ini
@@ -0,0 +1 @@
+leak-threshold: [gpu:51200]
diff --git a/testing/web-platform/meta/css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html.ini b/testing/web-platform/meta/css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html.ini
new file mode 100644
index 000000000000..55072c46d3bd
--- /dev/null
+++ b/testing/web-platform/meta/css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html.ini
@@ -0,0 +1,8 @@
+[list-marker-with-lineheight-and-overflow-hidden-001.html]
+ expected:
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/block-ellipsis-valid.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/block-ellipsis-valid.html.ini
new file mode 100644
index 000000000000..3df969da93aa
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/block-ellipsis-valid.html.ini
@@ -0,0 +1,10 @@
+[block-ellipsis-valid.html]
+ [e.style['block-ellipsis'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['block-ellipsis'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['block-ellipsis'\] = "\\" etc., etc. \\"" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/continue-valid.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/continue-valid.html.ini
new file mode 100644
index 000000000000..c61519615c90
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/continue-valid.html.ini
@@ -0,0 +1,7 @@
+[continue-valid.html]
+ [e.style['continue'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['continue'\] = "discard" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/line-clamp-valid.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/line-clamp-valid.html.ini
new file mode 100644
index 000000000000..45a042147d0c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/line-clamp-valid.html.ini
@@ -0,0 +1,19 @@
+[line-clamp-valid.html]
+ [e.style['line-clamp'\] = "9 \\" etc., etc. \\"" should set the property value]
+ expected: FAIL
+
+ [e.style['line-clamp'\] = "8 auto" should set the property value]
+ expected: FAIL
+
+ [e.style['line-clamp'\] = "7 none" should set the property value]
+ expected: FAIL
+
+ [e.style['line-clamp'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['line-clamp'\] = "1" should set the property value]
+ expected: FAIL
+
+ [e.style['line-clamp'\] = "6" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/max-lines-valid.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/max-lines-valid.html.ini
new file mode 100644
index 000000000000..e33df223ae4e
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/max-lines-valid.html.ini
@@ -0,0 +1,10 @@
+[max-lines-valid.html]
+ [e.style['max-lines'\] = "1" should set the property value]
+ expected: FAIL
+
+ [e.style['max-lines'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['max-lines'\] = "6" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/overflow-computed.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/overflow-computed.html.ini
new file mode 100644
index 000000000000..4265475754df
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/overflow-computed.html.ini
@@ -0,0 +1,28 @@
+[overflow-computed.html]
+ [Property overflow value 'clip' computes to 'clip']
+ expected: FAIL
+
+ [Property overflow value 'clip auto' computes to 'hidden auto']
+ expected: FAIL
+
+ [Property overflow value 'auto clip' computes to 'auto hidden']
+ expected: FAIL
+
+ [Property overflow value 'clip clip' computes to 'clip']
+ expected: FAIL
+
+ [Property overflow value 'clip hidden' computes to 'hidden']
+ expected: FAIL
+
+ [Property overflow value 'clip scroll' computes to 'hidden scroll']
+ expected: FAIL
+
+ [Property overflow value 'hidden clip' computes to 'hidden']
+ expected: FAIL
+
+ [Property overflow value 'scroll clip' computes to 'scroll hidden']
+ expected: FAIL
+
+ [Property overflow-y value 'clip' computes to 'clip']
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-overflow/parsing/overflow-valid.html.ini b/testing/web-platform/meta/css/css-overflow/parsing/overflow-valid.html.ini
new file mode 100644
index 000000000000..4467fb7d6fe9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-overflow/parsing/overflow-valid.html.ini
@@ -0,0 +1,22 @@
+[overflow-valid.html]
+ [e.style['overflow-inline'\] = "scroll" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow-block'\] = "hidden" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow-inline'\] = "visible" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow'\] = "clip" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow-y'\] = "clip" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow'\] = "clip clip" should set the property value]
+ expected: FAIL
+
+ [e.style['overflow-block'\] = "clip" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-pseudo/idlharness.html.ini b/testing/web-platform/meta/css/css-pseudo/idlharness.html.ini
index f34d22de93c8..b531461f97c0 100644
--- a/testing/web-platform/meta/css/css-pseudo/idlharness.html.ini
+++ b/testing/web-platform/meta/css/css-pseudo/idlharness.html.ini
@@ -1,5 +1,4 @@
prefs: [dom.animations-api.getAnimations.enabled:true]
-
[idlharness.html]
[CSSPseudoElementList interface: existence and properties of interface object]
expected: FAIL
@@ -76,3 +75,9 @@ prefs: [dom.animations-api.getAnimations.enabled:true]
[CSSPseudoElementList interface: calling item(unsigned long) on beforeElements with too few arguments must throw TypeError]
expected: FAIL
+ [CSSPseudoElement interface: attribute element]
+ expected: FAIL
+
+ [CSSPseudoElement interface: beforeElements.item(0) must inherit property "element" with the proper type]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/ancestor-change-heuristic.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/ancestor-change-heuristic.html.ini
new file mode 100644
index 000000000000..7d82ea7f9ea3
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/ancestor-change-heuristic.html.ini
@@ -0,0 +1,6 @@
+[ancestor-change-heuristic.html]
+ [Ancestor changes in document scroller.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
+ FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/anchoring-with-bounds-clamping.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/anchoring-with-bounds-clamping.html.ini
new file mode 100644
index 000000000000..bb9826f7f974
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/anchoring-with-bounds-clamping.html.ini
@@ -0,0 +1,4 @@
+[anchoring-with-bounds-clamping.html]
+ [Anchoring combined with scroll bounds clamping in the document.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/basic.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/basic.html.ini
new file mode 100644
index 000000000000..3bddafec54cf
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/basic.html.ini
@@ -0,0 +1,7 @@
+[basic.html]
+ [Minimal scroll anchoring example.]
+ expected:
+ if os == "win": "FAIL"
+ if os == "mac": "FAIL"
+ if os == "linux": "FAIL"
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-float.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-float.html.ini
new file mode 100644
index 000000000000..2146d798eddb
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-float.html.ini
@@ -0,0 +1,6 @@
+[descend-into-container-with-float.html]
+ [Zero-height container with float.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
+ FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-overflow.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-overflow.html.ini
new file mode 100644
index 000000000000..c1feae84e7e9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/descend-into-container-with-overflow.html.ini
@@ -0,0 +1,6 @@
+[descend-into-container-with-overflow.html]
+ [Zero-height container with visible overflow.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
+ FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/exclude-fixed-position.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/exclude-fixed-position.html.ini
new file mode 100644
index 000000000000..b1885c1940e8
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/exclude-fixed-position.html.ini
@@ -0,0 +1,6 @@
+[exclude-fixed-position.html]
+ [Fixed-position header.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
+ FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/inline-block.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/inline-block.html.ini
new file mode 100644
index 000000000000..586ca2ba3735
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/inline-block.html.ini
@@ -0,0 +1,7 @@
+[inline-block.html]
+ [Anchor selection descent into inline blocks.]
+ expected:
+ if os == "linux": "FAIL"
+ if os == "mac": "FAIL"
+ if os == "win": "FAIL"
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/position-change-heuristic.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/position-change-heuristic.html.ini
new file mode 100644
index 000000000000..1ef4c4c38a86
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/position-change-heuristic.html.ini
@@ -0,0 +1,6 @@
+[position-change-heuristic.html]
+ [Position changes in document scroller.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
+ FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/start-edge-in-block-layout-direction.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/start-edge-in-block-layout-direction.html.ini
new file mode 100644
index 000000000000..679fec45ad8c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/start-edge-in-block-layout-direction.html.ini
@@ -0,0 +1,19 @@
+[start-edge-in-block-layout-direction.html]
+ [Vertical-RL LTR.]
+ expected: FAIL
+
+ [Horizontal RTL.]
+ expected: FAIL
+
+ [Vertical-LR LTR.]
+ expected: FAIL
+
+ [Horizontal LTR.]
+ expected: FAIL
+
+ [Vertical-RL RTL.]
+ expected: FAIL
+
+ [Vertical-LR RTL.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/subtree-exclusion.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/subtree-exclusion.html.ini
new file mode 100644
index 000000000000..5c23c1d4f65c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/subtree-exclusion.html.ini
@@ -0,0 +1,7 @@
+[subtree-exclusion.html]
+ [Subtree exclusion with overflow-anchor.]
+ expected:
+ if os == "win": "FAIL"
+ if os == "mac": "FAIL"
+ if os == "linux": "FAIL"
+
diff --git a/testing/web-platform/meta/css/css-scroll-anchoring/wrapped-text.html.ini b/testing/web-platform/meta/css/css-scroll-anchoring/wrapped-text.html.ini
new file mode 100644
index 000000000000..b2af9315a287
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-anchoring/wrapped-text.html.ini
@@ -0,0 +1,7 @@
+[wrapped-text.html]
+ [Anchoring with text wrapping changes.]
+ expected:
+ if os == "win": "FAIL"
+ if os == "mac": "FAIL"
+ if os == "linux": "FAIL"
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-block-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-block-valid.html.ini
new file mode 100644
index 000000000000..e6862aad65ba
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-block-valid.html.ini
@@ -0,0 +1,22 @@
+[scroll-margin-block-valid.html]
+ [e.style['scroll-margin-block-start'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block-end'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block-start'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block-end'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-block'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-inline-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-inline-valid.html.ini
new file mode 100644
index 000000000000..26e1c2ce8385
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-inline-valid.html.ini
@@ -0,0 +1,22 @@
+[scroll-margin-inline-valid.html]
+ [e.style['scroll-margin-inline'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline-end'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline-start'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline-start'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-inline-end'\] = "-10px" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-valid.html.ini
new file mode 100644
index 000000000000..0503f8d83f33
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-margin-valid.html.ini
@@ -0,0 +1,40 @@
+[scroll-margin-valid.html]
+ [e.style['scroll-margin-right'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-top'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin'\] = "1px 2px 3px 4px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-left'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-right'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin'\] = "1px 2px 3px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-bottom'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-bottom'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-left'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin-top'\] = "-10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-margin'\] = "-10px" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-block-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-block-valid.html.ini
new file mode 100644
index 000000000000..68ed4a690326
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-block-valid.html.ini
@@ -0,0 +1,55 @@
+[scroll-padding-block-valid.html]
+ [e.style['scroll-padding-block'\] = "auto auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-end'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-start'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-end'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-start'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-start'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-start'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "1px auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-end'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-end'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-start'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block-end'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-block'\] = "auto" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-inline-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-inline-valid.html.ini
new file mode 100644
index 000000000000..eddb4026d0b9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-inline-valid.html.ini
@@ -0,0 +1,55 @@
+[scroll-padding-inline-valid.html]
+ [e.style['scroll-padding-inline-start'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-end'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-end'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-start'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "1px auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-start'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "auto auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-start'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-end'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-end'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-end'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-inline-start'\] = "10px" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-valid.html.ini
new file mode 100644
index 000000000000..373d704d429b
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-padding-valid.html.ini
@@ -0,0 +1,88 @@
+[scroll-padding-valid.html]
+ [e.style['scroll-padding-bottom'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-top'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-right'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-left'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "1px 2px 3% 4px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "1px auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-bottom'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-left'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-right'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-right'\] = "calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-top'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-right'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-bottom'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "1px 2px 3%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-left'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-bottom'\] = "20%" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-bottom'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-left'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-right'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-left'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-top'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "1px 2px" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-top'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding-top'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-padding'\] = "auto auto auto auto" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-align-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-align-valid.html.ini
new file mode 100644
index 000000000000..7c0160ba5039
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-align-valid.html.ini
@@ -0,0 +1,19 @@
+[scroll-snap-align-valid.html]
+ [e.style['scroll-snap-align'\] = "end" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-align'\] = "start none" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-align'\] = "center end" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-align'\] = "center" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-align'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-align'\] = "start" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html.ini
new file mode 100644
index 000000000000..6a9a17ee6583
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html.ini
@@ -0,0 +1,7 @@
+[scroll-snap-stop-valid.html]
+ [e.style['scroll-snap-stop'\] = "normal" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-stop'\] = "always" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html.ini
new file mode 100644
index 000000000000..1816e37a4244
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html.ini
@@ -0,0 +1,7 @@
+[scroll-snap-type-invalid.html]
+ [e.style['scroll-snap-type'\] = "mandatory" should not set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "proximity" should not set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-valid.html.ini b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-valid.html.ini
new file mode 100644
index 000000000000..0a0dc4f9c777
--- /dev/null
+++ b/testing/web-platform/meta/css/css-scroll-snap/parsing/scroll-snap-type-valid.html.ini
@@ -0,0 +1,22 @@
+[scroll-snap-type-valid.html]
+ [e.style['scroll-snap-type'\] = "block" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "y mandatory" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "both" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "inline proximity" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "y" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "inline" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-snap-type'\] = "x" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-shadow-parts/interaction-with-placeholder.html.ini b/testing/web-platform/meta/css/css-shadow-parts/interaction-with-placeholder.html.ini
new file mode 100644
index 000000000000..9dcaf1419f08
--- /dev/null
+++ b/testing/web-platform/meta/css/css-shadow-parts/interaction-with-placeholder.html.ini
@@ -0,0 +1,2 @@
+[interaction-with-placeholder.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-shadow-parts/interaction-with-pseudo-elements.html.ini b/testing/web-platform/meta/css/css-shadow-parts/interaction-with-pseudo-elements.html.ini
new file mode 100644
index 000000000000..4ae088115b82
--- /dev/null
+++ b/testing/web-platform/meta/css/css-shadow-parts/interaction-with-pseudo-elements.html.ini
@@ -0,0 +1,19 @@
+[interaction-with-pseudo-elements.html]
+ [::first-letter in selected host is styled]
+ expected: FAIL
+
+ [::first-line in selected host is styled]
+ expected: FAIL
+
+ [::before in selected host is styled]
+ expected: FAIL
+
+ [::placeholder in selected host is styled]
+ expected: FAIL
+
+ [::selection in selected host is styled]
+ expected: FAIL
+
+ [::after in selected host is styled]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-1.html.ini b/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-1.html.ini
new file mode 100644
index 000000000000..fd80ec7f7ad9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-1.html.ini
@@ -0,0 +1,2 @@
+[range-percent-intrinsic-size-1.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-2.html.ini b/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-2.html.ini
new file mode 100644
index 000000000000..d5c1fee515ce
--- /dev/null
+++ b/testing/web-platform/meta/css/css-sizing/range-percent-intrinsic-size-2.html.ini
@@ -0,0 +1,9 @@
+[range-percent-intrinsic-size-2.html]
+ expected:
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/css-syntax/escaped-eof.html.ini b/testing/web-platform/meta/css/css-syntax/escaped-eof.html.ini
new file mode 100644
index 000000000000..60eef66c2449
--- /dev/null
+++ b/testing/web-platform/meta/css/css-syntax/escaped-eof.html.ini
@@ -0,0 +1,10 @@
+[escaped-eof.html]
+ [Escaped EOF turns into a U+FFFD in a dimension token.]
+ expected: FAIL
+
+ [Escaped EOF turns into a U+FFFD in an ident token.]
+ expected: FAIL
+
+ [Escaped EOF turns into a U+FFFD in a url token.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-tables/parsing/border-spacing-valid.html.ini b/testing/web-platform/meta/css/css-tables/parsing/border-spacing-valid.html.ini
new file mode 100644
index 000000000000..9dfc328541da
--- /dev/null
+++ b/testing/web-platform/meta/css/css-tables/parsing/border-spacing-valid.html.ini
@@ -0,0 +1,4 @@
+[border-spacing-valid.html]
+ [e.style['border-spacing'\] = "calc(10px + 0.5em) calc(10px - 0.5em)" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-tables/parsing/caption-side-invalid.html.ini b/testing/web-platform/meta/css/css-tables/parsing/caption-side-invalid.html.ini
new file mode 100644
index 000000000000..95b9ef8c3e42
--- /dev/null
+++ b/testing/web-platform/meta/css/css-tables/parsing/caption-side-invalid.html.ini
@@ -0,0 +1,7 @@
+[caption-side-invalid.html]
+ [e.style['caption-side'\] = "left" should not set the property value]
+ expected: FAIL
+
+ [e.style['caption-side'\] = "right" should not set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-002.html.ini b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-002.html.ini
new file mode 100644
index 000000000000..26d0016107d3
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-002.html.ini
@@ -0,0 +1,2 @@
+[overflow-wrap-anywhere-002.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-003.html.ini b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-003.html.ini
new file mode 100644
index 000000000000..4f7a36e2280f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-anywhere-003.html.ini
@@ -0,0 +1,2 @@
+[overflow-wrap-anywhere-003.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html.ini b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html.ini
new file mode 100644
index 000000000000..b27839133938
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html.ini
@@ -0,0 +1,2 @@
+[overflow-wrap-break-word-006.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/parsing/hanging-punctuation-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/hanging-punctuation-valid.html.ini
new file mode 100644
index 000000000000..3d74b5a3efaf
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/hanging-punctuation-valid.html.ini
@@ -0,0 +1,52 @@
+[hanging-punctuation-valid.html]
+ [e.style['hanging-punctuation'\] = "allow-end last first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "allow-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last first force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first allow-end last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "allow-end first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first last force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last allow-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last allow-end first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end first last" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/line-break-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/line-break-valid.html.ini
new file mode 100644
index 000000000000..6ff20f08110c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/line-break-valid.html.ini
@@ -0,0 +1,16 @@
+[line-break-valid.html]
+ [e.style['line-break'\] = "loose" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "normal" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "anywhere" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "strict" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/tab-size-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/tab-size-valid.html.ini
new file mode 100644
index 000000000000..289b9e8e4e1c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/tab-size-valid.html.ini
@@ -0,0 +1,16 @@
+[tab-size-valid.html]
+ [e.style['tab-size'\] = "0px" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "0" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "2.5" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/text-align-all-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/text-align-all-valid.html.ini
new file mode 100644
index 000000000000..e08690369fcd
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/text-align-all-valid.html.ini
@@ -0,0 +1,22 @@
+[text-align-all-valid.html]
+ [e.style['text-align-all'\] = "match-parent" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "left" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "center" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "start" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "end" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "right" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "justify" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/text-align-last-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/text-align-last-valid.html.ini
new file mode 100644
index 000000000000..275698aae137
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/text-align-last-valid.html.ini
@@ -0,0 +1,4 @@
+[text-align-last-valid.html]
+ [e.style['text-align-last'\] = "match-parent" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/text-align-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/text-align-valid.html.ini
new file mode 100644
index 000000000000..d83652a4ee34
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/text-align-valid.html.ini
@@ -0,0 +1,4 @@
+[text-align-valid.html]
+ [e.style['text-align'\] = "justify-all" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/text-indent-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/text-indent-valid.html.ini
new file mode 100644
index 000000000000..97f8781bd76a
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/text-indent-valid.html.ini
@@ -0,0 +1,25 @@
+[text-indent-valid.html]
+ [e.style['text-indent'\] = "calc(2em + 3ex) hanging each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "calc(50% + 60px) each-line hanging" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "10px hanging" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "20% each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "hanging 20% each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "each-line hanging calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "each-line 10px" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "hanging calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/text-transform-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/text-transform-valid.html.ini
new file mode 100644
index 000000000000..bdf9f29e85ae
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/text-transform-valid.html.ini
@@ -0,0 +1,37 @@
+[text-transform-valid.html]
+ [e.style['text-transform'\] = "full-size-kana full-width capitalize" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "capitalize full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "capitalize full-width full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana lowercase full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana capitalize" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "lowercase full-size-kana full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width lowercase" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width full-size-kana uppercase" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "uppercase full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width uppercase full-size-kana" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/white-space-valid.html.ini b/testing/web-platform/meta/css/css-text/parsing/white-space-valid.html.ini
new file mode 100644
index 000000000000..1ad73fcbb720
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/white-space-valid.html.ini
@@ -0,0 +1,4 @@
+[white-space-valid.html]
+ [e.style['white-space'\] = "break-spaces" should set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/parsing/word-spacing-invalid.html.ini b/testing/web-platform/meta/css/css-text/parsing/word-spacing-invalid.html.ini
new file mode 100644
index 000000000000..ff76e8dbd132
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/parsing/word-spacing-invalid.html.ini
@@ -0,0 +1,4 @@
+[word-spacing-invalid.html]
+ [e.style['word-spacing'\] = "20%" should not set the property value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-text/tab-size/tab-size-inheritance-001.html.ini b/testing/web-platform/meta/css/css-text/tab-size/tab-size-inheritance-001.html.ini
new file mode 100644
index 000000000000..9950ceeb7d89
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/tab-size/tab-size-inheritance-001.html.ini
@@ -0,0 +1,2 @@
+[tab-size-inheritance-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/tab-size/tab-size-spacing-001.html.ini b/testing/web-platform/meta/css/css-text/tab-size/tab-size-spacing-001.html.ini
new file mode 100644
index 000000000000..5624b9715792
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/tab-size/tab-size-spacing-001.html.ini
@@ -0,0 +1,2 @@
+[tab-size-spacing-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-292.xht.ini b/testing/web-platform/meta/css/css-text/text-indent/text-indent-percentage-004.html.ini
similarity index 82%
rename from testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-292.xht.ini
rename to testing/web-platform/meta/css/css-text/text-indent/text-indent-percentage-004.html.ini
index 5495b1d70543..bb7694ec9a0a 100644
--- a/testing/web-platform/meta/css/CSS2/selectors/first-letter-punctuation-292.xht.ini
+++ b/testing/web-platform/meta/css/css-text/text-indent/text-indent-percentage-004.html.ini
@@ -1,4 +1,5 @@
-[first-letter-punctuation-292.xht]
+[text-indent-percentage-004.html]
expected:
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-001.html.ini b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-001.html.ini
new file mode 100644
index 000000000000..cca2292ebdef
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-001.html.ini
@@ -0,0 +1,2 @@
+[text-transform-shaping-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-002.html.ini b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-002.html.ini
new file mode 100644
index 000000000000..2ba238436ec0
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-002.html.ini
@@ -0,0 +1,2 @@
+[text-transform-shaping-002.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-003.html.ini b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-003.html.ini
new file mode 100644
index 000000000000..7e956c7dfde8
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/text-transform/text-transform-shaping-003.html.ini
@@ -0,0 +1,2 @@
+[text-transform-shaping-003.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/break-spaces-004.html.ini b/testing/web-platform/meta/css/css-text/white-space/break-spaces-004.html.ini
new file mode 100644
index 000000000000..3b579655b8e4
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/break-spaces-004.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-004.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/break-spaces-005.html.ini b/testing/web-platform/meta/css/css-text/white-space/break-spaces-005.html.ini
new file mode 100644
index 000000000000..c2c621bfe62c
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/break-spaces-005.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-005.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/break-spaces-006.html.ini b/testing/web-platform/meta/css/css-text/white-space/break-spaces-006.html.ini
new file mode 100644
index 000000000000..971ef8db4452
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/break-spaces-006.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-006.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/break-spaces-007.html.ini b/testing/web-platform/meta/css/css-text/white-space/break-spaces-007.html.ini
new file mode 100644
index 000000000000..8f26da2e6ee6
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/break-spaces-007.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-007.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/break-spaces-008.html.ini b/testing/web-platform/meta/css/css-text/white-space/break-spaces-008.html.ini
new file mode 100644
index 000000000000..129efde61a2f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/break-spaces-008.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-008.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/pre-wrap-012.html.ini b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-012.html.ini
new file mode 100644
index 000000000000..ad5a035d5f92
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-012.html.ini
@@ -0,0 +1,2 @@
+[pre-wrap-012.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/pre-wrap-013.html.ini b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-013.html.ini
new file mode 100644
index 000000000000..27a4a1b189d9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-013.html.ini
@@ -0,0 +1,2 @@
+[pre-wrap-013.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/pre-wrap-014.html.ini b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-014.html.ini
new file mode 100644
index 000000000000..11c523245cc3
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-014.html.ini
@@ -0,0 +1,2 @@
+[pre-wrap-014.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/pre-wrap-016.html.ini b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-016.html.ini
new file mode 100644
index 000000000000..cbbf9cabc21f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/pre-wrap-016.html.ini
@@ -0,0 +1,2 @@
+[pre-wrap-016.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-005.html.ini b/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-005.html.ini
new file mode 100644
index 000000000000..24e74516b9f9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-005.html.ini
@@ -0,0 +1,2 @@
+[tab-stop-threshold-005.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-006.html.ini b/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-006.html.ini
new file mode 100644
index 000000000000..fe22ef9105df
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/tab-stop-threshold-006.html.ini
@@ -0,0 +1,2 @@
+[tab-stop-threshold-006.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-001.html.ini b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-001.html.ini
new file mode 100644
index 000000000000..6bfbd15b49d4
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-001.html.ini
@@ -0,0 +1,2 @@
+[white-space-intrinsic-size-001.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-002.html.ini b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-002.html.ini
new file mode 100644
index 000000000000..bddf7af6aae4
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-002.html.ini
@@ -0,0 +1,2 @@
+[white-space-intrinsic-size-002.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-003.html.ini b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-003.html.ini
new file mode 100644
index 000000000000..60f075ed1e3f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-003.html.ini
@@ -0,0 +1,2 @@
+[white-space-intrinsic-size-003.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-004.html.ini b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-004.html.ini
new file mode 100644
index 000000000000..ec010b1bfd9b
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/white-space/white-space-intrinsic-size-004.html.ini
@@ -0,0 +1,2 @@
+[white-space-intrinsic-size-004.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-012.html.ini b/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-012.html.ini
new file mode 100644
index 000000000000..508737adbc17
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-012.html.ini
@@ -0,0 +1,2 @@
+[word-break-break-all-012.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-013.html.ini b/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-013.html.ini
new file mode 100644
index 000000000000..9985af751f7d
--- /dev/null
+++ b/testing/web-platform/meta/css/css-text/word-break/word-break-break-all-013.html.ini
@@ -0,0 +1,2 @@
+[word-break-break-all-013.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-typed-om/interfaces.html.ini b/testing/web-platform/meta/css/css-typed-om/interfaces.html.ini
index 87c25ffdf1c2..90f10bb0ceba 100644
--- a/testing/web-platform/meta/css/css-typed-om/interfaces.html.ini
+++ b/testing/web-platform/meta/css/css-typed-om/interfaces.html.ini
@@ -1514,3 +1514,15 @@
[CSS namespace: operation mm(double)]
expected: FAIL
+ [CSSTransformValue interface: iterable]
+ expected: FAIL
+
+ [CSSNumericArray interface: iterable]
+ expected: FAIL
+
+ [StylePropertyMapReadOnly interface: iterable]
+ expected: FAIL
+
+ [CSSUnparsedValue interface: iterable]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/css-ui/appearance-cssom-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-cssom-001.html.ini
new file mode 100644
index 000000000000..7d8a39a15b3f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-ui/appearance-cssom-001.html.ini
@@ -0,0 +1,1124 @@
+[appearance-cssom-001.html]
+ [appearance: menulist-button]
+ expected: FAIL
+
+ [appearance: continuous-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: toolbarbutton-dropdown (invalid)]
+ expected: FAIL
+
+ [appearance: statusbar (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-next (invalid)]
+ expected: FAIL
+
+ [appearance: meterchunk (invalid)]
+ expected: FAIL
+
+ [appearance: resizerpanel (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-slider (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-left (invalid)]
+ expected: FAIL
+
+ [appearance: scale-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: menucheckbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: square-button]
+ expected: FAIL
+
+ [appearance: -moz-window-button-restore (invalid)]
+ expected: FAIL
+
+ [appearance: media-time-remaining-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progressbar (invalid)]
+ expected: FAIL
+
+ [appearance: radio-container (invalid)]
+ expected: FAIL
+
+ [appearance: media-seek-back-button (invalid)]
+ expected: FAIL
+
+ [appearance: media-seek-forward-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: auto]
+ expected: FAIL
+
+ [appearance: relevancy-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: listitem (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-down (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-up (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbend (invalid)]
+ expected: FAIL
+
+ [appearance: tabpanel (invalid)]
+ expected: FAIL
+
+ [appearance: sliderthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-down (invalid)]
+ expected: FAIL
+
+ [appearance: textarea]
+ expected: FAIL
+
+ [appearance: menulist-textfield]
+ expected: FAIL
+
+ [appearance: number-input (invalid)]
+ expected: FAIL
+
+ [appearance: tabpanels (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: range-thumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: inner-spin-button (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-communicationstext (invalid)]
+ expected: FAIL
+
+ [appearance: treeheadercell (invalid)]
+ expected: FAIL
+
+ [appearance: inner-spin-button (invalid)]
+ expected: FAIL
+
+ [appearance: tab (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumb-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: media-exit-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [appearance: color-well (invalid)]
+ expected: FAIL
+
+ [appearance: media-sliderthumb (invalid)]
+ expected: FAIL
+
+ [appearance: media-fullscreen-volume-slider (invalid)]
+ expected: FAIL
+
+ [appearance: media-current-time-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: listitem (invalid)]
+ expected: FAIL
+
+ [appearance: separator (invalid)]
+ expected: FAIL
+
+ [appearance: dualbutton (invalid)]
+ expected: FAIL
+
+ [appearance: bogus-button (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-decoration (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumbend (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-browsertabbar-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: menupopup (invalid)]
+ expected: FAIL
+
+ [appearance: checkmenuitem (invalid)]
+ expected: FAIL
+
+ [appearance: caret]
+ expected: FAIL
+
+ [appearance: radio-label (invalid)]
+ expected: FAIL
+
+ [appearance: progress-bar]
+ expected: FAIL
+
+ [appearance: menulist-text]
+ expected: FAIL
+
+ [appearance: button-focus (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-close (invalid)]
+ expected: FAIL
+
+ [appearance: listbox]
+ expected: FAIL
+
+ [appearance: media-volume-slider-mute-button (invalid)]
+ expected: FAIL
+
+ [appearance: checkbox-container (invalid)]
+ expected: FAIL
+
+ [appearance: button]
+ expected: FAIL
+
+ [appearance: progresschunk-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: treetwisty (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbartrack-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbtick (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: push-button]
+ expected: FAIL
+
+ [appearance: menuarrow (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbartrack-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: treeitem (invalid)]
+ expected: FAIL
+
+ [appearance: media-play-button (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield]
+ expected: FAIL
+
+ [appearance: rating-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-right (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-downbutton (invalid)]
+ expected: FAIL
+
+ [appearance: splitter (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-background (invalid)]
+ expected: FAIL
+
+ [appearance: square-button]
+ expected: FAIL
+
+ [appearance: resizer (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-borderless-glass (invalid)]
+ expected: FAIL
+
+ [appearance: toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: media-enter-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [appearance: statusbarpanel (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-titlebar-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-light-bar-background (invalid)]
+ expected: FAIL
+
+ [appearance: push-button]
+ expected: FAIL
+
+ [appearance: treetwistyopen (invalid)]
+ expected: FAIL
+
+ [appearance: progress-bar-value (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-right (invalid)]
+ expected: FAIL
+
+ [appearance: borderless-attachment (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-fullscreen-background (invalid)]
+ expected: FAIL
+
+ [appearance: treeheader (invalid)]
+ expected: FAIL
+
+ [appearance: slider-horizontal]
+ expected: FAIL
+
+ [appearance: checkbox-label (invalid)]
+ expected: FAIL
+
+ [appearance: -apple-pay-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progressbar-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-box (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-upbutton (invalid)]
+ expected: FAIL
+
+ [appearance: groupbox (invalid)]
+ expected: FAIL
+
+ [appearance: snapshotted-plugin-overlay (invalid)]
+ expected: FAIL
+
+ [appearance: discrete-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-slider-container (invalid)]
+ expected: FAIL
+
+ [appearance: caps-lock-indicator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: auto]
+ expected: FAIL
+
+ [appearance: progressbar-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: tooltip (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-previous (invalid)]
+ expected: FAIL
+
+ [appearance: toolbarbutton (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-cancel-button (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-exclude-glass (invalid)]
+ expected: FAIL
+
+ [appearance: media-return-to-realtime-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: meterbar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: slider-horizontal]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-left (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: media-toggle-closed-captions-button (invalid)]
+ expected: FAIL
+
+ [appearance: checkbox]
+ expected: FAIL
+
+ [appearance: textfield-multiline (invalid)]
+ expected: FAIL
+
+ [appearance: treeline (invalid)]
+ expected: FAIL
+
+ [appearance: attachment (invalid)]
+ expected: FAIL
+
+ [appearance: none]
+ expected: FAIL
+
+ [appearance: searchfield-results-button (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-results-decoration (invalid)]
+ expected: FAIL
+
+ [appearance: radiomenuitem (invalid)]
+ expected: FAIL
+
+ [appearance: progresschunk (invalid)]
+ expected: FAIL
+
+ [appearance: toolbar (invalid)]
+ expected: FAIL
+
+ [appearance: menulist]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbstart (invalid)]
+ expected: FAIL
+
+ [appearance: treeview (invalid)]
+ expected: FAIL
+
+ [appearance: toolbargripper (invalid)]
+ expected: FAIL
+
+ [appearance: slider-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scale-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: sheet (invalid)]
+ expected: FAIL
+
+ [appearance: menuimage (invalid)]
+ expected: FAIL
+
+ [appearance: media-rewind-button (invalid)]
+ expected: FAIL
+
+ [appearance: menuseparator (invalid)]
+ expected: FAIL
+
+ [appearance: list-button (invalid)]
+ expected: FAIL
+
+ [appearance: listitem]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: number-input (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-maximize (invalid)]
+ expected: FAIL
+
+ [appearance: scale-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-up (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-dark-bar-background (invalid)]
+ expected: FAIL
+
+ [appearance: menuitemtext (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-titlebar (invalid)]
+ expected: FAIL
+
+ [appearance: menubar (invalid)]
+ expected: FAIL
+
+ [appearance: tab-scroll-arrow-back (invalid)]
+ expected: FAIL
+
+ [appearance: menuradio (invalid)]
+ expected: FAIL
+
+ [appearance: range-thumb (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-box-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: media-mute-button (invalid)]
+ expected: FAIL
+
+ [appearance: textfield]
+ expected: FAIL
+
+ [appearance: meterbar (invalid)]
+ expected: FAIL
+
+ [-moz-appearance (should not be supported)]
+ expected: FAIL
+
+ [appearance: default-button (invalid)]
+ expected: FAIL
+
+ [appearance: media-fullscreen-volume-slider-thumb (invalid)]
+ expected: FAIL
+
+ [appearance: media-overlay-play-button (invalid)]
+ expected: FAIL
+
+ [appearance: button-bevel]
+ expected: FAIL
+
+ [appearance: scalethumbtick (invalid)]
+ expected: FAIL
+
+ [appearance: radio]
+ expected: FAIL
+
+ [appearance: -moz-win-media-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: progressbar (invalid)]
+ expected: FAIL
+
+ [appearance: media-slider (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumbstart (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: range (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-textfield (invalid)]
+ expected: FAIL
+
+ [appearance: spinner (invalid)]
+ expected: FAIL
+
+ [appearance: treeheadersortarrow (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-glass (invalid)]
+ expected: FAIL
+
+ [appearance: meter]
+ expected: FAIL
+
+ [appearance: image-controls-button (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-minimize (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbartrack-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: sliderthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: menuitem (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbartrack-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: range (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-sliderthumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: textfield-multiline (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-bottom (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-communications-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: tab-scroll-arrow-forward (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scale-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-frame-bottom (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuseparator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-volume-slider-container (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: attachment (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-borderless-glass (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-exit-fullscreen-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: sliderthumb-horizontal (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menulist-text]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-arrow-previous (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: statusbar (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: list-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: radio-container (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menupopup (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: discrete-capacity-level-indicator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: scrollbarbutton-left (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: checkmenuitem (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: toolbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: toolbarbutton (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tab-scroll-arrow-back (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tab (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: color-well (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeheader (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: splitter (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: listbox]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: image-controls-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-exclude-glass (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -apple-pay-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-bevel]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-minimize (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeheadersortarrow (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: snapshotted-plugin-overlay (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: spinner-textfield (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: sheet (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeline (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-controls-background (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: searchfield-decoration (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-frame-left (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: toolbar (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: spinner-upbutton (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-communicationstext (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: checkbox]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-close (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-rewind-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: progresschunk (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: rating-level-indicator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: bogus-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-controls-fullscreen-background (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeheadercell (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: scrollbarbutton-up (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-seek-forward-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: caret]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: relevancy-level-indicator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-current-time-display (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treetwistyopen (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: radiomenuitem (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: meterchunk (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: toolbarbutton-dropdown (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-titlebar (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: default-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-sliderthumb (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menulist]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-arrow-down (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-controls-light-bar-background (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-communications-toolbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: caps-lock-indicator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: listitem]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: resizer (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: resizerpanel (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: dualbutton (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: searchfield-cancel-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: textarea]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tab-scroll-arrow-forward (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treetwisty (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: radio-label (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-box (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tabpanel (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuitemtext (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-arrow-up (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: searchfield]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: toolbargripper (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-seek-back-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-focus (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-volume-slider-mute-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-fullscreen-volume-slider (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: scrollbarbutton-right (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-glass (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: textfield]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: spinner (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-restore (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: spinner-downbutton (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: progresschunk-vertical (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: radio]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-time-remaining-display (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-maximize (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-browsertabbar-toolbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: separator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-win-media-toolbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: sliderthumb-vertical (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tooltip (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: button-arrow-next (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-volume-slider (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-return-to-realtime-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: scrollbarbutton-down (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: checkbox-container (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-toggle-closed-captions-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: searchfield-results-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-overlay-play-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: progress-bar-value (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: checkbox-label (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: borderless-attachment (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menubar (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuimage (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuarrow (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: statusbarpanel (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: tabpanels (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-controls-dark-bar-background (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-frame-right (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-mute-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeview (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: treeitem (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menulist-button]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-enter-fullscreen-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-fullscreen-volume-slider-thumb (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: continuous-capacity-level-indicator (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menulist-textfield]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: groupbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: meter]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menucheckbox (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: searchfield-results-decoration (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-titlebar-maximized (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuradio (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: -moz-window-button-box-maximized (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: slider-vertical (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: progress-bar]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-slider (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-volume-sliderthumb (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: menuitem (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [-webkit-appearance: media-play-button (invalid)]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
diff --git a/testing/web-platform/meta/css/css-values/ic-unit-008.html.ini b/testing/web-platform/meta/css/css-values/ic-unit-008.html.ini
new file mode 100644
index 000000000000..027af6d19c9d
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/ic-unit-008.html.ini
@@ -0,0 +1,2 @@
+[ic-unit-008.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-values/ic-unit-009.html.ini b/testing/web-platform/meta/css/css-values/ic-unit-009.html.ini
new file mode 100644
index 000000000000..ec079625a5fc
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/ic-unit-009.html.ini
@@ -0,0 +1,2 @@
+[ic-unit-009.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-values/ic-unit-010.html.ini b/testing/web-platform/meta/css/css-values/ic-unit-010.html.ini
new file mode 100644
index 000000000000..ed3149ae20c9
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/ic-unit-010.html.ini
@@ -0,0 +1,2 @@
+[ic-unit-010.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-values/ic-unit-011.html.ini b/testing/web-platform/meta/css/css-values/ic-unit-011.html.ini
new file mode 100644
index 000000000000..fc139eb97d57
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/ic-unit-011.html.ini
@@ -0,0 +1,2 @@
+[ic-unit-011.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-values/ic-unit-012.html.ini b/testing/web-platform/meta/css/css-values/ic-unit-012.html.ini
new file mode 100644
index 000000000000..3c08ad5954fa
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/ic-unit-012.html.ini
@@ -0,0 +1,2 @@
+[ic-unit-012.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/css-values/vh-support-atviewport.html.ini b/testing/web-platform/meta/css/css-values/vh-support-atviewport.html.ini
new file mode 100644
index 000000000000..9d9d54aebb6f
--- /dev/null
+++ b/testing/web-platform/meta/css/css-values/vh-support-atviewport.html.ini
@@ -0,0 +1,2 @@
+[vh-support-atviewport.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/cssom/CSSStyleSheet-constructable.html.ini b/testing/web-platform/meta/css/cssom/CSSStyleSheet-constructable.html.ini
index 1578162f33ca..2aabcbe418eb 100644
--- a/testing/web-platform/meta/css/cssom/CSSStyleSheet-constructable.html.ini
+++ b/testing/web-platform/meta/css/cssom/CSSStyleSheet-constructable.html.ini
@@ -56,3 +56,6 @@
[Importing a shadow host will not copy shadow root, and also adoptedStyleSheets]
expected: FAIL
+ [Adopting a shadow host will empty adoptedStyleSheets if adopting to a different document]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/cssom/cssom-pagerule.html.ini b/testing/web-platform/meta/css/cssom/cssom-pagerule.html.ini
new file mode 100644
index 000000000000..bcc665831fa7
--- /dev/null
+++ b/testing/web-platform/meta/css/cssom/cssom-pagerule.html.ini
@@ -0,0 +1,4 @@
+[cssom-pagerule.html]
+ [Page selector is initially the empty string]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/filter-effects/filter-subregion-01.html.ini b/testing/web-platform/meta/css/filter-effects/filter-subregion-01.html.ini
new file mode 100644
index 000000000000..4fce4d6e53c8
--- /dev/null
+++ b/testing/web-platform/meta/css/filter-effects/filter-subregion-01.html.ini
@@ -0,0 +1,2 @@
+[filter-subregion-01.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/filter-effects/filtered-inline-applies-to-float.html.ini b/testing/web-platform/meta/css/filter-effects/filtered-inline-applies-to-float.html.ini
new file mode 100644
index 000000000000..198ae38f80fc
--- /dev/null
+++ b/testing/web-platform/meta/css/filter-effects/filtered-inline-applies-to-float.html.ini
@@ -0,0 +1,7 @@
+[filtered-inline-applies-to-float.html]
+ expected:
+ if not debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
+ if debug and webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): PASS
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): PASS
+ FAIL
diff --git a/testing/web-platform/meta/css/mediaqueries/prefers-color-scheme.html.ini b/testing/web-platform/meta/css/mediaqueries/prefers-color-scheme.html.ini
new file mode 100644
index 000000000000..b04f76984f59
--- /dev/null
+++ b/testing/web-platform/meta/css/mediaqueries/prefers-color-scheme.html.ini
@@ -0,0 +1,40 @@
+[prefers-color-scheme.html]
+ [Should be parseable: '(prefers-color-scheme)']
+ expected: FAIL
+
+ [Check that no-preference evaluates to false in the boolean context]
+ expected: FAIL
+
+ [Should be parseable: '(prefers-color-scheme: dark)']
+ expected: FAIL
+
+ [Should be parseable: '(prefers-color-scheme: light)']
+ expected: FAIL
+
+ [Should be parseable: '(prefers-color-scheme: no-preference)']
+ expected: FAIL
+
+ [Should be parseable in JS: '(prefers-color-scheme: dark)']
+ expected: FAIL
+
+ [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: light)']
+ expected: FAIL
+
+ [Should be parseable in a CSS stylesheet: '(prefers-color-scheme)']
+ expected: FAIL
+
+ [Should be parseable in JS: '(prefers-color-scheme: no-preference)']
+ expected: FAIL
+
+ [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: dark)']
+ expected: FAIL
+
+ [Should be parseable in JS: '(prefers-color-scheme)']
+ expected: FAIL
+
+ [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: no-preference)']
+ expected: FAIL
+
+ [Should be parseable in JS: '(prefers-color-scheme: light)']
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001b.xhtml.ini b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001b.xhtml.ini
index b421616b6257..618c4e7ccc70 100644
--- a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001b.xhtml.ini
+++ b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001b.xhtml.ini
@@ -1,7 +1,5 @@
[flexbox-justify-content-horiz-001b.xhtml]
expected:
if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): PASS
- FAIL
disabled:
if os == "android": https://github.com/web-platform-tests/wpt/pull/14965
-
diff --git a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-003.xhtml.ini b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-003.xhtml.ini
deleted file mode 100644
index 1416bdedf25a..000000000000
--- a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-003.xhtml.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[flexbox-justify-content-vert-003.xhtml]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/vert-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html.ini b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/vert-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html.ini
new file mode 100644
index 000000000000..33fe3d35e506
--- /dev/null
+++ b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/vert-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html.ini
@@ -0,0 +1,2 @@
+[vert-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-auto-1.html.ini b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-auto-1.html.ini
deleted file mode 100644
index 813f59209005..000000000000
--- a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-auto-1.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[calc-width-table-auto-1.html]
- expected: FAIL
diff --git a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-fixed-1.html.ini b/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-fixed-1.html.ini
deleted file mode 100644
index 5fbe72116468..000000000000
--- a/testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/values3/calc-width-table-fixed-1.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[calc-width-table-fixed-1.html]
- expected: FAIL
diff --git a/testing/web-platform/meta/dom/events/Event-dispatch-click.html.ini b/testing/web-platform/meta/dom/events/Event-dispatch-click.html.ini
index 2cc82dd080d5..dfec0afafc10 100644
--- a/testing/web-platform/meta/dom/events/Event-dispatch-click.html.ini
+++ b/testing/web-platform/meta/dom/events/Event-dispatch-click.html.ini
@@ -5,9 +5,6 @@
[pick the first with activation behavior ]
expected: FAIL
- [pick the first with activation behavior ]
- expected: FAIL
-
[event state during post-click handling]
expected: FAIL
diff --git a/testing/web-platform/meta/editing/run/delete.html.ini b/testing/web-platform/meta/editing/run/delete.html.ini
index a970148c97b1..0b6c9654e1df 100644
--- a/testing/web-platform/meta/editing/run/delete.html.ini
+++ b/testing/web-platform/meta/editing/run/delete.html.ini
@@ -1010,6 +1010,9 @@
[[["defaultparagraphseparator","p"\],["delete",""\]\] "foo {
}bar
" compare innerHTML]
expected: FAIL
+ [delete - HTML editing conformance tests]
+ expected: FAIL
+
[delete.html?3001-4000]
[[["stylewithcss","true"\],["defaultparagraphseparator","div"\],["delete",""\]\] "foo
[\]bar" compare innerHTML]
diff --git a/testing/web-platform/meta/editing/run/multitest.html.ini b/testing/web-platform/meta/editing/run/multitest.html.ini
index 49bd353d90d0..3e4aec3b6100 100644
--- a/testing/web-platform/meta/editing/run/multitest.html.ini
+++ b/testing/web-platform/meta/editing/run/multitest.html.ini
@@ -2215,3 +2215,6 @@
[[["underline","","first application"\],["underline","","second application"\],["createlink","http://www.google.com/"\],["inserttext","a"\]\] "foo[\]bar" queryCommandState("underline") after]
expected: FAIL
+ [multitest - HTML editing conformance tests]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/encoding/legacy-mb-japanese/euc-jp/__dir__.ini b/testing/web-platform/meta/encoding/legacy-mb-japanese/euc-jp/__dir__.ini
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/testing/web-platform/meta/encoding/legacy-mb-japanese/iso-2022-jp/__dir__.ini b/testing/web-platform/meta/encoding/legacy-mb-japanese/iso-2022-jp/__dir__.ini
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/testing/web-platform/meta/encoding/legacy-mb-tchinese/big5/__dir__.ini b/testing/web-platform/meta/encoding/legacy-mb-tchinese/big5/__dir__.ini
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/testing/web-platform/meta/encoding/streams/decode-utf8.any.js.ini b/testing/web-platform/meta/encoding/streams/decode-utf8.any.js.ini
index 89cf7b8e2269..8d66ce5b5005 100644
--- a/testing/web-platform/meta/encoding/streams/decode-utf8.any.js.ini
+++ b/testing/web-platform/meta/encoding/streams/decode-utf8.any.js.ini
@@ -14,6 +14,12 @@
[an initial empty chunk should be ignored]
expected: FAIL
+ [decoding a transferred Uint8Array chunk should give no output]
+ expected: FAIL
+
+ [decoding a transferred ArrayBuffer chunk should give no output]
+ expected: FAIL
+
[decode-utf8.any.html]
[decoding one UTF-8 chunk should give one output string]
@@ -28,6 +34,12 @@
[an initial empty chunk should be ignored]
expected: FAIL
+ [decoding a transferred Uint8Array chunk should give no output]
+ expected: FAIL
+
+ [decoding a transferred ArrayBuffer chunk should give no output]
+ expected: FAIL
+
[decode-utf8.any.worker.html]
[decoding one UTF-8 chunk should give one output string]
@@ -42,6 +54,12 @@
[an initial empty chunk should be ignored]
expected: FAIL
+ [decoding a transferred Uint8Array chunk should give no output]
+ expected: FAIL
+
+ [decoding a transferred ArrayBuffer chunk should give no output]
+ expected: FAIL
+
[decode-utf8.any.serviceworker.html]
[decoding one UTF-8 chunk should give one output string]
@@ -56,3 +74,9 @@
[an initial empty chunk should be ignored]
expected: FAIL
+ [decoding a transferred Uint8Array chunk should give no output]
+ expected: FAIL
+
+ [decoding a transferred ArrayBuffer chunk should give no output]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-check-encryption-scheme.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-check-encryption-scheme.https.html.ini
new file mode 100644
index 000000000000..c4b9e939b0b0
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-check-encryption-scheme.https.html.ini
@@ -0,0 +1,13 @@
+[clearkey-check-encryption-scheme.https.html]
+ [org.w3.clearkey support for "cenc" encryption scheme.]
+ expected:
+ if os == "linux": "FAIL"
+ if os == "win": "FAIL"
+ if os == "mac": "FAIL"
+
+ [org.w3.clearkey support for "cbcs" encryption scheme.]
+ expected:
+ if os == "linux": "FAIL"
+ if os == "mac": "FAIL"
+ if os == "win": "FAIL"
+
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-check-status-for-hdcp.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-check-status-for-hdcp.https.html.ini
new file mode 100644
index 000000000000..e4bef5d0d94a
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-check-status-for-hdcp.https.html.ini
@@ -0,0 +1,7 @@
+[clearkey-check-status-for-hdcp.https.html]
+ [org.w3.clearkey support for empty HDCP version.]
+ expected: FAIL
+
+ [org.w3.clearkey support for HDCP 1.0.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/encrypted-media/drm-check-encryption-scheme.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-check-encryption-scheme.https.html.ini
new file mode 100644
index 000000000000..6e51fc1547e9
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-check-encryption-scheme.https.html.ini
@@ -0,0 +1,17 @@
+[drm-check-encryption-scheme.https.html]
+ expected:
+ if os == "linux": "TIMEOUT"
+ if os == "mac": "TIMEOUT"
+ if os == "win": "TIMEOUT"
+ [drm support for "cenc" encryption scheme.]
+ expected:
+ if os == "win": "TIMEOUT"
+ if os == "linux": "TIMEOUT"
+ if os == "mac": "TIMEOUT"
+
+ [drm support for "cbcs" encryption scheme.]
+ expected:
+ if os == "linux": "NOTRUN"
+ if os == "win": "NOTRUN"
+ if os == "mac": "NOTRUN"
+
diff --git a/testing/web-platform/meta/encrypted-media/drm-check-status-for-hdcp.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-check-status-for-hdcp.https.html.ini
new file mode 100644
index 000000000000..b06bb2c64bc7
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-check-status-for-hdcp.https.html.ini
@@ -0,0 +1,19 @@
+[drm-check-status-for-hdcp.https.html]
+ expected:
+ if os == "linux": "TIMEOUT"
+ if os == "mac": "TIMEOUT"
+ if os == "win": "TIMEOUT"
+ [drm support for HDCP 1.0.]
+ expected:
+ if os == "win": "NOTRUN"
+ if os == "linux": "NOTRUN"
+ if os == "mac": "NOTRUN"
+ if os == "android": "FAIL"
+
+ [drm support for empty HDCP version.]
+ expected:
+ if os == "linux": "TIMEOUT"
+ if os == "win": "TIMEOUT"
+ if os == "android": "FAIL"
+ if os == "mac": "TIMEOUT"
+
diff --git a/testing/web-platform/meta/encrypted-media/encrypted-media-supported-by-feature-policy.tentative.html.ini b/testing/web-platform/meta/encrypted-media/encrypted-media-supported-by-feature-policy.tentative.html.ini
new file mode 100644
index 000000000000..95961c01f4ab
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/encrypted-media-supported-by-feature-policy.tentative.html.ini
@@ -0,0 +1,4 @@
+[encrypted-media-supported-by-feature-policy.tentative.html]
+ [document.featurePolicy.features should advertise encrypted-media.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/event-timing/supported-types.window.js.ini b/testing/web-platform/meta/event-timing/supported-types.window.js.ini
new file mode 100644
index 000000000000..ebff18886937
--- /dev/null
+++ b/testing/web-platform/meta/event-timing/supported-types.window.js.ini
@@ -0,0 +1,4 @@
+[supported-types.window.html]
+ [supportedEntryTypes contains 'event' and 'firstInput'.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.ini b/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.ini
index 665ab45e5c96..23b3492f11a2 100644
--- a/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.ini
+++ b/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.ini
@@ -15,3 +15,6 @@
[Verify that when 'layout-animations' is disabled, an 'element.animate' API including a keyframe that uses a blocked property generates violation report (inline scripts).]
expected: NOTRUN
+ [Verify 'layout-animations' is not in document's feature list.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.ini b/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.ini
index 491238444a8d..2517c9015cb0 100644
--- a/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.ini
+++ b/testing/web-platform/meta/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.ini
@@ -6,3 +6,6 @@
[Verify that when 'layout-animations' is disabled, a keyframes which includes a blocked property generates violation report.]
expected: TIMEOUT
+ [Sanity-check: 'layout-animations' is not in document's feature list.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..39f653ec4c1c
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html.ini
@@ -0,0 +1,235 @@
+[feature-policy-frame-policy-allowed-for-all.https.sub.html]
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc+ same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc+ cross origin iframe inherit from header policy.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-self.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-self.https.sub.html.ini
index 080a7ab636dd..ce9a1e3f6d02 100644
--- a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-self.https.sub.html.ini
+++ b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-self.https.sub.html.ini
@@ -10,3 +10,250 @@
[Test frame policy on data: URL origin iframe with allow = "*" and allowfullscreen.]
expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin sandboxed iframe with allow="fullscreen".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on sandboxed srcdoc iframe with allow="fullscreen https://www.web-platform.test:8443".]
+ expected: FAIL
+
+ [Test frame policy on sandboxed iframe with allow="fullscreen".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on sandboxed iframe with allow="fullscreen 'src'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc sandboxed iframe with allow="fullscreen".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin sandboxed iframe with allow="fullscreen".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on data: URL origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-some.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-some.https.sub.html.ini
index 794cd9078d32..7ba77d8c2d94 100644
--- a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-some.https.sub.html.ini
+++ b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-allowed-for-some.https.sub.html.ini
@@ -4,3 +4,322 @@
[Test frame policy on data: URL cross origin iframe with allow = "*" and allowfullscreen.]
expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on another cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + another cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-disallowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-disallowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..43d74e439077
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-frame-policy-disallowed-for-all.https.sub.html.ini
@@ -0,0 +1,235 @@
+[feature-policy-frame-policy-disallowed-for-all.https.sub.html]
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'none'".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'none';".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe with allow = "*" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'none'" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + cross origin iframe inherit from header policy.]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and header policy = "Feature-Policy: fullscreen *;".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "'self' https://www.web-platform.test:8443 https://www.example.com" and allowfullscreen.]
+ expected: FAIL
+
+ [Test frame policy on srcdoc + same origin iframe with allow = "'self'".]
+ expected: FAIL
+
+ [Test frame policy on data: URL cross origin iframe with allow = "*".]
+ expected: FAIL
+
+ [Test frame policy on same origin iframe with allow = "*" and header policy = "Feature-Policy: fullscreen 'self';".]
+ expected: FAIL
+
+ [Test frame policy on cross origin iframe with allow = "'self'".]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..5bbea0b45243
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.ini
@@ -0,0 +1,16 @@
+[feature-policy-header-policy-allowed-for-all.https.sub.html]
+ [Feature-Policy: fullscreen * -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen * -- test fullscreen is allowed on cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen *, iframe.allow = fullscreen 'self'; -- test fullscreen is disallowed on cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen *, iframe.allow = fullscreen 'self'; -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen *NaN]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.ini
new file mode 100644
index 000000000000..cca74f9e232a
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.ini
@@ -0,0 +1,16 @@
+[feature-policy-header-policy-allowed-for-self.https.sub.html]
+ [Feature-Policy: fullscreen 'self' -- test allowlist is [same_origin\]]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self', iframe.allow = fullscreen 'src'; -- test fullscreen is allowed on cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self', iframe.allow = fullscreen 'src'; -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' -- test fullscreen is disallowed on cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.ini
new file mode 100644
index 000000000000..c3844dacd636
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.ini
@@ -0,0 +1,19 @@
+[feature-policy-header-policy-allowed-for-some.https.sub.html]
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;, iframe.allow = fullscreen 'none'; -- test fullscreen is disallowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is disallowed on cross-origin https://www1.web-platform.test:8443/feature-policy/resources/feature-policy-allowedfeatures.html subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test allowlist is [same_origin, cross_origin, https://www.example.com\]]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is allowed on cross-origin https://www.web-platform.test:8443/feature-policy/resources/feature-policy-allowedfeatures.html subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;iframe.allow = fullscreen 'none'; -- test fullscreen is disallowed on cross-origin subframe]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-declined.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-declined.https.sub.html.ini
index aa6c7d740d9d..a23305e77db2 100644
--- a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-declined.https.sub.html.ini
+++ b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-declined.https.sub.html.ini
@@ -2,3 +2,24 @@
[Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test allowlist is [cross_origin, https://www.example.com\]]
expected: FAIL
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;, iframe.allow = fullscreen https://www.web-platform.test:8443 -- test fullscreen is disallowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;, iframe.allow = fullscreen 'none'; -- test fullscreen is disallowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is disallowed on cross-origin https://www1.web-platform.test:8443/feature-policy/resources/feature-policy-allowedfeatures.html subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;iframe.allow = fullscreen https://www.web-platform.test:8443 -- test fullscreen is allowed on specific cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com;iframe.allow = fullscreen 'none'; -- test fullscreen is allowed on specific cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is allowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'self' https://www.web-platform.test:8443 https://www.example.com; -- test fullscreen is allowed on cross-origin https://www.web-platform.test:8443/feature-policy/resources/feature-policy-allowedfeatures.html subframe]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..0acffc506b47
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.ini
@@ -0,0 +1,16 @@
+[feature-policy-header-policy-disallowed-for-all.https.sub.html]
+ [Feature-Policy: fullscreen 'none' -- test fullscreen is disallowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'none' -- test allowlist is [\]]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'none', iframe.allow = fullscreen 'src'; -- test fullscreen is disallowed on cross-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'none', iframe.allow = fullscreen 'src'; -- test fullscreen is disallowed on same-origin subframe]
+ expected: FAIL
+
+ [Feature-Policy: fullscreen 'none' -- test fullscreen is disallowed on cross-origin subframe]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..0d0b744764b8
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-all.https.sub.html.ini
@@ -0,0 +1,19 @@
+[feature-policy-nested-header-policy-allowed-for-all.https.sub.html]
+ [Test nested header policy with remote iframe on policy "fullscreen *"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen *"]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen 'self'"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'self'"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'none'"]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen 'none'"]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-self.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-self.https.sub.html.ini
new file mode 100644
index 000000000000..d5d938c1b355
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-allowed-for-self.https.sub.html.ini
@@ -0,0 +1,19 @@
+[feature-policy-nested-header-policy-allowed-for-self.https.sub.html]
+ [Test nested header policy with remote iframe on policy "fullscreen *"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen *"]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen 'self'"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'self'"]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'none'"]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen 'none'"]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-disallowed-for-all.https.sub.html.ini b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-disallowed-for-all.https.sub.html.ini
new file mode 100644
index 000000000000..147ffd111edf
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/feature-policy-nested-header-policy-disallowed-for-all.https.sub.html.ini
@@ -0,0 +1,19 @@
+[feature-policy-nested-header-policy-disallowed-for-all.https.sub.html]
+ [Test nested header policy with remote iframe on policy "fullscreen 'self'".]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'self'".]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen *".]
+ expected: FAIL
+
+ [Test nested header policy with local iframe on policy "fullscreen 'none'".]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen 'none'".]
+ expected: FAIL
+
+ [Test nested header policy with remote iframe on policy "fullscreen *".]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/idlharness.window.js.ini b/testing/web-platform/meta/feature-policy/idlharness.window.js.ini
new file mode 100644
index 000000000000..4c2325d05a6d
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/idlharness.window.js.ini
@@ -0,0 +1,31 @@
+[idlharness.window.html]
+ [HTMLIFrameElement interface: attribute featurePolicy]
+ expected: FAIL
+
+ [Document interface: attribute featurePolicy]
+ expected: FAIL
+
+ [Document interface: document must inherit property "featurePolicy" with the proper type]
+ expected: FAIL
+
+ [FeaturePolicy interface: document.featurePolicy must inherit property "allowsFeature(DOMString, DOMString)" with the proper type]
+ expected: FAIL
+
+ [FeaturePolicy interface: document.featurePolicy must inherit property "getAllowlistForFeature(DOMString)" with the proper type]
+ expected: FAIL
+
+ [FeaturePolicy interface: document.featurePolicy must inherit property "allowedFeatures()" with the proper type]
+ expected: FAIL
+
+ [FeaturePolicy interface: calling getAllowlistForFeature(DOMString) on document.featurePolicy with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Stringification of document.featurePolicy]
+ expected: FAIL
+
+ [FeaturePolicy interface: calling allowsFeature(DOMString, DOMString) on document.featurePolicy with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [FeaturePolicy interface: document.featurePolicy must inherit property "features()" with the proper type]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/payment-supported-by-feature-policy.tentative.html.ini b/testing/web-platform/meta/feature-policy/payment-supported-by-feature-policy.tentative.html.ini
new file mode 100644
index 000000000000..934359e3ee68
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/payment-supported-by-feature-policy.tentative.html.ini
@@ -0,0 +1,4 @@
+[payment-supported-by-feature-policy.tentative.html]
+ [document.featurePolicy.features should advertise payment.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/picture-in-picture-supported-by-feature-policy.html.ini b/testing/web-platform/meta/feature-policy/picture-in-picture-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..9993cee3360c
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/picture-in-picture-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[picture-in-picture-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise picture-in-picture.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/feature-policy/reporting/legacy-image-formats-reporting.html.ini b/testing/web-platform/meta/feature-policy/reporting/legacy-image-formats-reporting.html.ini
new file mode 100644
index 000000000000..dab507ff7602
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/reporting/legacy-image-formats-reporting.html.ini
@@ -0,0 +1,5 @@
+[legacy-image-formats-reporting.html]
+ expected: TIMEOUT
+ [Unsized-media Report Format]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/feature-policy/reporting/unoptimized-images-reporting.html.ini b/testing/web-platform/meta/feature-policy/reporting/unoptimized-images-reporting.html.ini
new file mode 100644
index 000000000000..4fff6832567e
--- /dev/null
+++ b/testing/web-platform/meta/feature-policy/reporting/unoptimized-images-reporting.html.ini
@@ -0,0 +1,5 @@
+[unoptimized-images-reporting.html]
+ expected: TIMEOUT
+ [unoptimized-images Report Format]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/fetch/api/cors/__dir__.ini b/testing/web-platform/meta/fetch/api/cors/__dir__.ini
index 8e88d68a5d5c..3dfa2e56792f 100644
--- a/testing/web-platform/meta/fetch/api/cors/__dir__.ini
+++ b/testing/web-platform/meta/fetch/api/cors/__dir__.ini
@@ -1,2 +1,2 @@
-lsan-allowed: [Alloc, Create, EntrySlotOrCreate, FetchDriverObserver, Malloc, NewPage, Realloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::alloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::realloc, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::ThrottledEventQueue::Create, mozilla::dom::ChromeUtils::GenerateQI, mozilla::dom::InternalRequest::GetRequestConstructorCopy, mozilla::dom::Performance::CreateForMainThread, mozilla::dom::PerformanceMainThread::CreateNavigationTimingEntry, mozilla::dom::PerformanceStorageWorker::Create, mozilla::dom::PromiseWorkerProxy::Create, mozilla::dom::WorkerCSPEventListener::Create, mozilla::dom::WorkerFetchResolver::Create, mozilla::net::nsStandardURL::TemplatedMutator]
+lsan-allowed: [Alloc, Create, EntrySlotOrCreate, FetchDriverObserver, Malloc, NewPage, Realloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::alloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::realloc, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::ThrottledEventQueue::Create, mozilla::dom::ChromeUtils::GenerateQI, mozilla::dom::InternalRequest::GetRequestConstructorCopy, mozilla::dom::Performance::CreateForMainThread, mozilla::dom::PerformanceMainThread::CreateNavigationTimingEntry, mozilla::dom::PerformanceStorageWorker::Create, mozilla::dom::PromiseWorkerProxy::Create, mozilla::dom::WorkerCSPEventListener::Create, mozilla::dom::WorkerFetchResolver::Create, mozilla::net::nsStandardURL::TemplatedMutator, std::sys::unix::alloc::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$std..alloc..System$GT$::alloc, std::sys::unix::alloc::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$std..alloc..System$GT$::realloc]
leak-threshold: [tab:307200]
diff --git a/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.any.js.ini b/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.any.js.ini
index 4e3b8aca90a0..c6ad5b558690 100644
--- a/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.any.js.ini
+++ b/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.any.js.ini
@@ -17,6 +17,9 @@
[Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
expected: FAIL
+ [Cross-scheme (HTTP to HTTPS) no-cors fetch to a same-site URL with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
[fetch.any.html]
[Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
@@ -37,6 +40,9 @@
[Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
expected: FAIL
+ [Cross-scheme (HTTP to HTTPS) no-cors fetch to a same-site URL with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
[fetch.any.serviceworker.html]
[Valid cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
@@ -77,3 +83,6 @@
[Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
expected: FAIL
+ [Cross-scheme (HTTP to HTTPS) no-cors fetch to a same-site URL with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.https.any.js.ini b/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.https.any.js.ini
new file mode 100644
index 000000000000..13a8e6e0db1a
--- /dev/null
+++ b/testing/web-platform/meta/fetch/cross-origin-resource-policy/fetch.https.any.js.ini
@@ -0,0 +1,55 @@
+[fetch.https.any.html]
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a redirection.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
+
+[fetch.https.any.worker.html]
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a redirection.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
+
+[fetch.https.any.sharedworker.html]
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a redirection.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
+
+[fetch.https.any.serviceworker.html]
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a redirection.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
+ expected: FAIL
+
+ [Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/fetch/http-cache/post-patch.html.ini b/testing/web-platform/meta/fetch/http-cache/post-patch.html.ini
new file mode 100644
index 000000000000..4e150db256a8
--- /dev/null
+++ b/testing/web-platform/meta/fetch/http-cache/post-patch.html.ini
@@ -0,0 +1,7 @@
+[post-patch.html]
+ [HTTP cache uses content after POST request with response containing Content-Location and cache-allowing header]
+ expected: FAIL
+
+ [HTTP cache uses content after PATCH request with response containing Content-Location and cache-allowing header]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/fetch/stale-while-revalidate/stale-css.tentative.html.ini b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-css.tentative.html.ini
new file mode 100644
index 000000000000..1c8951b7a672
--- /dev/null
+++ b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-css.tentative.html.ini
@@ -0,0 +1,5 @@
+[stale-css.tentative.html]
+ expected: ERROR
+ [Cache returns stale resource]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/fetch/stale-while-revalidate/stale-image.tentative.html.ini b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-image.tentative.html.ini
new file mode 100644
index 000000000000..3cafa2962f47
--- /dev/null
+++ b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-image.tentative.html.ini
@@ -0,0 +1,5 @@
+[stale-image.tentative.html]
+ expected: ERROR
+ [Cache returns stale resource]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/fetch/stale-while-revalidate/stale-script.tentative.html.ini b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-script.tentative.html.ini
new file mode 100644
index 000000000000..ee451fc9a4d5
--- /dev/null
+++ b/testing/web-platform/meta/fetch/stale-while-revalidate/stale-script.tentative.html.ini
@@ -0,0 +1,4 @@
+[stale-script.tentative.html]
+ [Cache returns stale resource]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/geolocation-sensor/GeolocationSensor-supported-by-feature-policy.html.ini b/testing/web-platform/meta/geolocation-sensor/GeolocationSensor-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..d4d1b0b56e5b
--- /dev/null
+++ b/testing/web-platform/meta/geolocation-sensor/GeolocationSensor-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[GeolocationSensor-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise geolocation.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/gyroscope/Gyroscope-supported-by-feature-policy.html.ini b/testing/web-platform/meta/gyroscope/Gyroscope-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..0bdc6911ced7
--- /dev/null
+++ b/testing/web-platform/meta/gyroscope/Gyroscope-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[Gyroscope-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise gyroscope.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/dom/interfaces.https.html.ini b/testing/web-platform/meta/html/dom/interfaces.https.html.ini
index 55623514d367..f5dc45165287 100644
--- a/testing/web-platform/meta/html/dom/interfaces.https.html.ini
+++ b/testing/web-platform/meta/html/dom/interfaces.https.html.ini
@@ -381,6 +381,31 @@
if nightly_build: FAIL
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1510437
+ [Window interface: attribute onformdata]
+ expected: FAIL
+
+ [Window interface: window must inherit property "onformdata" with the proper type]
+ expected: FAIL
+
+ [Document interface: new Document() must inherit property "onformdata" with the proper type]
+ expected: FAIL
+
+ [Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type]
+ expected: FAIL
+
+ [Document interface: attribute onformdata]
+ expected: FAIL
+
+ [Window interface: window must inherit property "queueMicrotask(VoidFunction)" with the proper type]
+ expected: FAIL
+
+ [Window interface: calling queueMicrotask(VoidFunction) on window with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Window interface: operation queueMicrotask(VoidFunction)]
+ expected: FAIL
+
+
[interfaces.https.html?include=HTML.*]
[HTMLAllCollection must be primary interface of document.all]
expected: FAIL
@@ -658,6 +683,24 @@
[HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunload" with the proper type]
disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1505149
+ [HTMLElement interface: attribute onformdata]
+ expected: FAIL
+
+ [HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type]
+ expected: FAIL
+
+ [HTMLElement interface: document.createElement("noscript") must inherit property "autocapitalize" with the proper type]
+ expected: FAIL
+
+ [HTMLElement interface: attribute enterKeyHint]
+ expected: FAIL
+
+ [HTMLElement interface: document.createElement("noscript") must inherit property "enterKeyHint" with the proper type]
+ expected: FAIL
+
+ [HTMLElement interface: attribute autocapitalize]
+ expected: FAIL
+
[interfaces.https.html?exclude=(Document|Window|HTML.*)]
[AudioTrackList interface: existence and properties of interface object]
@@ -1296,3 +1339,87 @@
[ImageData interface: new ImageData(10, 10) must inherit property "data" with the proper type]
expected: FAIL
+ [FormDataEvent interface object name]
+ expected: FAIL
+
+ [FormDataEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [FormDataEvent interface: attribute formData]
+ expected: FAIL
+
+ [Stringification of new FormDataEvent("formdata", { formData: new FormData() })]
+ expected: FAIL
+
+ [FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type]
+ expected: FAIL
+
+ [FormDataEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [FormDataEvent interface object length]
+ expected: FAIL
+
+ [FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })]
+ expected: FAIL
+
+ [FormDataEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)]
+ expected: FAIL
+
+ [CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getContextAttributes()" with the proper type]
+ expected: FAIL
+
+ [External interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [External must be primary interface of window.external]
+ expected: FAIL
+
+ [CanvasRenderingContext2D interface: operation getContextAttributes()]
+ expected: FAIL
+
+ [External interface object name]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute direction]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute textAlign]
+ expected: FAIL
+
+ [External interface: operation AddSearchProvider()]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute font]
+ expected: FAIL
+
+ [External interface: operation IsSearchProviderInstalled()]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
+ expected: FAIL
+
+ [External interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [External interface: existence and properties of interface object]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute textBaseline]
+ expected: FAIL
+
+ [External interface object length]
+ expected: FAIL
+
+ [External interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/dom/interfaces.worker.js.ini b/testing/web-platform/meta/html/dom/interfaces.worker.js.ini
index 12dd18a6c7a1..35a46e9009e1 100644
--- a/testing/web-platform/meta/html/dom/interfaces.worker.js.ini
+++ b/testing/web-platform/meta/html/dom/interfaces.worker.js.ini
@@ -428,3 +428,129 @@
[Test driver]
expected: FAIL
+ [OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)]
+ expected: FAIL
+
+ [PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
+ expected: FAIL
+
+ [TextMetrics interface object length]
+ expected: FAIL
+
+ [TextMetrics interface: attribute emHeightAscent]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [TextMetrics interface: attribute ideographicBaseline]
+ expected: FAIL
+
+ [WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)]
+ expected: FAIL
+
+ [TextMetrics interface: attribute actualBoundingBoxAscent]
+ expected: FAIL
+
+ [CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [TextMetrics interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type]
+ expected: FAIL
+
+ [SharedWorker interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [TextMetrics interface: attribute emHeightDescent]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute direction]
+ expected: FAIL
+
+ [TextMetrics interface: attribute actualBoundingBoxDescent]
+ expected: FAIL
+
+ [TextMetrics interface: attribute actualBoundingBoxLeft]
+ expected: FAIL
+
+ [TextMetrics interface: existence and properties of interface object]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute font]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [TextMetrics interface: attribute hangingBaseline]
+ expected: FAIL
+
+ [TextMetrics interface: attribute width]
+ expected: FAIL
+
+ [Path2D interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [TextMetrics interface: attribute actualBoundingBoxRight]
+ expected: FAIL
+
+ [TextMetrics interface: attribute fontBoundingBoxAscent]
+ expected: FAIL
+
+ [TextMetrics interface: attribute alphabeticBaseline]
+ expected: FAIL
+
+ [TextMetrics interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [TextMetrics interface: attribute fontBoundingBoxDescent]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute textBaseline]
+ expected: FAIL
+
+ [OffscreenCanvasRenderingContext2D interface: attribute textAlign]
+ expected: FAIL
+
+ [TextMetrics interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type]
+ expected: FAIL
+
+ [OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, any)]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)]
+ expected: FAIL
+
+ [DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)]
+ expected: FAIL
+
+ [OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [TextMetrics interface object name]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/rendering/non-replaced-elements/tables/table-attribute.html.ini b/testing/web-platform/meta/html/rendering/non-replaced-elements/tables/table-attribute.html.ini
new file mode 100644
index 000000000000..7dd09036a9ea
--- /dev/null
+++ b/testing/web-platform/meta/html/rendering/non-replaced-elements/tables/table-attribute.html.ini
@@ -0,0 +1,79 @@
+[table-attribute.html]
+ [table td align attribute left is correct]
+ expected: FAIL
+
+ [table tfoot align attribute center is correct]
+ expected: FAIL
+
+ [table th align attribute middle is correct]
+ expected: FAIL
+
+ [table thead align attribute right is correct]
+ expected: FAIL
+
+ [table thead align attribute middle is correct]
+ expected: FAIL
+
+ [table tr align attribute center is correct]
+ expected: FAIL
+
+ [table th align attribute left is correct]
+ expected: FAIL
+
+ [table tbody align attribute right is correct]
+ expected: FAIL
+
+ [table thead align attribute left is correct]
+ expected: FAIL
+
+ [table th align attribute center is correct]
+ expected: FAIL
+
+ [table td align attribute center is correct]
+ expected: FAIL
+
+ [table tr align attribute middle is correct]
+ expected: FAIL
+
+ [table tfoot align attribute middle is correct]
+ expected: FAIL
+
+ [table bordercolor attribute is correct]
+ expected: FAIL
+
+ [table th align attribute right is correct]
+ expected: FAIL
+
+ [table cellpadding attribute is correct]
+ expected: FAIL
+
+ [table tr align attribute left is correct]
+ expected: FAIL
+
+ [table td align attribute right is correct]
+ expected: FAIL
+
+ [table tfoot align attribute left is correct]
+ expected: FAIL
+
+ [table tfoot align attribute right is correct]
+ expected: FAIL
+
+ [table thead align attribute center is correct]
+ expected: FAIL
+
+ [table tbody align attribute middle is correct]
+ expected: FAIL
+
+ [table tbody align attribute left is correct]
+ expected: FAIL
+
+ [table tbody align attribute center is correct]
+ expected: FAIL
+
+ [table td align attribute middle is correct]
+ expected: FAIL
+
+ [table tr align attribute right is correct]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/document-metadata/the-link-element/stylesheet-not-removed-until-next-stylesheet-loads.html.ini b/testing/web-platform/meta/html/semantics/document-metadata/the-link-element/stylesheet-not-removed-until-next-stylesheet-loads.html.ini
new file mode 100644
index 000000000000..49e7050b6d2e
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/document-metadata/the-link-element/stylesheet-not-removed-until-next-stylesheet-loads.html.ini
@@ -0,0 +1,4 @@
+[stylesheet-not-removed-until-next-stylesheet-loads.html]
+ [Check that a style sheet loaded by a is available until its successor is loaded]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/embedded-content/media-elements/autoplay-supported-by-feature-policy.html.ini b/testing/web-platform/meta/html/semantics/embedded-content/media-elements/autoplay-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..41e9161e0c22
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/embedded-content/media-elements/autoplay-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[autoplay-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise autoplay.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/embedded-content/media-elements/video_loop_base.html.ini~e0ac563c0260... Update metadata b/testing/web-platform/meta/html/semantics/embedded-content/media-elements/video_loop_base.html.ini~e0ac563c0260... Update metadata
deleted file mode 100644
index 0027101fa879..000000000000
--- a/testing/web-platform/meta/html/semantics/embedded-content/media-elements/video_loop_base.html.ini~e0ac563c0260... Update metadata
+++ /dev/null
@@ -1,3 +0,0 @@
-[video_loop_base.html]
- expected:
- if (os == "linux") and not debug and webrender: CRASH
diff --git a/testing/web-platform/meta/html/semantics/forms/form-submission-0/FormDataEvent.window.js.ini b/testing/web-platform/meta/html/semantics/forms/form-submission-0/FormDataEvent.window.js.ini
new file mode 100644
index 000000000000..73c78e8da193
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/forms/form-submission-0/FormDataEvent.window.js.ini
@@ -0,0 +1,7 @@
+[FormDataEvent.window.html]
+ [Successful FormDataEvent constructor]
+ expected: FAIL
+
+ [Failing FormDataEvent constructor]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini b/testing/web-platform/meta/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini
new file mode 100644
index 000000000000..7b8dd782e23b
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini
@@ -0,0 +1,13 @@
+[constructing-form-data-set.html]
+ [Entries added to "formData" IDL attribute should be submitted.]
+ expected: FAIL
+
+ ["formData" IDL attribute should have entries for form-associated elements in the first event handler, and the second handler can read entries set by the first handler.]
+ expected: FAIL
+
+ ["formdata" event bubbles, and is not cancelable.]
+ expected: FAIL
+
+ ["formdata" event bubbles in an orphan tree.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/testing/web-platform/meta/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
new file mode 100644
index 000000000000..c26f0be3d27d
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
@@ -0,0 +1,7 @@
+[form-submission-algorithm.html]
+ [Cannot navigate (after constructing the entry list)]
+ expected: FAIL
+
+ [If constructing entry list flag of form is true, then return]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/semantics/selectors/pseudo-classes/link.html.ini b/testing/web-platform/meta/html/semantics/selectors/pseudo-classes/link.html.ini
deleted file mode 100644
index bcca007d37a9..000000000000
--- a/testing/web-platform/meta/html/semantics/selectors/pseudo-classes/link.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[link.html]
- [Only s, s and s that have a href attribute match ':link']
- expected: FAIL
-
- [':link' doesn't match elements whos href attribute has been removed]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/html/syntax/parsing/__dir__.ini b/testing/web-platform/meta/html/syntax/parsing/__dir__.ini
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/compile-event-handler-lexical-scopes.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/compile-event-handler-lexical-scopes.html.ini
new file mode 100644
index 000000000000..07fcdc86d247
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/compile-event-handler-lexical-scopes.html.ini
@@ -0,0 +1,13 @@
+[compile-event-handler-lexical-scopes.html]
+ [The EventHandler is an element's event handler and has no form owner.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [The EventHandler is an element's event handler and has a form owner.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [The EventHandler is not an element's event handler (i.e. Window's event handler) and has no form owner.]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini
index 6c550cf08f7c..66f194ecefaa 100644
--- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini
@@ -35,3 +35,15 @@
[onsecuritypolicyviolation: the content attribute must execute when an event is dispatched]
expected: FAIL
+ [onformdata: the content attribute must execute when an event is dispatched]
+ expected: FAIL
+
+ [onformdata: the content attribute must be compiled into a function as the corresponding property]
+ expected: FAIL
+
+ [onformdata: must be on the appropriate locations for GlobalEventHandlers]
+ expected: FAIL
+
+ [onformdata: the default value must be null]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini
index 902c075af236..af6ed524fc83 100644
--- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini
@@ -134,4 +134,12 @@
if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ [not shadowed formdata (window)]
+ expected: FAIL
+
+ [not shadowed formdata (document.body)]
+ expected: FAIL
+
+ [not shadowed formdata (document.createElement("body"))]
+ expected: FAIL
diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini
index 8e58ff4e584b..6197778eff79 100644
--- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini
@@ -101,4 +101,12 @@
if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ [not shadowed formdata (document.body)]
+ expected: FAIL
+
+ [not shadowed formdata (document.createElement("frameset"))]
+ expected: FAIL
+
+ [not shadowed formdata (window)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini
index 61a54defff59..f3c91c54a274 100644
--- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini
@@ -41,3 +41,9 @@
[securitypolicyviolation is unaffected on a windowless frameset]
expected: FAIL
+ [formdata is unaffected on a windowless frameset]
+ expected: FAIL
+
+ [formdata is unaffected on a windowless body]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/idle-detection/basics.tentative.https.any.js.ini b/testing/web-platform/meta/idle-detection/basics.tentative.https.any.js.ini
new file mode 100644
index 000000000000..bba50329c649
--- /dev/null
+++ b/testing/web-platform/meta/idle-detection/basics.tentative.https.any.js.ini
@@ -0,0 +1,51 @@
+[basics.tentative.https.any.html]
+ [query() throws with invalid threshold (null)]
+ expected: FAIL
+
+ [query() uses a default value for the threshold when none is passed]
+ expected: FAIL
+
+ [query() uses threshold property]
+ expected: FAIL
+
+ [query() throws with invalid threshold (-1)]
+ expected: FAIL
+
+ [query() basics]
+ expected: FAIL
+
+ [query() uses a default value for the threshold]
+ expected: FAIL
+
+ [query() throws with invalid threshold (NaN)]
+ expected: FAIL
+
+ [query() throws with invalid threshold (0)]
+ expected: FAIL
+
+
+[basics.tentative.https.any.worker.html]
+ [query() throws with invalid threshold (null)]
+ expected: FAIL
+
+ [query() uses a default value for the threshold when none is passed]
+ expected: FAIL
+
+ [query() uses threshold property]
+ expected: FAIL
+
+ [query() throws with invalid threshold (-1)]
+ expected: FAIL
+
+ [query() basics]
+ expected: FAIL
+
+ [query() uses a default value for the threshold]
+ expected: FAIL
+
+ [query() throws with invalid threshold (NaN)]
+ expected: FAIL
+
+ [query() throws with invalid threshold (0)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/idle-detection/idlharness.https.any.js.ini b/testing/web-platform/meta/idle-detection/idlharness.https.any.js.ini
new file mode 100644
index 000000000000..ab4889268c1e
--- /dev/null
+++ b/testing/web-platform/meta/idle-detection/idlharness.https.any.js.ini
@@ -0,0 +1,9 @@
+[idlharness.https.any.worker.html]
+ [Test IDL implementation of Idle Detection API]
+ expected: FAIL
+
+
+[idlharness.https.any.html]
+ [Test IDL implementation of Idle Detection API]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/intersection-observer/root-margin.html.ini b/testing/web-platform/meta/intersection-observer/root-margin.html.ini
index fc4cadd78145..c4339c818a83 100644
--- a/testing/web-platform/meta/intersection-observer/root-margin.html.ini
+++ b/testing/web-platform/meta/intersection-observer/root-margin.html.ini
@@ -15,3 +15,7 @@
expected:
if os == "android": FAIL
+ [document.scrollingElement.scrollTop = document.documentElement.clientHeight + 200]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
diff --git a/testing/web-platform/meta/kv-storage/api-surface.https.html.ini b/testing/web-platform/meta/kv-storage/api-surface.https.html.ini
new file mode 100644
index 000000000000..e6048e42a510
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/api-surface.https.html.ini
@@ -0,0 +1,2 @@
+[api-surface.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/cause-errors-via-idb.https.html.ini b/testing/web-platform/meta/kv-storage/cause-errors-via-idb.https.html.ini
new file mode 100644
index 000000000000..899e2dc44ab1
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/cause-errors-via-idb.https.html.ini
@@ -0,0 +1,2 @@
+[cause-errors-via-idb.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/entries.https.html.ini b/testing/web-platform/meta/kv-storage/entries.https.html.ini
new file mode 100644
index 000000000000..fdbbd5e4db22
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/entries.https.html.ini
@@ -0,0 +1,2 @@
+[entries.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/key-types.https.html.ini b/testing/web-platform/meta/kv-storage/key-types.https.html.ini
new file mode 100644
index 000000000000..129cb6095c6f
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/key-types.https.html.ini
@@ -0,0 +1,2 @@
+[key-types.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/keys-values-entries.https.html.ini b/testing/web-platform/meta/kv-storage/keys-values-entries.https.html.ini
new file mode 100644
index 000000000000..33ef1ab5b213
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/keys-values-entries.https.html.ini
@@ -0,0 +1,2 @@
+[keys-values-entries.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/keys.https.html.ini b/testing/web-platform/meta/kv-storage/keys.https.html.ini
new file mode 100644
index 000000000000..a393d5f4767a
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/keys.https.html.ini
@@ -0,0 +1,2 @@
+[keys.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/non-secure-context-dynamic-import.html.ini b/testing/web-platform/meta/kv-storage/non-secure-context-dynamic-import.html.ini
new file mode 100644
index 000000000000..db0a8f57e446
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/non-secure-context-dynamic-import.html.ini
@@ -0,0 +1,4 @@
+[non-secure-context-dynamic-import.html]
+ [KV Storage: should not work in non-secure contexts when included via import()]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/kv-storage/non-secure-context-import-statement.html.ini b/testing/web-platform/meta/kv-storage/non-secure-context-import-statement.html.ini
new file mode 100644
index 000000000000..d57ce188791f
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/non-secure-context-import-statement.html.ini
@@ -0,0 +1,5 @@
+[non-secure-context-import-statement.html]
+ expected: TIMEOUT
+ [KV Storage: should not work in non-secure contexts when included via an import statement]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/kv-storage/non-secure-context-script-element.html.ini b/testing/web-platform/meta/kv-storage/non-secure-context-script-element.html.ini
new file mode 100644
index 000000000000..de64176062ff
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/non-secure-context-script-element.html.ini
@@ -0,0 +1,5 @@
+[non-secure-context-script-element.html]
+ expected: TIMEOUT
+ [KV Storage: should not work in non-secure contexts when included via a script element]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/kv-storage/storage-smoke-test.https.html.ini b/testing/web-platform/meta/kv-storage/storage-smoke-test.https.html.ini
new file mode 100644
index 000000000000..40847320c46c
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/storage-smoke-test.https.html.ini
@@ -0,0 +1,2 @@
+[storage-smoke-test.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/undefined-value.https.html.ini b/testing/web-platform/meta/kv-storage/undefined-value.https.html.ini
new file mode 100644
index 000000000000..8c875aec20ac
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/undefined-value.https.html.ini
@@ -0,0 +1,2 @@
+[undefined-value.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/kv-storage/values.https.html.ini b/testing/web-platform/meta/kv-storage/values.https.html.ini
new file mode 100644
index 000000000000..6a0776e606bb
--- /dev/null
+++ b/testing/web-platform/meta/kv-storage/values.https.html.ini
@@ -0,0 +1,2 @@
+[values.https.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/magnetometer/Magnetometer-supported-by-feature-policy.html.ini b/testing/web-platform/meta/magnetometer/Magnetometer-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..d724359d197a
--- /dev/null
+++ b/testing/web-platform/meta/magnetometer/Magnetometer-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[Magnetometer-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise magnetometer.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mediacapture-record/MediaRecorder-creation.https.html.ini b/testing/web-platform/meta/mediacapture-record/MediaRecorder-creation.https.html.ini
new file mode 100644
index 000000000000..983b8299ee8d
--- /dev/null
+++ b/testing/web-platform/meta/mediacapture-record/MediaRecorder-creation.https.html.ini
@@ -0,0 +1,10 @@
+[MediaRecorder-creation.https.html]
+ [Video+Audio MediaRecorder]
+ expected: FAIL
+
+ [Video-only MediaRecorder]
+ expected: FAIL
+
+ [Audio-only MediaRecorder]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mediacapture-record/MediaRecorder-detached-context.html.ini b/testing/web-platform/meta/mediacapture-record/MediaRecorder-detached-context.html.ini
new file mode 100644
index 000000000000..76921fa82544
--- /dev/null
+++ b/testing/web-platform/meta/mediacapture-record/MediaRecorder-detached-context.html.ini
@@ -0,0 +1,4 @@
+[MediaRecorder-detached-context.html]
+ [MediaRecorder creation with detached context]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mediacapture-record/MediaRecorder-disabled-tracks.https.html.ini b/testing/web-platform/meta/mediacapture-record/MediaRecorder-disabled-tracks.https.html.ini
new file mode 100644
index 000000000000..be5a714951ea
--- /dev/null
+++ b/testing/web-platform/meta/mediacapture-record/MediaRecorder-disabled-tracks.https.html.ini
@@ -0,0 +1,10 @@
+[MediaRecorder-disabled-tracks.https.html]
+ [audio-video]
+ expected: FAIL
+
+ [video-only]
+ expected: FAIL
+
+ [audio-only]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mediacapture-record/MediaRecorder-events-and-exceptions.html.ini b/testing/web-platform/meta/mediacapture-record/MediaRecorder-events-and-exceptions.html.ini
new file mode 100644
index 000000000000..e81b7344a5a0
--- /dev/null
+++ b/testing/web-platform/meta/mediacapture-record/MediaRecorder-events-and-exceptions.html.ini
@@ -0,0 +1,4 @@
+[MediaRecorder-events-and-exceptions.html]
+ [MediaRecorder events and exceptions]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mediacapture-streams/MediaStream-supported-by-feature-policy.html.ini b/testing/web-platform/meta/mediacapture-streams/MediaStream-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..ce475a2b1413
--- /dev/null
+++ b/testing/web-platform/meta/mediacapture-streams/MediaStream-supported-by-feature-policy.html.ini
@@ -0,0 +1,7 @@
+[MediaStream-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise microphone.]
+ expected: FAIL
+
+ [document.featurePolicy.features should advertise camera.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/mozilla-sync b/testing/web-platform/meta/mozilla-sync
index 3fadcafb245f..e1548ae0a7ca 100644
--- a/testing/web-platform/meta/mozilla-sync
+++ b/testing/web-platform/meta/mozilla-sync
@@ -1,2 +1,2 @@
-local: 98affb33e20d59c431485e155552539fcb671bd8
-upstream: 8506febdb9bdce487ef7e4ff91e9b70853019b38
+local: 43e3aad0ad8f7bc99b03c1871e25193e9382aa7a
+upstream: 9c5701192b581208a028144cb0fc27e462541a49
diff --git a/testing/web-platform/meta/payment-handler/__dir__.ini b/testing/web-platform/meta/payment-handler/__dir__.ini
index 32ab257be4a3..66bddb027bbb 100644
--- a/testing/web-platform/meta/payment-handler/__dir__.ini
+++ b/testing/web-platform/meta/payment-handler/__dir__.ini
@@ -1,5 +1,5 @@
prefs: [dom.payments.request.enabled:true]
disabled:
if not nightly_build: https://bugzilla.mozilla.org/show_bug.cgi?id=1495301
-lsan-allowed: [Alloc, CompareNetwork, EntrySlotOrCreate, MakeUnique, Malloc, NS_NewLoadGroup, NewChannelFromURIWithProxyFlagsInternal, NewPage, PLDHashTable::Add, Realloc, mozilla::dom::cache::CacheOpChild::Recv__delete__, mozilla::dom::serviceWorkerScriptCache::, mozilla::net::HttpBaseChannel::HttpBaseChannel, mozilla::net::HttpChannelChild::HttpChannelChild, mozilla::net::nsHttpHandler::NewProxiedChannel2, mozilla::net::nsStandardURL::TemplatedMutator]
+lsan-allowed: [Alloc, CompareNetwork, EntrySlotOrCreate, MakeUnique, Malloc, NS_NewLoadGroup, NewChannelFromURIWithProxyFlagsInternal, NewPage, PLDHashTable::Add, Realloc, js::Call, mozilla::dom::NativeHandlerCallback, mozilla::dom::cache::CacheOpChild::Recv__delete__, mozilla::dom::serviceWorkerScriptCache::, mozilla::net::HttpBaseChannel::HttpBaseChannel, mozilla::net::HttpChannelChild::HttpChannelChild, mozilla::net::nsHttpHandler::NewProxiedChannel2, mozilla::net::nsStandardURL::TemplatedMutator]
leak-threshold: [tab:51200]
diff --git a/testing/web-platform/meta/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.html.ini b/testing/web-platform/meta/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.html.ini
index 185ff5f2b57e..12afe189a063 100644
--- a/testing/web-platform/meta/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.html.ini
+++ b/testing/web-platform/meta/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.html.ini
@@ -9,9 +9,8 @@
[object]
expected:
- if not e10s: FAIL
+ if (os == "linux") and debug and not webrender and not e10s: "FAIL"
[embed]
expected:
if not e10s: FAIL
-
diff --git a/testing/web-platform/meta/payment-request/historical.https.html.ini b/testing/web-platform/meta/payment-request/historical.https.html.ini
index 1134f2f75bdb..84fdc262d29e 100644
--- a/testing/web-platform/meta/payment-request/historical.https.html.ini
+++ b/testing/web-platform/meta/payment-request/historical.https.html.ini
@@ -31,3 +31,6 @@
expected:
if not e10s: FAIL
+ [regionCode in PaymentAddress]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/payment-request/payment-is-showing.https.html.ini b/testing/web-platform/meta/payment-request/payment-is-showing.https.html.ini
new file mode 100644
index 000000000000..a15ecedc374c
--- /dev/null
+++ b/testing/web-platform/meta/payment-request/payment-is-showing.https.html.ini
@@ -0,0 +1,65 @@
+[payment-is-showing.https.html]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): OK
+ TIMEOUT
+ [Simple payment-relevant browsing context's payment request is showing boolean is true]
+ expected: FAIL
+
+ [Navigating an nested browsing context sets 'payment request is showing boolean' back to false]
+ expected: FAIL
+
+ [Given multiple nested browsing contexts, and an iframe calls show() first, other nested browsing contexts can't show a request.]
+ expected:
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ FAIL
+
+ [Using a popup window prevents the top-browsing context from showing a payment request]
+ expected: FAIL
+
+ [An iframe cannot show a payment request if the top-level window is already showing one.]
+ expected: FAIL
+
+ [Given multiple nested browsing contexts, and popup calls show() first, other nested browsing contexts can't show a request.]
+ expected: FAIL
+
+ [The top browsing context can only show one payment sheet at a time.]
+ expected: FAIL
+
+ [Navigating an iframe as a nested browsing context sets 'payment request is showing boolean' to false.]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): TIMEOUT
+ FAIL
+
+ [Given multiple nested browsing contexts, and window calls show() first, other nested browsing contexts can't show a request.]
+ expected: FAIL
+
+ [If an iframe shows a payment request, the top-level browsing context can't also show one.]
+ expected: FAIL
+
+ [Navigating a popup as a nested browsing context sets 'payment request is showing boolean' to false.]
+ expected:
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): NOTRUN
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): NOTRUN
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): NOTRUN
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): NOTRUN
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): NOTRUN
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): NOTRUN
+ FAIL
+
diff --git a/testing/web-platform/meta/performance-timeline/idlharness.any.js.ini b/testing/web-platform/meta/performance-timeline/idlharness.any.js.ini
index 0d675cb553f6..cc9f00f5c550 100644
--- a/testing/web-platform/meta/performance-timeline/idlharness.any.js.ini
+++ b/testing/web-platform/meta/performance-timeline/idlharness.any.js.ini
@@ -5,18 +5,54 @@
[PerformanceObserver interface: attribute supportedEntryTypes]
expected: FAIL
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
[idlharness.any.sharedworker.html]
[PerformanceObserver interface: attribute supportedEntryTypes]
expected: FAIL
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
[idlharness.any.html]
[PerformanceObserver interface: attribute supportedEntryTypes]
expected: FAIL
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
[idlharness.any.worker.html]
[PerformanceObserver interface: attribute supportedEntryTypes]
expected: FAIL
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/picture-in-picture/idlharness.window.js.ini b/testing/web-platform/meta/picture-in-picture/idlharness.window.js.ini
index 3dfb3609d11a..d50c5e656a8b 100644
--- a/testing/web-platform/meta/picture-in-picture/idlharness.window.js.ini
+++ b/testing/web-platform/meta/picture-in-picture/idlharness.window.js.ini
@@ -116,3 +116,9 @@
[HTMLVideoElement interface: video must inherit property "requestPictureInPicture()" with the proper type]
expected: FAIL
+ [HTMLVideoElement interface: attribute autoPictureInPicture]
+ expected: FAIL
+
+ [HTMLVideoElement interface: video must inherit property "autoPictureInPicture" with the proper type]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers.html.ini
new file mode 100644
index 000000000000..e1f7f0414cf1
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers.html.ini
@@ -0,0 +1,8 @@
+[pointerevent_boundary_events_at_implicit_release_hoverable_pointers.html]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
+ [mouse Event sequence at implicit release on click]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): NOTRUN
+ FAIL
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_click_during_capture.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_click_during_capture.html.ini
new file mode 100644
index 000000000000..c2ac6af5f7ed
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_click_during_capture.html.ini
@@ -0,0 +1,6 @@
+[pointerevent_click_during_capture.html]
+ expected:
+ if os == "android": "ERROR"
+ [mouse click target during capture]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html.ini
new file mode 100644
index 000000000000..7f9ab5cc6e2d
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_lostpointercapture_for_disconnected_node.html]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): ERROR
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_is_first.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_is_first.html.ini
new file mode 100644
index 000000000000..38542190e490
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_lostpointercapture_is_first.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_lostpointercapture_is_first.html]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): ERROR
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerenter_does_not_bubble.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerenter_does_not_bubble.html.ini
new file mode 100644
index 000000000000..323dae42a123
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerenter_does_not_bubble.html.ini
@@ -0,0 +1,25 @@
+[pointerevent_pointerenter_does_not_bubble.html]
+ expected:
+ if os == "android": "TIMEOUT"
+ [ mouse pointerenter.fromElement value is null.]
+ expected: FAIL
+
+ [ mouse pointerenter.toElement attribute exists]
+ expected: FAIL
+
+ [ mouse pointerenter.toElement IDL type object (JS type was undefined)]
+ expected: FAIL
+
+ [ mouse pointerenter.fromElement IDL type object (JS type was undefined)]
+ expected: FAIL
+
+ [ mouse pointerenter.fromElement attribute exists]
+ expected: FAIL
+
+ [ mouse pointerenter.toElement value is null.]
+ expected: FAIL
+
+ [pointerEnter event does not bubble]
+ expected:
+ if os == "android": "NOTRUN"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendant_over.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendant_over.html.ini
new file mode 100644
index 000000000000..056ff1dc4d36
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendant_over.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_pointerleave_descendant_over.html]
+ expected:
+ if os == "android": "TIMEOUT"
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendants.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendants.html.ini
new file mode 100644
index 000000000000..2fc7acb0424c
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_descendants.html.ini
@@ -0,0 +1,7 @@
+[pointerevent_pointerleave_descendants.html]
+ expected:
+ if os == "android": "TIMEOUT"
+ [pointerleave event received]
+ expected:
+ if os == "android": "NOTRUN"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_does_not_bubble.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_does_not_bubble.html.ini
new file mode 100644
index 000000000000..45b8bd890fc7
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerleave_does_not_bubble.html.ini
@@ -0,0 +1,25 @@
+[pointerevent_pointerleave_does_not_bubble.html]
+ expected:
+ if os == "android": "TIMEOUT"
+ [ mouse pointerleave.toElement value is null.]
+ expected: FAIL
+
+ [ mouse pointerleave.fromElement value is null.]
+ expected: FAIL
+
+ [ mouse pointerleave.toElement attribute exists]
+ expected: FAIL
+
+ [ mouse pointerleave.fromElement attribute exists]
+ expected: FAIL
+
+ [ mouse pointerleave.fromElement IDL type object (JS type was undefined)]
+ expected: FAIL
+
+ [ mouse pointerleave.toElement IDL type object (JS type was undefined)]
+ expected: FAIL
+
+ [pointerLeave event does not bubble]
+ expected:
+ if os == "android": "NOTRUN"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerout_pen.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerout_pen.html.ini
new file mode 100644
index 000000000000..1f9c423db515
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerout_pen.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_pointerout_pen.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_pointerout_received_once.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_pointerout_received_once.html.ini
new file mode 100644
index 000000000000..43f8f0d289d1
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointerout_received_once.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_pointerout_received_once.html]
+ expected:
+ if os == "android": "TIMEOUT"
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_invalid_pointerid.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_invalid_pointerid.html.ini
new file mode 100644
index 000000000000..16a4139a952c
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_invalid_pointerid.html.ini
@@ -0,0 +1,10 @@
+[pointerevent_releasepointercapture_invalid_pointerid.html]
+ expected:
+ if os == "android": "TIMEOUT"
+ [releasePointerCapture: DOMException NotFoundError]
+ expected:
+ if os == "win": "FAIL"
+ if os == "android": "NOTRUN"
+ if os == "linux": "FAIL"
+ if os == "mac": "FAIL"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html.ini
new file mode 100644
index 000000000000..5cde8345ef5d
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_releasepointercapture_onpointerup_mouse.html]
+ expected:
+ if os == "android": "TIMEOUT"
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_disconnected.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_disconnected.html.ini
new file mode 100644
index 000000000000..7e1812ced98d
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_disconnected.html.ini
@@ -0,0 +1,7 @@
+[pointerevent_setpointercapture_disconnected.html]
+ expected:
+ if os == "android": "TIMEOUT"
+ [setPointerCapture: DOMException InvalidStateError]
+ expected:
+ if os == "android": "NOTRUN"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html.ini
new file mode 100644
index 000000000000..8e7dcf00ffc6
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html.ini
@@ -0,0 +1,8 @@
+[pointerevent_setpointercapture_invalid_pointerid.html]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
+ [setPointerCapture: DOMException NotFoundError]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): NOTRUN
+ FAIL
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_relatedtarget.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_relatedtarget.html.ini
new file mode 100644
index 000000000000..fa261ce32dd8
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_setpointercapture_relatedtarget.html.ini
@@ -0,0 +1,3 @@
+[pointerevent_setpointercapture_relatedtarget.html]
+ expected:
+ if os == "android": "ERROR"
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_click.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_click.html.ini
new file mode 100644
index 000000000000..6cfd3044f3fc
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_click.html.ini
@@ -0,0 +1,5 @@
+[pointerevent_suppress_compat_events_on_click.html]
+ [Event log]
+ expected:
+ if os == "android": "FAIL"
+
diff --git a/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html.ini b/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html.ini
new file mode 100644
index 000000000000..6d33994b6fd8
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html.ini
@@ -0,0 +1,7 @@
+[pointerevent_suppress_compat_events_on_drag_mouse.html]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): ERROR
+ [Event log]
+ expected:
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
diff --git a/testing/web-platform/meta/portals/portal-activate-event.html.ini b/testing/web-platform/meta/portals/portal-activate-event.html.ini
new file mode 100644
index 000000000000..f803deac4d20
--- /dev/null
+++ b/testing/web-platform/meta/portals/portal-activate-event.html.ini
@@ -0,0 +1,11 @@
+[portal-activate-event.html]
+ expected: TIMEOUT
+ [Tests that the PortalActivateEvent is dispatched when a portal is activated.]
+ expected: TIMEOUT
+
+ [Tests that the portalactivate event handler is dispatched when a portal is activated.]
+ expected: TIMEOUT
+
+ [Tests that the HTMLBodyElement has the portalactivate event handler.]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/portals/portals-host-null.html.ini b/testing/web-platform/meta/portals/portals-host-null.html.ini
new file mode 100644
index 000000000000..8f7cf8bfd87a
--- /dev/null
+++ b/testing/web-platform/meta/portals/portals-host-null.html.ini
@@ -0,0 +1,4 @@
+[portals-host-null.html]
+ [portals-host-null]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/portals/portals-no-referrer.html.ini b/testing/web-platform/meta/portals/portals-no-referrer.html.ini
new file mode 100644
index 000000000000..0ef665bc6481
--- /dev/null
+++ b/testing/web-platform/meta/portals/portals-no-referrer.html.ini
@@ -0,0 +1,4 @@
+[portals-no-referrer.html]
+ [portal contents should be loaded with no referrer]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/portals/portals-rendering.html.ini b/testing/web-platform/meta/portals/portals-rendering.html.ini
new file mode 100644
index 000000000000..a691bd7c0e66
--- /dev/null
+++ b/testing/web-platform/meta/portals/portals-rendering.html.ini
@@ -0,0 +1,2 @@
+[portals-rendering.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/quirks/line-height-in-list-item.tentative.html.ini b/testing/web-platform/meta/quirks/line-height-in-list-item.tentative.html.ini
new file mode 100644
index 000000000000..d7ad6098d4df
--- /dev/null
+++ b/testing/web-platform/meta/quirks/line-height-in-list-item.tentative.html.ini
@@ -0,0 +1,2 @@
+[line-height-in-list-item.tentative.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/referrer-policy/generic/iframe-inheritance.html.ini b/testing/web-platform/meta/referrer-policy/generic/iframe-inheritance.html.ini
index 72f948e79462..dae4704bef01 100644
--- a/testing/web-platform/meta/referrer-policy/generic/iframe-inheritance.html.ini
+++ b/testing/web-platform/meta/referrer-policy/generic/iframe-inheritance.html.ini
@@ -1,4 +1,5 @@
[iframe-inheritance.html]
+ expected: TIMEOUT
[iframes correctly inherit the ancestor's referrer]
- expected: FAIL
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html.ini b/testing/web-platform/meta/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html.ini
new file mode 100644
index 000000000000..f4089ce54d78
--- /dev/null
+++ b/testing/web-platform/meta/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html.ini
@@ -0,0 +1,8 @@
+[sandboxed-iframe-with-opaque-origin.html]
+ expected: TIMEOUT
+ [Sandboxed iframe with tuple origin sends referrers.]
+ expected: TIMEOUT
+
+ [Sandboxed iframe with opaque origin doesn't send referrers.]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/resource-timing/no-entries-for-cross-origin-css-fetched.sub.html.ini b/testing/web-platform/meta/resource-timing/no-entries-for-cross-origin-css-fetched.sub.html.ini
new file mode 100644
index 000000000000..246ce01389f3
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/no-entries-for-cross-origin-css-fetched.sub.html.ini
@@ -0,0 +1,4 @@
+[no-entries-for-cross-origin-css-fetched.sub.html]
+ [Make sure that resources fetched by cross origin CSS are not in the timeline.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/resource-timing/resource-timing.html.ini b/testing/web-platform/meta/resource-timing/resource-timing.html.ini
deleted file mode 100644
index 5873f9d06e9a..000000000000
--- a/testing/web-platform/meta/resource-timing/resource-timing.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[resource-timing.html]
- disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1290858
diff --git a/testing/web-platform/meta/resource-timing/resource_connection_reuse.https.html.ini b/testing/web-platform/meta/resource-timing/resource_connection_reuse.https.html.ini
new file mode 100644
index 000000000000..6d33348409a9
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/resource_connection_reuse.https.html.ini
@@ -0,0 +1,69 @@
+[resource_connection_reuse.https.html]
+ disabled: Bug 1523562
+
+ [domainLookupEnd and fetchStart should be the same]
+ expected:
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if (os == "win") and (version == "10.0.15063") and not debug: "FAIL"
+
+ [secureConnectStart and fetchStart should be the same]
+ expected: FAIL
+
+ [connectStart and fetchStart should be the same]
+ expected:
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if (os == "win") and (version == "10.0.15063") and not debug: "FAIL"
+
+ [domainLookupStart and fetchStart should be the same]
+ expected:
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if (os == "win") and (version == "10.0.15063") and not debug: "FAIL"
+
+ [connectEnd and fetchStart should be the same]
+ expected:
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if (os == "win") and (version == "10.0.15063") and not debug: "FAIL"
+
+ [secureConnectionStart and fetchStart should be the same]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content.html.ini b/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content.html.ini
new file mode 100644
index 000000000000..921fb79c74a8
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content.html.ini
@@ -0,0 +1,18 @@
+[resource_connection_reuse_mixed_content.html]
+ disabled: Bug 1523562
+
+ [secureConnectionStart and fetchStart should be the same]
+ expected: FAIL
+
+ [domainLookupEnd and fetchStart should be the same]
+ expected: FAIL
+
+ [connectStart and fetchStart should be the same]
+ expected: FAIL
+
+ [domainLookupStart and fetchStart should be the same]
+ expected: FAIL
+
+ [connectEnd and fetchStart should be the same]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content_redirect.html.ini b/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content_redirect.html.ini
new file mode 100644
index 000000000000..502d8e224fa7
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/resource_connection_reuse_mixed_content_redirect.html.ini
@@ -0,0 +1,17 @@
+[resource_connection_reuse_mixed_content_redirect.html]
+ disabled: Bug 1525025
+
+ [secureConnectionStart and fetchStart should be the same]
+ expected: FAIL
+
+ [domainLookupEnd and fetchStart should be the same]
+ expected: FAIL
+
+ [connectStart and fetchStart should be the same]
+ expected: FAIL
+
+ [domainLookupStart and fetchStart should be the same]
+ expected: FAIL
+
+ [connectEnd and fetchStart should be the same]
+ expected: FAIL
diff --git a/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini b/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
index ffe0c6dcd45a..eb6ff9f799c3 100644
--- a/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
+++ b/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
@@ -67,3 +67,7 @@
[http://web-platform.test:8000/resource-timing/resources/blue.png?id=picture-99x-img-srcset is not expected to be in the Resource Timing buffer]
expected:
if os == "android": FAIL
+
+ [Testing resource entries]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/resource-timing/resource_reparenting.html.ini b/testing/web-platform/meta/resource-timing/resource_reparenting.html.ini
index e5d647b4d84b..c21a795ef19e 100644
--- a/testing/web-platform/meta/resource-timing/resource_reparenting.html.ini
+++ b/testing/web-platform/meta/resource-timing/resource_reparenting.html.ini
@@ -2,3 +2,19 @@
[http://web-platform.test:8000/resource-timing/blue.png?id=move_to_child is not expected to be in the Resource Timing buffer]
expected: FAIL
+ [Testing resource entries]
+ expected:
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+ if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+ if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+ if os == "win": "FAIL"
+
diff --git a/testing/web-platform/meta/resource-timing/test_resource_timing.https.html.ini b/testing/web-platform/meta/resource-timing/test_resource_timing.https.html.ini
new file mode 100644
index 000000000000..dc12dd11500a
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/test_resource_timing.https.html.ini
@@ -0,0 +1,3 @@
+[test_resource_timing.https.html]
+ [PerformanceEntry has correct order of timing attributes (iframe)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/service-workers/service-worker/claim-fetch-with-appcache.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/claim-fetch-with-appcache.https.html.ini
new file mode 100644
index 000000000000..d6ca14b1a22b
--- /dev/null
+++ b/testing/web-platform/meta/service-workers/service-worker/claim-fetch-with-appcache.https.html.ini
@@ -0,0 +1,11 @@
+[claim-fetch-with-appcache.https.html]
+ [fetch() should be intercepted after the client is claimed.]
+ expected:
+ if (os == "linux") and debug and not webrender and e10s and not sw-e10s: FAIL
+ if (os == "linux") and debug and webrender: FAIL
+ if (os == "linux") and not debug: FAIL
+ if os == "win": FAIL
+ if os == "android": FAIL
+ if os == "mac": FAIL
+ if (os == "linux") and debug and not webrender and not e10s: "FAIL"
+
diff --git a/testing/web-platform/meta/service-workers/service-worker/claim-fetch.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/claim-fetch.https.html.ini
new file mode 100644
index 000000000000..05a6f579f488
--- /dev/null
+++ b/testing/web-platform/meta/service-workers/service-worker/claim-fetch.https.html.ini
@@ -0,0 +1,13 @@
+[claim-fetch.https.html]
+ [fetch() should be intercepted after the client is claimed.]
+ expected:
+ if (os == "linux") and debug and not webrender and e10s and not sw-e10s and (processor == "x86"): FAIL
+ if (os == "linux") and debug and not webrender and e10s and sw-e10s: FAIL
+ if (os == "linux") and debug and webrender: FAIL
+ if (os == "linux") and not debug: FAIL
+ if os == "win": FAIL
+ if os == "mac": FAIL
+ if os == "android": FAIL
+ if (os == "linux") and debug and not webrender and e10s: FAIL
+ FAIL
+
diff --git a/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
index aa9068dc1fd9..89696dd2024c 100644
--- a/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
@@ -1,13 +1,13 @@
[clients-matchall-order.https.html]
[Clients.matchAll() returns uncontrolled windows in focus order. Case 1.]
expected:
- if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
[Clients.matchAll() returns controlled windows in focus order. Case 1.]
expected:
- if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
[Clients.matchAll() returns controlled windows and frames in focus order.]
expected:
- if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if os == "android": "FAIL"
diff --git a/testing/web-platform/meta/service-workers/service-worker/installing.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/installing.https.html.ini
index c856224a3431..52c077177db9 100644
--- a/testing/web-platform/meta/service-workers/service-worker/installing.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/installing.https.html.ini
@@ -5,4 +5,3 @@
[installing is set]
expected: FAIL
-
diff --git a/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini
index 5b8738b73e7a..9dfaab6687b5 100644
--- a/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini
@@ -1,4 +1,3 @@
[navigation-timing.https.html]
disabled:
if os == "android": https://bugzilla.mozilla.org/show_bug.cgi?id=1499972
-
diff --git a/testing/web-platform/meta/service-workers/service-worker/windowclient-navigate.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/windowclient-navigate.https.html.ini
index 1a99dcd750e0..b532d9da070b 100644
--- a/testing/web-platform/meta/service-workers/service-worker/windowclient-navigate.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/windowclient-navigate.https.html.ini
@@ -8,3 +8,28 @@
[out of scope]
expected: FAIL
+ [invalid url (view-source://example.com)]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [invalid url (http://[example.com\])]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [invalid url (about:blank)]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [invalid url (file:///)]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
+ [cross orgin url]
+ expected:
+ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+ if not debug and not webrender and not e10s and (os == "android") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+
diff --git a/testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini b/testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini
deleted file mode 100644
index f42ff0edf2da..000000000000
--- a/testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[scroll-to-the-fragment-in-shadow-tree.html]
- [The user agent scroll to the fragment when there is an element with an ID exactly equal to the decoded fragid]
- expected:
- if os == "android": FAIL
diff --git a/testing/web-platform/meta/shape-detection/idlharness.any.js.ini b/testing/web-platform/meta/shape-detection/idlharness.any.js.ini
index 1edcc0bd917e..53d8a2e80228 100644
--- a/testing/web-platform/meta/shape-detection/idlharness.any.js.ini
+++ b/testing/web-platform/meta/shape-detection/idlharness.any.js.ini
@@ -98,6 +98,9 @@
[DetectedBarcode interface: attribute cornerPoints]
expected: FAIL
+ [BarcodeDetector interface: operation getSupportedFormats()]
+ expected: FAIL
+
[idlharness.any.worker.html]
[FaceDetector interface: existence and properties of interface object]
@@ -145,3 +148,6 @@
[BarcodeDetector interface: operation detect(ImageBitmapSource)]
expected: FAIL
+ [BarcodeDetector interface: operation getSupportedFormats()]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/check-cert-request.tentative.html.ini b/testing/web-platform/meta/signed-exchange/check-cert-request.tentative.html.ini
new file mode 100644
index 000000000000..c91e3e4fd16a
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/check-cert-request.tentative.html.ini
@@ -0,0 +1,4 @@
+[check-cert-request.tentative.html]
+ [Verify that certificate request has correct parameters.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-head-request.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-head-request.tentative.html.ini
deleted file mode 100644
index 8c7ba6014ec2..000000000000
--- a/testing/web-platform/meta/signed-exchange/sxg-head-request.tentative.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[sxg-head-request.tentative.html]
- [Loading SignedHTTPExchange with HEAD request method must fail]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/signed-exchange/sxg-hsts.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-hsts.tentative.html.ini
new file mode 100644
index 000000000000..1e7743617116
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-hsts.tentative.html.ini
@@ -0,0 +1,4 @@
+[sxg-hsts.tentative.html]
+ [Loading SignedHTTPExchange with an uncached header Strict-Transport-Security must fail and fallback redirect.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-non-secure-origin.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-non-secure-origin.tentative.html.ini
new file mode 100644
index 000000000000..e163f28021b1
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-non-secure-origin.tentative.html.ini
@@ -0,0 +1,4 @@
+[sxg-non-secure-origin.tentative.html]
+ [Loading SignedHTTPExchange from non secure origin must fail]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-noncacheable.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-noncacheable.tentative.html.ini
new file mode 100644
index 000000000000..66140aa5a6bf
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-noncacheable.tentative.html.ini
@@ -0,0 +1,4 @@
+[sxg-noncacheable.tentative.html]
+ [Loading SignedHTTPExchange with non-cacheable response must fail]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-referrer-policy-header.tentative.https.html.ini b/testing/web-platform/meta/signed-exchange/sxg-referrer-policy-header.tentative.https.html.ini
new file mode 100644
index 000000000000..19a519dc1b88
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-referrer-policy-header.tentative.https.html.ini
@@ -0,0 +1,23 @@
+[sxg-referrer-policy-header.tentative.https.html]
+ expected: TIMEOUT
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,origin)","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,strict-origin-when-cross-origin)","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-policy-header.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,same-origin)","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-policy-header.tentative.https.html"}]
+ expected: TIMEOUT
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,strict-origin)","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,no-referrer-when-downgrade)","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-policy-header.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,unsafe-url)","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-policy-header.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg?pipe=header(Referrer-Policy,no-referrer)","expectedReferrer":""}]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html.ini b/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html.ini
new file mode 100644
index 000000000000..1d21ec9858a0
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html.ini
@@ -0,0 +1,26 @@
+[sxg-referrer-remote-physical-remote-logical.tentative.https.html]
+ expected: TIMEOUT
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"unsafe-url","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"strict-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"no-referrer-when-downgrade","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-remote-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: TIMEOUT
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"strict-origin-when-cross-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"no-referrer","expectedReferrer":""}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"same-origin","expectedReferrer":""}]
+ expected: NOTRUN
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html.ini b/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html.ini
new file mode 100644
index 000000000000..b5422061ca80
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html.ini
@@ -0,0 +1,26 @@
+[sxg-referrer-remote-physical-same-logical.tentative.https.html]
+ expected: TIMEOUT
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: TIMEOUT
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"no-referrer-when-downgrade","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"same-origin","expectedReferrer":""}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"strict-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"strict-origin-when-cross-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"no-referrer","expectedReferrer":""}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"unsafe-url","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://www1.web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-remote-physical-same-logical.tentative.https.html"}]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html.ini b/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html.ini
new file mode 100644
index 000000000000..6fbd1860057c
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html.ini
@@ -0,0 +1,26 @@
+[sxg-referrer-same-physical-remote-logical.tentative.https.html]
+ expected: TIMEOUT
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"same-origin","expectedReferrer":""}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"strict-origin-when-cross-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: TIMEOUT
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"no-referrer","expectedReferrer":""}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"unsafe-url","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"strict-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-remote-origin.sxg","referrerPolicy":"no-referrer-when-downgrade","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-remote-logical.tentative.https.html"}]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html.ini b/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html.ini
new file mode 100644
index 000000000000..5d2f9e79f5fd
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html.ini
@@ -0,0 +1,26 @@
+[sxg-referrer-same-physical-same-logical.tentative.https.html]
+ expected: TIMEOUT
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: TIMEOUT
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"same-origin","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"no-referrer","expectedReferrer":""}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"strict-origin-when-cross-origin","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"strict-origin","expectedReferrer":"https://web-platform.test:8443/"}]
+ expected: NOTRUN
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"no-referrer-when-downgrade","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html"}]
+ expected: FAIL
+
+ [Referrer of SignedHTTPExchange test : {"origin":"https://web-platform.test:8443","sxg":"sxg-referrer-same-origin.sxg","referrerPolicy":"unsafe-url","expectedReferrer":"https://web-platform.test:8443/signed-exchange/sxg-referrer-same-physical-same-logical.tentative.https.html"}]
+ expected: NOTRUN
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-utf8-inner-url.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-utf8-inner-url.tentative.html.ini
new file mode 100644
index 000000000000..07bb0169be52
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-utf8-inner-url.tentative.html.ini
@@ -0,0 +1,4 @@
+[sxg-utf8-inner-url.tentative.html]
+ [SignedHTTPExchange with UTF-8 inner URL]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/signed-exchange/sxg-version1b2.tentative.html.ini b/testing/web-platform/meta/signed-exchange/sxg-version1b2.tentative.html.ini
new file mode 100644
index 000000000000..ef08014456dd
--- /dev/null
+++ b/testing/web-platform/meta/signed-exchange/sxg-version1b2.tentative.html.ini
@@ -0,0 +1,4 @@
+[sxg-version1b2.tentative.html]
+ [Loading SignedHTTPExchange of unsupported version must fail and fallback redirect.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/storage/estimate-usage-details-application-cache.https.tentative.html.ini b/testing/web-platform/meta/storage/estimate-usage-details-application-cache.https.tentative.html.ini
new file mode 100644
index 000000000000..9023b89ada20
--- /dev/null
+++ b/testing/web-platform/meta/storage/estimate-usage-details-application-cache.https.tentative.html.ini
@@ -0,0 +1,4 @@
+[estimate-usage-details-application-cache.https.tentative.html]
+ [estimate() shows usage increase after app is cached]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/storage/estimate-usage-details-caches.https.tentative.any.js.ini b/testing/web-platform/meta/storage/estimate-usage-details-caches.https.tentative.any.js.ini
new file mode 100644
index 000000000000..27f0e4e180d4
--- /dev/null
+++ b/testing/web-platform/meta/storage/estimate-usage-details-caches.https.tentative.any.js.ini
@@ -0,0 +1,9 @@
+[estimate-usage-details-caches.https.tentative.any.html]
+ [estimate() shows usage increase after large value is stored]
+ expected: FAIL
+
+
+[estimate-usage-details-caches.https.tentative.any.worker.html]
+ [estimate() shows usage increase after large value is stored]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/storage/estimate-usage-details-service-workers.https.tentative.window.js.ini b/testing/web-platform/meta/storage/estimate-usage-details-service-workers.https.tentative.window.js.ini
new file mode 100644
index 000000000000..f4655ea8f507
--- /dev/null
+++ b/testing/web-platform/meta/storage/estimate-usage-details-service-workers.https.tentative.window.js.ini
@@ -0,0 +1,4 @@
+[estimate-usage-details-service-workers.https.tentative.window.html]
+ [estimate() shows usage increase after large value is stored]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/storage/estimate-usage-details.https.tentative.any.js.ini b/testing/web-platform/meta/storage/estimate-usage-details.https.tentative.any.js.ini
new file mode 100644
index 000000000000..2fe9814146a7
--- /dev/null
+++ b/testing/web-platform/meta/storage/estimate-usage-details.https.tentative.any.js.ini
@@ -0,0 +1,9 @@
+[estimate-usage-details.https.tentative.any.worker.html]
+ [estimate() resolves to dictionary with members, including usageDetails]
+ expected: FAIL
+
+
+[estimate-usage-details.https.tentative.any.html]
+ [estimate() resolves to dictionary with members, including usageDetails]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/svg/geometry/parsing/sizing-properties-computed.svg.ini b/testing/web-platform/meta/svg/geometry/parsing/sizing-properties-computed.svg.ini
new file mode 100644
index 000000000000..5a61d39d73c0
--- /dev/null
+++ b/testing/web-platform/meta/svg/geometry/parsing/sizing-properties-computed.svg.ini
@@ -0,0 +1,25 @@
+[sizing-properties-computed.svg]
+ [Property height value 'calc(50% + 60px)' computes to 'calc(50% + 60px)']
+ expected: FAIL
+
+ [Property width value 'calc(50% + 60px)' computes to 'calc(50% + 60px)']
+ expected: FAIL
+
+ [Property height value '40%' computes to '320px']
+ expected: FAIL
+
+ [resolved value is computed value when display is none]
+ expected: FAIL
+
+ [Property height value 'calc(50% + 1.5em)' computes to '460px']
+ expected: FAIL
+
+ [Property width value '40%' computes to '320px']
+ expected: FAIL
+
+ [Property width value 'calc(50% + 1.5em)' computes to '460px']
+ expected: FAIL
+
+ [resolved value is computed value when display is contents]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/svg/idlharness.window.js.ini b/testing/web-platform/meta/svg/idlharness.window.js.ini
index a462ddef551f..4fbd116f06f6 100644
--- a/testing/web-platform/meta/svg/idlharness.window.js.ini
+++ b/testing/web-platform/meta/svg/idlharness.window.js.ini
@@ -491,3 +491,12 @@
[SVGElement interface: objects.switch must inherit property "correspondingElement" with the proper type]
expected: FAIL
+ [SVGSVGElement interface: operation createSVGTransformFromMatrix(DOMMatrix2DInit)]
+ expected: FAIL
+
+ [SVGTransform interface: operation setMatrix(DOMMatrix2DInit)]
+ expected: FAIL
+
+ [SVGTransformList interface: operation createSVGTransformFromMatrix(DOMMatrix2DInit)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/trusted-types/WorkerGlobalScope-importScripts.https.html.ini b/testing/web-platform/meta/trusted-types/WorkerGlobalScope-importScripts.https.html.ini
deleted file mode 100644
index 008ff2cde388..000000000000
--- a/testing/web-platform/meta/trusted-types/WorkerGlobalScope-importScripts.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[WorkerGlobalScope-importScripts.https.html]
- [WorkerGlobalScope-importScripts]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html.ini b/testing/web-platform/meta/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html.ini
index 7009558f420e..c881fce36ee3 100644
--- a/testing/web-platform/meta/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html.ini
+++ b/testing/web-platform/meta/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html.ini
@@ -1,5 +1,4 @@
[block-string-assignment-to-Element-setAttribute.tentative.html]
- expected: ERROR
[frame.src accepts only TrustedURL]
expected: FAIL
@@ -54,3 +53,12 @@
[`Element.prototype.setAttribute.SrC = string` throws.]
expected: FAIL
+ [object.data accepts only TrustedScriptURL]
+ expected: FAIL
+
+ [object.codeBase accepts only TrustedScriptURL]
+ expected: FAIL
+
+ [block-string-assignment-to-Element-setAttribute]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html.ini b/testing/web-platform/meta/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html.ini
index 78d8859ebb27..fb64ea21fd2a 100644
--- a/testing/web-platform/meta/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html.ini
+++ b/testing/web-platform/meta/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html.ini
@@ -63,3 +63,18 @@
[script.innerText accepts only TrustedScript]
expected: FAIL
+ [object.data accepts only TrustedScriptURL]
+ expected: FAIL
+
+ [object.codeBase accepts only TrustedScriptURL]
+ expected: FAIL
+
+ [button.formAction accepts only TrustedURL]
+ expected: FAIL
+
+ [input.formAction accepts only TrustedURL]
+ expected: FAIL
+
+ [form.action accepts only TrustedURL]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html.ini
new file mode 100644
index 000000000000..52e9d0fb6131
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html.ini
@@ -0,0 +1,61 @@
+[animation-worklet-import-upgrade.https.html]
+ [data: =(import)=> secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..d690eaea0f2c
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html.ini
@@ -0,0 +1,49 @@
+[animation-worklet-redirect-upgrade.https.html]
+ [insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-upgrade.https.html.ini
new file mode 100644
index 000000000000..3244a86c33f1
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/animation-worklet-upgrade.https.html.ini
@@ -0,0 +1,13 @@
+[animation-worklet-upgrade.https.html]
+ [insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html.ini
new file mode 100644
index 000000000000..78dd8b63e35e
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html.ini
@@ -0,0 +1,61 @@
+[audio-worklet-import-upgrade.https.html]
+ [data: =(import)=> secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..8f9ce927d6e7
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html.ini
@@ -0,0 +1,49 @@
+[audio-worklet-redirect-upgrade.https.html]
+ [insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-upgrade.https.html.ini
new file mode 100644
index 000000000000..34eecc413d27
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/audio-worklet-upgrade.https.html.ini
@@ -0,0 +1,13 @@
+[audio-worklet-upgrade.https.html]
+ [insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html.ini
new file mode 100644
index 000000000000..83599cbaa97b
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html.ini
@@ -0,0 +1,61 @@
+[layout-worklet-import-upgrade.https.html]
+ [data: =(import)=> secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..089aa9ae816f
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html.ini
@@ -0,0 +1,49 @@
+[layout-worklet-redirect-upgrade.https.html]
+ [insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-upgrade.https.html.ini
new file mode 100644
index 000000000000..5d72b4fee8c9
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/layout-worklet-upgrade.https.html.ini
@@ -0,0 +1,13 @@
+[layout-worklet-upgrade.https.html]
+ [insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/module-worker-import-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-import-upgrade.https.html.ini
new file mode 100644
index 000000000000..f9ee0f31c0ea
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-import-upgrade.https.html.ini
@@ -0,0 +1,61 @@
+[module-worker-import-upgrade.https.html]
+ [data: =(import)=> secure/same-origin => insecure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/cross-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin worker]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/same-origin worker]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..6c266a0b73f5
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html.ini
@@ -0,0 +1,10 @@
+[module-worker-redirect-upgrade.https.html]
+ [insecure/same-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/module-worker-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-upgrade.https.html.ini
new file mode 100644
index 000000000000..7545f9fb37d2
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/module-worker-upgrade.https.html.ini
@@ -0,0 +1,4 @@
+[module-worker-upgrade.https.html]
+ [insecure/same-origin worker]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html.ini
new file mode 100644
index 000000000000..1b3a4feb9d2c
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html.ini
@@ -0,0 +1,61 @@
+[paint-worklet-import-upgrade.https.html]
+ [data: =(import)=> secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [data: =(import)=> secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..f740aaf650af
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html.ini
@@ -0,0 +1,49 @@
+[paint-worklet-redirect-upgrade.https.html]
+ [insecure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin => secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/cross-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-upgrade.https.html.ini
new file mode 100644
index 000000000000..7438b55b92c7
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/paint-worklet-upgrade.https.html.ini
@@ -0,0 +1,13 @@
+[paint-worklet-upgrade.https.html]
+ [insecure/same-origin worklet]
+ expected: FAIL
+
+ [secure/same-origin worklet]
+ expected: FAIL
+
+ [secure/cross-origin worklet]
+ expected: FAIL
+
+ [insecure/cross-origin worklet]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/worker-redirect-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/worker-redirect-upgrade.https.html.ini
new file mode 100644
index 000000000000..0ffdca6ccda4
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/worker-redirect-upgrade.https.html.ini
@@ -0,0 +1,10 @@
+[worker-redirect-upgrade.https.html]
+ [insecure/same-origin => secure/same-origin worker]
+ expected: FAIL
+
+ [insecure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
+ [secure/same-origin => insecure/same-origin worker]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/upgrade-insecure-requests/worker-upgrade.https.html.ini b/testing/web-platform/meta/upgrade-insecure-requests/worker-upgrade.https.html.ini
new file mode 100644
index 000000000000..73181999a697
--- /dev/null
+++ b/testing/web-platform/meta/upgrade-insecure-requests/worker-upgrade.https.html.ini
@@ -0,0 +1,4 @@
+[worker-upgrade.https.html]
+ [insecure/same-origin worker]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/url/__dir__.ini b/testing/web-platform/meta/url/__dir__.ini
new file mode 100644
index 000000000000..c4b2fdedd40e
--- /dev/null
+++ b/testing/web-platform/meta/url/__dir__.ini
@@ -0,0 +1 @@
+leak-threshold: [tab:51200]
diff --git a/testing/web-platform/meta/user-timing/idlharness.any.js.ini b/testing/web-platform/meta/user-timing/idlharness.any.js.ini
index 324fb7aa35c1..46b3b7d3d572 100644
--- a/testing/web-platform/meta/user-timing/idlharness.any.js.ini
+++ b/testing/web-platform/meta/user-timing/idlharness.any.js.ini
@@ -1,2 +1,70 @@
[idlharness.https.any.serviceworker.html]
expected: TIMEOUT
+
+[idlharness.any.html]
+ [PerformanceMeasure interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMeasure interface: measure must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+
+[idlharness.any.worker.html]
+ [PerformanceMeasure interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMeasure interface: measure must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+
+[idlharness.any.sharedworker.html]
+ [PerformanceMeasure interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMeasure interface: measure must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
+
+[idlharness.any.serviceworker.html]
+ [PerformanceMeasure interface: attribute detail]
+ expected: FAIL
+
+ [PerformanceMeasure interface: measure must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface: mark must inherit property "detail" with the proper type]
+ expected: FAIL
+
+ [PerformanceMark interface object length]
+ expected: FAIL
+
+ [PerformanceMark interface: attribute detail]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wake-lock/wakelock-supported-by-feature-policy.html.ini b/testing/web-platform/meta/wake-lock/wakelock-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..85c4f6ef4ae2
--- /dev/null
+++ b/testing/web-platform/meta/wake-lock/wakelock-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[wakelock-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise wake-lock.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wasm/jsapi/constructor/instantiate.any.js.ini b/testing/web-platform/meta/wasm/jsapi/constructor/instantiate.any.js.ini
new file mode 100644
index 000000000000..f8eeebdbe572
--- /dev/null
+++ b/testing/web-platform/meta/wasm/jsapi/constructor/instantiate.any.js.ini
@@ -0,0 +1,41 @@
+[instantiate.any.html]
+ [exports and imports: Module argument]
+ expected: FAIL
+
+ [No imports: Module argument]
+ expected: FAIL
+
+ [exports and imports: BufferSource argument]
+ expected: FAIL
+
+ [No imports: BufferSource argument]
+ expected: FAIL
+
+
+[instantiate.any.worker.html]
+ [exports and imports: Module argument]
+ expected: FAIL
+
+ [No imports: Module argument]
+ expected: FAIL
+
+ [exports and imports: BufferSource argument]
+ expected: FAIL
+
+ [No imports: BufferSource argument]
+ expected: FAIL
+
+
+[instantiate.any.js]
+ [exports and imports: Module argument]
+ expected: FAIL
+
+ [No imports: Module argument]
+ expected: FAIL
+
+ [exports and imports: BufferSource argument]
+ expected: FAIL
+
+ [No imports: BufferSource argument]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wasm/jsapi/instance/constructor.any.js.ini b/testing/web-platform/meta/wasm/jsapi/instance/constructor.any.js.ini
new file mode 100644
index 000000000000..c81379d601db
--- /dev/null
+++ b/testing/web-platform/meta/wasm/jsapi/instance/constructor.any.js.ini
@@ -0,0 +1,23 @@
+[constructor.any.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
+
+[constructor.any.worker.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
+
+[constructor.any.js]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wasm/jsapi/module/exports.any.js.ini b/testing/web-platform/meta/wasm/jsapi/module/exports.any.js.ini
new file mode 100644
index 000000000000..76076c2f167e
--- /dev/null
+++ b/testing/web-platform/meta/wasm/jsapi/module/exports.any.js.ini
@@ -0,0 +1,14 @@
+[exports.any.html]
+ [exports]
+ expected: FAIL
+
+
+[exports.any.worker.html]
+ [exports]
+ expected: FAIL
+
+
+[exports.any.js]
+ [exports]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wasm/jsapi/table/get-set.any.js.ini b/testing/web-platform/meta/wasm/jsapi/table/get-set.any.js.ini
new file mode 100644
index 000000000000..d9355cad5e8e
--- /dev/null
+++ b/testing/web-platform/meta/wasm/jsapi/table/get-set.any.js.ini
@@ -0,0 +1,44 @@
+[get-set.any.worker.html]
+ expected: ERROR
+ [Basic]
+ expected: FAIL
+
+ [Setting out-of-bounds]
+ expected: FAIL
+
+ [Growing]
+ expected: FAIL
+
+ [Stray argument]
+ expected: FAIL
+
+
+[get-set.any.html]
+ expected: ERROR
+ [Basic]
+ expected: FAIL
+
+ [Setting out-of-bounds]
+ expected: FAIL
+
+ [Growing]
+ expected: FAIL
+
+ [Stray argument]
+ expected: FAIL
+
+
+[get-set.any.js]
+ expected: ERROR
+ [Basic]
+ expected: FAIL
+
+ [Setting out-of-bounds]
+ expected: FAIL
+
+ [Growing]
+ expected: FAIL
+
+ [Stray argument]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/wasm/webapi/instantiateStreaming.any.js.ini b/testing/web-platform/meta/wasm/webapi/instantiateStreaming.any.js.ini
new file mode 100644
index 000000000000..bc74866cd100
--- /dev/null
+++ b/testing/web-platform/meta/wasm/webapi/instantiateStreaming.any.js.ini
@@ -0,0 +1,31 @@
+[instantiateStreaming.any.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
+
+[instantiateStreaming.any.serviceworker.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
+
+[instantiateStreaming.any.sharedworker.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
+
+[instantiateStreaming.any.worker.html]
+ [exports and imports]
+ expected: FAIL
+
+ [No imports]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/web-locks/query-order.tentative.https.any.js.ini b/testing/web-platform/meta/web-locks/query-order.tentative.https.any.js.ini
deleted file mode 100644
index 968ac347c8f5..000000000000
--- a/testing/web-platform/meta/web-locks/query-order.tentative.https.any.js.ini
+++ /dev/null
@@ -1,43 +0,0 @@
-[query-order.tentative.https.any.worker.html]
- [Held locks appear in state in order granted, including when stolen]
- expected: FAIL
-
- [Held locks appear in state in order granted]
- expected: FAIL
-
- [Requests appear in state in order made]
- expected: FAIL
-
-
-[query-order.tentative.https.any.html]
- [Held locks appear in state in order granted, including when stolen]
- expected: FAIL
-
- [Held locks appear in state in order granted]
- expected: FAIL
-
- [Requests appear in state in order made]
- expected: FAIL
-
-
-[query-order.tentative.https.any.serviceworker.html]
- [Held locks appear in state in order granted, including when stolen]
- expected: FAIL
-
- [Held locks appear in state in order granted]
- expected: FAIL
-
- [Requests appear in state in order made]
- expected: FAIL
-
-
-[query-order.tentative.https.any.sharedworker.html]
- [Held locks appear in state in order granted, including when stolen]
- expected: FAIL
-
- [Held locks appear in state in order granted]
- expected: FAIL
-
- [Requests appear in state in order made]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/web-locks/query-ordering.tentative.https.html.ini b/testing/web-platform/meta/web-locks/query-ordering.tentative.https.html.ini
new file mode 100644
index 000000000000..99cf293ac0f4
--- /dev/null
+++ b/testing/web-platform/meta/web-locks/query-ordering.tentative.https.html.ini
@@ -0,0 +1,5 @@
+[query-ordering.tentative.https.html]
+ expected: TIMEOUT
+ [Requests appear in state in order made.]
+ expected: TIMEOUT
+
diff --git a/testing/web-platform/meta/web-nfc/idlharness.https.window.js.ini b/testing/web-platform/meta/web-nfc/idlharness.https.window.js.ini
index 03d16d9deb7f..3432bcf6fb07 100644
--- a/testing/web-platform/meta/web-nfc/idlharness.https.window.js.ini
+++ b/testing/web-platform/meta/web-nfc/idlharness.https.window.js.ini
@@ -98,3 +98,75 @@
[NFCWriter interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
+ [NFCReadingEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [NFCReader interface: attribute onerror]
+ expected: FAIL
+
+ [NFCReader interface object length]
+ expected: FAIL
+
+ [NFCErrorEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [NFCReadingEvent interface object name]
+ expected: FAIL
+
+ [NFCReadingEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [NFCReader interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [NFCReader interface: operation start()]
+ expected: FAIL
+
+ [NFCReadingEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [NFCErrorEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [NFCReader interface: operation stop()]
+ expected: FAIL
+
+ [NFCErrorEvent interface object name]
+ expected: FAIL
+
+ [NFCErrorEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [NFCReader interface object name]
+ expected: FAIL
+
+ [NFCReader interface: attribute onreading]
+ expected: FAIL
+
+ [NFCReader interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [NFCReadingEvent interface: attribute message]
+ expected: FAIL
+
+ [NFCErrorEvent interface: attribute error]
+ expected: FAIL
+
+ [NFCReadingEvent interface object length]
+ expected: FAIL
+
+ [NFCReadingEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [NFCErrorEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [NFCReader interface: existence and properties of interface object]
+ expected: FAIL
+
+ [NFCReader interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [NFCErrorEvent interface object length]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/web-share/canShare-files.https.html.ini b/testing/web-platform/meta/web-share/canShare-files.https.html.ini
new file mode 100644
index 000000000000..dcc56aa70812
--- /dev/null
+++ b/testing/web-platform/meta/web-share/canShare-files.https.html.ini
@@ -0,0 +1,16 @@
+[canShare-files.https.html]
+ [canShare with repeated file]
+ expected: FAIL
+
+ [canShare with single file list]
+ expected: FAIL
+
+ [canShare with file list and url]
+ expected: FAIL
+
+ [canShare with file list]
+ expected: FAIL
+
+ [canShare with empty file list]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/web-share/canShare.https.html.ini b/testing/web-platform/meta/web-share/canShare.https.html.ini
new file mode 100644
index 000000000000..a855a586b2a0
--- /dev/null
+++ b/testing/web-platform/meta/web-share/canShare.https.html.ini
@@ -0,0 +1,52 @@
+[canShare.https.html]
+ [canShare with unexpected field]
+ expected: FAIL
+
+ [canShare with URL having no scheme]
+ expected: FAIL
+
+ [canShare with an invalid URL]
+ expected: FAIL
+
+ [canShare with number]
+ expected: FAIL
+
+ [canShare with attribute undefined is equivalent to omitting the attribute]
+ expected: FAIL
+
+ [canShare with a dictionary containing only surplus fields]
+ expected: FAIL
+
+ [canShare with a null argument (same as empty dictionary)]
+ expected: FAIL
+
+ [canShare with data URL]
+ expected: FAIL
+
+ [canShare with title]
+ expected: FAIL
+
+ [canShare with a undefined argument (same as empty dictionary)]
+ expected: FAIL
+
+ [canShare with object]
+ expected: FAIL
+
+ [canShare with null attribute]
+ expected: FAIL
+
+ [canShare with an empty dictionary]
+ expected: FAIL
+
+ [canShare with no arguments (same as empty dictionary)]
+ expected: FAIL
+
+ [canShare with text]
+ expected: FAIL
+
+ [canShare with empty URL]
+ expected: FAIL
+
+ [canShare with URL]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html.ini b/testing/web-platform/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html.ini
index b58e914c17b3..f5d1567c4801 100644
--- a/testing/web-platform/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html.ini
+++ b/testing/web-platform/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html.ini
@@ -8,3 +8,15 @@
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL
+ [# AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed.]
+ expected: FAIL
+
+ [< [subsample start with playback rate 0\] 2 out of 2 assertions were failed.]
+ expected: FAIL
+
+ [X output[0:27\]: Expected 0 for all values but found 1 unexpected values: \n\tIndex\tActual\n\t[27\]\t5]
+ expected: FAIL
+
+ [X output[28:\]: Expected 5 for all values but found 8164 unexpected values: \n\tIndex\tActual\n\t[0\]\t6\n\t[1\]\t7\n\t[2\]\t8\n\t[3\]\t9\n\t...and 8160 more errors.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html.ini b/testing/web-platform/meta/webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html.ini
new file mode 100644
index 000000000000..cc14efe48dcc
--- /dev/null
+++ b/testing/web-platform/meta/webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html.ini
@@ -0,0 +1,4 @@
+[audionode-channel-rules.html]
+ [\n audionode-channel-rules.html\n ]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini b/testing/web-platform/meta/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini
new file mode 100644
index 000000000000..d8f5c33cc76e
--- /dev/null
+++ b/testing/web-platform/meta/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini
@@ -0,0 +1,16 @@
+[audioparam-close.html]
+ [# AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed.]
+ expected: FAIL
+
+ [< [interpolation\] 1 out of 7 assertions were failed.]
+ expected: FAIL
+
+ [X output[0\] is not equal to 10. Got 3.4028234663852886e+38.]
+ expected: FAIL
+
+ [< [no-nan\] 1 out of 5 assertions were failed.]
+ expected: FAIL
+
+ [X output[1\] is not close to 1.1342744887950962e+38 within a relative error of 0 (RelErr=2). Got 3.4028234663852886e+38.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html.ini b/testing/web-platform/meta/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html.ini
new file mode 100644
index 000000000000..8c5dba68b12a
--- /dev/null
+++ b/testing/web-platform/meta/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html.ini
@@ -0,0 +1,13 @@
+[stereopannernode-panning.html]
+ [< [stereo-test\] 2 out of 4 assertions were failed.]
+ expected: FAIL
+
+ [X Stereo: Right channel error magnitude is not less than or equal to 9.8015e-8. Got 1.0266453775997775e-7.]
+ expected: FAIL
+
+ [X Stereo: Left channel error magnitude is not less than or equal to 9.8015e-8. Got 1.284317301397664e-7.]
+ expected: FAIL
+
+ [# AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
index 7cd22ccb3bed..245033e5d2b1 100644
--- a/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
@@ -1,7 +1,6 @@
[createcredential-badargs-challenge.https.html]
expected:
if os == "android": OK
- TIMEOUT
[Bad challenge: challenge is empty ArrayBuffer]
expected:
if os == "android": FAIL
diff --git a/testing/web-platform/meta/webdriver/tests/perform_actions/key_events.py.ini b/testing/web-platform/meta/webdriver/tests/perform_actions/key_events.py.ini
new file mode 100644
index 000000000000..3188cfb986e4
--- /dev/null
+++ b/testing/web-platform/meta/webdriver/tests/perform_actions/key_events.py.ini
@@ -0,0 +1,22 @@
+[key_events.py]
+ [test_special_key_sends_keydown[NUMPAD4-expected22\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD5-expected61\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SUBTRACT-expected16\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[PAGE_UP-expected6\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ADD-expected40\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SEPARATOR-expected66\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[PAGE_DOWN-expected30\]]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc-quic/RTCQuicTransport.https.html.ini b/testing/web-platform/meta/webrtc-quic/RTCQuicTransport.https.html.ini
index 54941401cb69..1bb70f922d8d 100644
--- a/testing/web-platform/meta/webrtc-quic/RTCQuicTransport.https.html.ini
+++ b/testing/web-platform/meta/webrtc-quic/RTCQuicTransport.https.html.ini
@@ -47,3 +47,63 @@
[start() with a non-started RTCIceTransport later changes state to 'connecting' once the RTCIceTransport.start() is called.]
expected: FAIL
+ [connect() changes state to 'connecting'.]
+ expected: FAIL
+
+ [getStats() promises rejected with InvalidStateError if RTCIceTransport calls stop() before being fulfilled.]
+ expected: FAIL
+
+ [getStats() promises immediately rejected with InvalidStateError if called before 'connecting'.]
+ expected: FAIL
+
+ [connect() throws after stop().]
+ expected: FAIL
+
+ [getStats() promises rejected with InvalidStateError if stop() is called before being fulfilled.]
+ expected: FAIL
+
+ [listen() throws if already called listen().]
+ expected: FAIL
+
+ [Two separate stats returned by getStats() give different timestamps.]
+ expected: FAIL
+
+ [connect() throws if already called connect().]
+ expected: FAIL
+
+ [getStats() promises immediately rejected if called after'closed' state.]
+ expected: FAIL
+
+ [Cannot mutate key retrieved from getKey().]
+ expected: FAIL
+
+ [getStats() returns proper stream counts after creating streams.]
+ expected: FAIL
+
+ [listen() throws if called after RTCIceTransport has stopped.]
+ expected: FAIL
+
+ [listen() throws if given an empty key.]
+ expected: FAIL
+
+ [Stats returned by getStats() are present.]
+ expected: FAIL
+
+ [connect() throws if called after RTCIceTransport has stopped.]
+ expected: FAIL
+
+ [listen() throws if already called connect().]
+ expected: FAIL
+
+ [listen() throws after stop().]
+ expected: FAIL
+
+ [listen() changes state to 'connecting'.]
+ expected: FAIL
+
+ [connect() throws if already called listen().]
+ expected: FAIL
+
+ [RTCQuicTransport.getKey() attribute is 16 bytes.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc-stats/getStats-remote-candidate-address.html.ini b/testing/web-platform/meta/webrtc-stats/getStats-remote-candidate-address.html.ini
new file mode 100644
index 000000000000..98a69569be30
--- /dev/null
+++ b/testing/web-platform/meta/webrtc-stats/getStats-remote-candidate-address.html.ini
@@ -0,0 +1,4 @@
+[getStats-remote-candidate-address.html]
+ [Do not expose in stats remote addresses that are not known to be already exposed to JS]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc/RTCDtlsTransport-state.html.ini b/testing/web-platform/meta/webrtc/RTCDtlsTransport-state.html.ini
new file mode 100644
index 000000000000..80d47a42cb7a
--- /dev/null
+++ b/testing/web-platform/meta/webrtc/RTCDtlsTransport-state.html.ini
@@ -0,0 +1,13 @@
+[RTCDtlsTransport-state.html]
+ [DTLS transport goes to connected state and transmits closing event]
+ expected: FAIL
+
+ [close() causes the other end's DTLS transport to close]
+ expected: FAIL
+
+ [DTLS transport goes to connected state]
+ expected: FAIL
+
+ [close() causes the local transport to close immediately]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html.ini b/testing/web-platform/meta/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html.ini
index fbeececa3149..e100da493f42 100644
--- a/testing/web-platform/meta/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html.ini
+++ b/testing/web-platform/meta/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html.ini
@@ -1,4 +1,26 @@
[RTCRtpReceiver-getSynchronizationSources.https.html]
+ expected: TIMEOUT
[getContributingSources() should return list of CSRC after connection is established]
expected: FAIL
+ [[video\] RTCRtpSynchronizationSource.timestamp is a number]
+ expected: NOTRUN
+
+ [[audio-only\] RTCRtpSynchronizationSource.voiceActivityFlag is a boolean]
+ expected: NOTRUN
+
+ [[video\] getSynchronizationSources() does not contain SSRCs older than 10 seconds]
+ expected: NOTRUN
+
+ [[video\] getSynchronizationSources() eventually returns a non-empty list]
+ expected: TIMEOUT
+
+ [[video\] RTCRtpSynchronizationSource.timestamp is comparable to performance.timeOrigin + performance.now()]
+ expected: NOTRUN
+
+ [[audio-only\] RTCRtpSynchronizationSource.audioLevel is a number [0, 1\]]
+ expected: NOTRUN
+
+ [[video\] RTCRtpSynchronizationSource.source is a number]
+ expected: NOTRUN
+
diff --git a/testing/web-platform/meta/webrtc/RTCRtpTransceiver-stop.html.ini b/testing/web-platform/meta/webrtc/RTCRtpTransceiver-stop.html.ini
new file mode 100644
index 000000000000..8b5614ded206
--- /dev/null
+++ b/testing/web-platform/meta/webrtc/RTCRtpTransceiver-stop.html.ini
@@ -0,0 +1,4 @@
+[RTCRtpTransceiver-stop.html]
+ [A stopped sendonly transceiver should generate an inactive m-section in the offer]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc/RTCTrackEvent-fire.html.ini b/testing/web-platform/meta/webrtc/RTCTrackEvent-fire.html.ini
new file mode 100644
index 000000000000..2224d85c22f9
--- /dev/null
+++ b/testing/web-platform/meta/webrtc/RTCTrackEvent-fire.html.ini
@@ -0,0 +1,8 @@
+[RTCTrackEvent-fire.html]
+ expected: TIMEOUT
+ [Applying a remote description with a new msid should trigger firing an event with populated streams]
+ expected: TIMEOUT
+
+ [Applying a remote description with removed msid should trigger firing a removetrack event on the corresponding stream]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webrtc/__dir__.ini b/testing/web-platform/meta/webrtc/__dir__.ini
index 8efc0a7c5460..a51ff4baf962 100644
--- a/testing/web-platform/meta/webrtc/__dir__.ini
+++ b/testing/web-platform/meta/webrtc/__dir__.ini
@@ -1,3 +1,3 @@
prefs: [media.navigator.permission.disabled:true, media.navigator.streams.fake:true]
-lsan-allowed: [AddTrack, Alloc, AllocateObjectBuffer, AllocateProtoAndIfaceCache, AsyncFunctionPromiseReactionJob, AsyncFunctionResume, AtomizeAndCopyChars, AtomizeAndCopyCharsFromLookup, AttemptToExecute, Call, CallFromStack, CallGetter, CallJSNative, CallResolveOp, CloneObject, CompileLazyFunctionImpl, CompileSourceBuffer, CopyScopeData, CreateNativeGlobalForInner, Define, DefineDataProperty, DoGetOrCreateDOMReflector, EnsureInnerWindow, EnterJit, EntrySlotOrCreate, Evaluate, ExecuteInExtensibleLexicalEnvironment, ExecuteScript, FinishSlowJSInitIfMoreThanOneOwner, GatherAndConvertResults, GetDocument, GetIDPrototype, GetNameOperation, GetProperty, GetPropertyOperation, GetProtoObjectHandle, HandleEvent, InternalConstruct, Interpret, InvokeMethod, JS::Call, JS::CloneAndExecuteScript, JS::CompileUtf8ForNonSyntacticScope, JS::EvaluateUtf8, JSFunction::createScriptForLazilyInterpretedFunction, JSRuntime::cloneSelfHostedFunctionScript, JSRuntime::initSelfHosting, JSScript::createPrivateScriptData, JSScript::fullyInitFromEmitter, JS_CallFunctionValue, JS_ResolveStandardClass, LookupOwnPropertyInline, MakeFlatStringForAtomization, MakeRefPtr, MakeUnique, Malloc, NS_ProcessNextEvent, NativeDefineDataProperty, NewObjectWithClassProto, NewStringCopyUTF8Z, NewStringDeflated, NextEnvironmentShape, PromiseConstructor, ProtoAndIfaceCache, ReadStructuredClone, Realloc, ReceiveMessage, RunHandler, RunInternal, SetExistingProperty, SetNonexistentProperty, SetRemoteDescription, SharedStub, TraceWholeCell, Wrap, XDRTrailingName, XPCConvert::NativeInterface2JSObject, XPCJSContext::AfterProcessTask, XPCNativeInterface::NewInstance, XPC_WN_Helper_Resolve, XRE_InitChildProcess, XRE_RunAppShell, _M_begin, accept, addDataProperty, alloc::alloc::realloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::alloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::realloc, allocate, already_AddRefed, apply, applyImpl, assignExprWithoutYieldOrAwait, callMain, createFrameFromLookup, createObject, createScriptSource, emitInitializer, emitLexicalScopeBody, emitStatementList, ensureConstructor, functionDelazifying, inlinedGetChild, innerFunction, internBodyScope, js::Allocate, js::Call, js::CallSelfHostedFunction, js::CloneFunctionAndScript, js::CloneScriptIntoFunction, js::CreateThisForFunctionWithProto, js::CrossCompartmentWrapper::set, js::DefineDataProperty, js::DefineFunctions, js::Execute, js::ExecuteInJSMEnvironment, js::ExecuteKernel, js::FetchName, js::FunctionScope::create, js::GetEnvironmentName, js::GetProperty, js::GlobalObject::resolveConstructor, js::HashableValue::setValue, js::HelperThread::threadLoop, js::InitMathClass, js::InternalCallOrConstruct, js::LazyScript::CreateRaw, js::LexicalScope::create, js::MapObject::set, js::NativeDefineProperty, js::NativeGetExistingProperty, js::NativeSetProperty, js::ObjectGroup::defaultNewGroup, js::PropertyTree::getChild, js::Proxy::has, js::RunScript, js::SavedStacks::getOrCreateSavedFrame, js::ScriptParseTask::parse, js::SetPropertyIgnoringNamedGetter, js::Shape::hashify, js::StringBuffer::finishAtom, js::WrapAsyncFunction, js::XDRState, js::detail::ThreadTrampoline, js::frontend::BytecodeEmitter::emitArguments, js::frontend::BytecodeEmitter::emitAssignment, js::frontend::BytecodeEmitter::emitCallOrNew, js::frontend::BytecodeEmitter::emitCalleeAndThis, js::frontend::BytecodeEmitter::emitClass, js::frontend::BytecodeEmitter::emitConditionalExpression, js::frontend::BytecodeEmitter::emitExpressionStatement, js::frontend::BytecodeEmitter::emitFunction, js::frontend::BytecodeEmitter::emitFunctionBody, js::frontend::BytecodeEmitter::emitFunctionFormalParametersAndBody, js::frontend::BytecodeEmitter::emitFunctionScript, js::frontend::BytecodeEmitter::emitHoistedFunctionsInList, js::frontend::BytecodeEmitter::emitLexicalScope, js::frontend::BytecodeEmitter::emitObject, js::frontend::BytecodeEmitter::emitPropertyList, js::frontend::BytecodeEmitter::emitScript, js::frontend::BytecodeEmitter::emitSingleDeclaration, js::frontend::BytecodeEmitter::emitTree, js::frontend::CompileGlobalScript, js::frontend::GeneralParser, js::frontend::NameFunctions, js::frontend::ParseNodeVisitor, js::frontend::Parser, js::frontend::ScriptCompiler, js::frontend::SourceAwareCompiler, js::frontend::TokenStreamSpecific, js::fun_call, js::jit::DoGetIntrinsicFallback, js::jit::InterpretResume, js::jit::InvokeFunction, js_arena_realloc, js_pod_arena_malloc, main, make_pod_array, make_unique, maybeCreateTableForLookup, maybe_pod_malloc, maybe_pod_realloc, mozJSComponentLoader::ExtractExports, mozJSComponentLoader::Import, mozJSComponentLoader::ImportInto, mozJSComponentLoader::ObjectForLocation, mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint, mozilla::DOMEventTargetHelper::DispatchEvent, mozilla::EventDispatcher::Dispatch, mozilla::EventTargetChainItem::HandleEvent, mozilla::JsepAudioCodecDescription::Clone, mozilla::JsepSessionImpl::GetTransceiverForRemote, mozilla::JsepTrack::CreateEncodings, mozilla::PeerConnectionImpl::SetLocalDescription, mozilla::PeerConnectionMedia::AddTransceiver, mozilla::PromiseJobRunnable::Run, mozilla::Result, mozilla::SchedulerGroup::Runnable::Run, mozilla::SupportsWeakPtr, mozilla::TransceiverImpl::SyncWithJS, mozilla::WeakPtr, mozilla::dom::, mozilla::dom::ChromeUtils::GenerateQI, mozilla::dom::ChromeUtils::Import, mozilla::dom::ChromeUtils_Binding::import, mozilla::dom::ContentChild::RecvLoadProcessScript, mozilla::dom::ContentFrameMessageManager_Binding::get_content, mozilla::dom::ContentProcessMessageManager::LoadScript, mozilla::dom::CreateInterfaceObjects, mozilla::dom::Document::UnblockOnload, mozilla::dom::Event::ConstructorInit, mozilla::dom::ExecuteCompiledScript, mozilla::dom::Function::Call, mozilla::dom::GetPerInterfaceObjectHandle, mozilla::dom::InitIds, mozilla::dom::Location_Binding::set_href, mozilla::dom::MessageListener::ReceiveMessage, mozilla::dom::PBrowserChild::OnMessageReceived, mozilla::dom::PContentChild::OnMessageReceived, mozilla::dom::PeerConnectionImpl_Binding::setLocalDescription, mozilla::dom::PeerConnectionObserverJSImpl::OnSetRemoteDescriptionSuccess, mozilla::dom::PeerConnectionObserverJSImpl::OnStateChange, mozilla::dom::Performance::CreateForMainThread, mozilla::dom::Performance::WrapObject, mozilla::dom::PerformanceMainThread::Timing, mozilla::dom::PerformanceTiming::PerformanceTiming, mozilla::dom::PromiseJobCallback::Call, mozilla::dom::RTCPeerConnection::Constructor, mozilla::dom::RTCPeerConnectionJSImpl::AddTrack, mozilla::dom::RTCPeerConnection_Binding::setRemoteDescription_promiseWrapper, mozilla::dom::RTCRtpReceiver::_Create, mozilla::dom::RTCRtpReceiverJSImpl::ProcessTrackAdditionsAndRemovals, mozilla::dom::RTCRtpSender::_Create, mozilla::dom::RTCRtpTransceiver::_Create, mozilla::dom::RTCRtpTransceiverJSImpl::Sync, mozilla::dom::RTCTrackEvent::Constructor, mozilla::dom::ScriptLoader::ProcessInlineScript, mozilla::dom::ScriptLoader::ProcessRequest, mozilla::dom::ScriptLoader::ProcessScriptElement, mozilla::dom::TabChildBase::GetPresShell, mozilla::dom::TimeoutExecutor::MaybeExecute, mozilla::dom::TimeoutManager::RunTimeout, mozilla::dom::ToJSValue, mozilla::dom::WebIDLGlobalNameHash::DefineIfEnabled, mozilla::dom::Window_Binding::ClearCachedDocumentValue, mozilla::dom::ipc::SharedMap::Entry::Read, mozilla::dom::module_getter::ModuleGetter, mozilla::ipc::MessageChannel::DispatchAsyncMessage, mozilla::ipc::MessageChannel::DispatchMessage, mozilla::ipc::MessageChannel::MessageTask::Run, mozilla::ipc::MessageChannel::RunMessage, mozilla::ipc::MessagePump::Run, mozilla::layers::PaintThread::Shutdown, mozilla::net::HttpChannelChild::DoOnStartRequest, mozilla::net::HttpChannelChild::OnStopRequest, mozilla::net::nsLoadGroup::RemoveRequest, mozilla::net::nsStandardURL::TemplatedMutator, nsAppStartupNotifier::NotifyObservers, nsBaseAppShell::Run, nsContentUtils::RemoveScriptBlocker, nsDocLoader::DoFireOnStateChange, nsDocLoader::OnSecurityChange, nsDocLoader::OnStopRequest, nsDocShell::Embed, nsDocShell::EndPageLoad, nsDocShell::EnsureContentViewer, nsDocShell::InternalLoad, nsDocShell::LoadURI, nsDocShell::SetupNewViewer, nsDocumentOpenInfo::DispatchContent, nsDocumentViewer::LoadComplete, nsGlobalWindowInner::InnerSetNewDocument, nsGlobalWindowOuter::SetNewDocument, nsHtml5ExecutorReflusher::Run, nsMessageManagerScriptExecutor::LoadScriptInternal, nsPIDOMWindowOuter::MaybeCreateDoc, nsSecureBrowserUIImpl::OnLocationChange, nsTString, nsThread::ProcessNextEvent, nsWebBrowser::SetDocShell, nsXPCWrappedJSClass::CallMethod, nsXPConnect::InitStatics, onGMPReady, operator, orExpr, peekToken, pod_malloc, putNew, reserve, resolveFun, selectors::parser::parse_compound_selector_list, setLastProperty, start_thread, style::gecko::selector_parser::_$LT$impl$u20$selectors..parser..Parser$LT$$u27$i$GT$$u20$for$u20$style..selector_parser..SelectorParser$LT$$u27$a$GT$$GT$::parse_non_ts_functional_pseudo_class, traceSlots, traverse, trySyntaxParseInnerFunction, unknown stack, updateSlotsForSpan, xpc::CloneInto, xpc::DOMXrayTraits::resolveOwnProperty, xpc::XrayWrapper, xpcModuleCtor]
+lsan-allowed: [AddTrack, Alloc, AllocateObjectBuffer, AllocateProtoAndIfaceCache, AsyncFunctionPromiseReactionJob, AsyncFunctionResume, AtomizeAndCopyChars, AtomizeAndCopyCharsFromLookup, AttemptToExecute, Call, CallFromStack, CallGetter, CallJSNative, CallResolveOp, CloneObject, CompileLazyFunctionImpl, CompileSourceBuffer, CompileUtf8, CopyScopeData, Create, CreateNativeGlobalForInner, CreateWithInheritedAttributes, Define, DefineDataProperty, DoGetOrCreateDOMReflector, EnsureInnerWindow, EnterJit, EntrySlotOrCreate, Evaluate, ExecuteInExtensibleLexicalEnvironment, ExecuteScript, FinishSlowJSInitIfMoreThanOneOwner, GatherAndConvertResults, GetDocument, GetIDPrototype, GetNameOperation, GetProperty, GetPropertyOperation, GetProtoObjectHandle, HandleEvent, InternalConstruct, Interpret, InvokeMethod, JS::Call, JS::CloneAndExecuteScript, JS::CompileUtf8ForNonSyntacticScope, JS::Evaluate, JS::EvaluateUtf8, JS::InitSelfHostedCode, JSFunction::createScriptForLazilyInterpretedFunction, JSRuntime::cloneSelfHostedFunctionScript, JSRuntime::initSelfHosting, JSScript::createPrivateScriptData, JSScript::fullyInitFromEmitter, JS_CallFunctionValue, JS_ResolveStandardClass, LookupOwnPropertyInline, MakeFlatStringForAtomization, MakeRefPtr, MakeUnique, Malloc, NS_ProcessNextEvent, NativeDefineDataProperty, NewObjectWithClassProto, NewStringCopyUTF8Z, NewStringDeflated, NextEnvironmentShape, PromiseConstructor, ProtoAndIfaceCache, ReadStructuredClone, Realloc, ReceiveMessage, RunHandler, RunInternal, SetExistingProperty, SetNonexistentProperty, SetRemoteDescription, SharedStub, TraceWholeCell, Wrap, XDRTrailingName, XPCConvert::NativeInterface2JSObject, XPCJSContext::AfterProcessTask, XPCNativeInterface::NewInstance, XPC_WN_Helper_Resolve, XRE_InitChildProcess, XRE_RunAppShell, _M_begin, accept, addDataProperty, alloc::alloc::realloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::alloc, alloc_system::platform::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$alloc_system..System$GT$::realloc, allocate, already_AddRefed, apply, applyImpl, assignExprWithoutYieldOrAwait, callMain, create, createFrameFromLookup, createObject, createScriptSource, emitInitializer, emitLexicalScopeBody, emitStatementList, ensureConstructor, functionDelazifying, inlinedGetChild, innerFunction, internBodyScope, js::Allocate, js::Atomize, js::BaseProxyHandler::set, js::Call, js::CallSelfHostedFunction, js::CloneFunctionAndScript, js::CloneScriptIntoFunction, js::CreateThisForFunctionWithProto, js::CrossCompartmentWrapper::set, js::DefineDataProperty, js::DefineFunctions, js::Execute, js::ExecuteInJSMEnvironment, js::ExecuteKernel, js::FetchName, js::FunctionScope::create, js::GetEnvironmentName, js::GetProperty, js::GlobalObject::createObject, js::GlobalObject::resolveConstructor, js::HashableValue::setValue, js::HelperThread::threadLoop, js::InitMathClass, js::InternalCallOrConstruct, js::LazyScript::CreateRaw, js::LexicalScope::create, js::MapObject::set, js::NativeDefineProperty, js::NativeGetExistingProperty, js::NativeSetProperty, js::Nursery::collectToFixedPoint, js::ObjectGroup::defaultNewGroup, js::PropertyTree::getChild, js::Proxy::has, js::RunScript, js::SavedStacks::getOrCreateSavedFrame, js::ScriptParseTask::parse, js::SetPropertyIgnoringNamedGetter, js::Shape::hashify, js::StringBuffer::finishAtom, js::WrapAsyncFunction, js::XDRState, js::detail::ThreadTrampoline, js::frontend::BytecodeEmitter::emitArguments, js::frontend::BytecodeEmitter::emitAssignment, js::frontend::BytecodeEmitter::emitCallOrNew, js::frontend::BytecodeEmitter::emitCalleeAndThis, js::frontend::BytecodeEmitter::emitClass, js::frontend::BytecodeEmitter::emitConditionalExpression, js::frontend::BytecodeEmitter::emitExpressionStatement, js::frontend::BytecodeEmitter::emitFunction, js::frontend::BytecodeEmitter::emitFunctionBody, js::frontend::BytecodeEmitter::emitFunctionFormalParametersAndBody, js::frontend::BytecodeEmitter::emitFunctionScript, js::frontend::BytecodeEmitter::emitHoistedFunctionsInList, js::frontend::BytecodeEmitter::emitLexicalScope, js::frontend::BytecodeEmitter::emitObject, js::frontend::BytecodeEmitter::emitPropertyList, js::frontend::BytecodeEmitter::emitScript, js::frontend::BytecodeEmitter::emitSingleDeclaration, js::frontend::BytecodeEmitter::emitTree, js::frontend::CompileGlobalScript, js::frontend::GeneralParser, js::frontend::NameFunctions, js::frontend::ParseNodeVisitor, js::frontend::Parser, js::frontend::ScriptCompiler, js::frontend::SourceAwareCompiler, js::frontend::TokenStreamSpecific, js::fun_call, js::jit::DoGetIntrinsicFallback, js::jit::InterpretResume, js::jit::InvokeFunction, js::jit::MaybeEnterJit, js_arena_realloc, js_pod_arena_malloc, main, make_pod_array, make_unique, maybeAlloc, maybeCreateTableForLookup, maybe_pod_malloc, maybe_pod_realloc, mozJSComponentLoader::ExtractExports, mozJSComponentLoader::Import, mozJSComponentLoader::ImportInto, mozJSComponentLoader::ObjectForLocation, mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint, mozilla::DOMEventTargetHelper::DispatchEvent, mozilla::DOMMediaStream::AddTrackInternal, mozilla::DOMMediaStream::CreateDOMTrack, mozilla::EventDispatcher::Dispatch, mozilla::EventTargetChainItem::HandleEvent, mozilla::JsepAudioCodecDescription::Clone, mozilla::JsepSessionImpl::GetTransceiverForRemote, mozilla::JsepSessionImpl::MakeNegotiatedTransceiver, mozilla::JsepTrack::CreateEncodings, mozilla::NullPrincipalURI::Create, mozilla::PeerConnectionImpl::CreateReceiveTrack, mozilla::PeerConnectionImpl::SetLocalDescription, mozilla::PeerConnectionImpl::SetRemoteDescription, mozilla::PeerConnectionMedia::AddTransceiver, mozilla::PromiseJobRunnable::Run, mozilla::Result, mozilla::SchedulerGroup::Runnable::Run, mozilla::SupportsWeakPtr, mozilla::TransceiverImpl::SyncWithJS, mozilla::WeakPtr, mozilla::detail::HashTable, mozilla::detail::RunnableFunction, mozilla::dom::, mozilla::dom::ChromeUtils::GenerateQI, mozilla::dom::ChromeUtils::Import, mozilla::dom::ChromeUtils_Binding::import, mozilla::dom::ContentChild::RecvLoadProcessScript, mozilla::dom::ContentFrameMessageManager_Binding::get_content, mozilla::dom::ContentProcessMessageManager::LoadScript, mozilla::dom::CreateInterfaceObjects, mozilla::dom::Document::UnblockOnload, mozilla::dom::Event::ConstructorInit, mozilla::dom::ExecuteCompiledScript, mozilla::dom::Function::Call, mozilla::dom::GetPerInterfaceObjectHandle, mozilla::dom::InitIds, mozilla::dom::Location_Binding::set_href, mozilla::dom::MessageListener::ReceiveMessage, mozilla::dom::PBrowserChild::OnMessageReceived, mozilla::dom::PContentChild::OnMessageReceived, mozilla::dom::PeerConnectionImpl_Binding::setLocalDescription, mozilla::dom::PeerConnectionObserverJSImpl::OnSetRemoteDescriptionSuccess, mozilla::dom::PeerConnectionObserverJSImpl::OnStateChange, mozilla::dom::Performance::CreateForMainThread, mozilla::dom::Performance::WrapObject, mozilla::dom::PerformanceMainThread::Timing, mozilla::dom::PerformanceTiming::PerformanceTiming, mozilla::dom::PromiseJobCallback::Call, mozilla::dom::RTCPeerConnection::Constructor, mozilla::dom::RTCPeerConnectionJSImpl::AddTrack, mozilla::dom::RTCPeerConnection_Binding::setRemoteDescription_promiseWrapper, mozilla::dom::RTCRtpReceiver::_Create, mozilla::dom::RTCRtpReceiverJSImpl::ProcessTrackAdditionsAndRemovals, mozilla::dom::RTCRtpSender::_Create, mozilla::dom::RTCRtpTransceiver::_Create, mozilla::dom::RTCRtpTransceiverJSImpl::Sync, mozilla::dom::RTCTrackEvent::Constructor, mozilla::dom::ScriptLoader::ProcessInlineScript, mozilla::dom::ScriptLoader::ProcessRequest, mozilla::dom::ScriptLoader::ProcessScriptElement, mozilla::dom::TabChildBase::GetPresShell, mozilla::dom::TimeoutExecutor::MaybeExecute, mozilla::dom::TimeoutManager::RunTimeout, mozilla::dom::ToJSValue, mozilla::dom::WebIDLGlobalNameHash::DefineIfEnabled, mozilla::dom::Window_Binding::ClearCachedDocumentValue, mozilla::dom::ipc::SharedMap::Entry::Read, mozilla::dom::module_getter::ModuleGetter, mozilla::ipc::MessageChannel::DispatchAsyncMessage, mozilla::ipc::MessageChannel::DispatchMessage, mozilla::ipc::MessageChannel::MessageTask::Run, mozilla::ipc::MessageChannel::RunMessage, mozilla::ipc::MessagePump::Run, mozilla::layers::PaintThread::Shutdown, mozilla::net::HttpChannelChild::DoOnStartRequest, mozilla::net::HttpChannelChild::OnStopRequest, mozilla::net::nsLoadGroup::RemoveRequest, mozilla::net::nsStandardURL::TemplatedMutator, nsAppStartupNotifier::NotifyObservers, nsBaseAppShell::Run, nsContentUtils::RemoveScriptBlocker, nsDocLoader::DoFireOnStateChange, nsDocLoader::OnSecurityChange, nsDocLoader::OnStopRequest, nsDocShell::Embed, nsDocShell::EndPageLoad, nsDocShell::EnsureContentViewer, nsDocShell::InternalLoad, nsDocShell::LoadURI, nsDocShell::SetupNewViewer, nsDocumentOpenInfo::DispatchContent, nsDocumentViewer::LoadComplete, nsGlobalWindowInner::InnerSetNewDocument, nsGlobalWindowOuter::SetNewDocument, nsHtml5ExecutorReflusher::Run, nsMessageManagerScriptExecutor::LoadScriptInternal, nsPIDOMWindowOuter::MaybeCreateDoc, nsSecureBrowserUIImpl::OnLocationChange, nsTString, nsThread::ProcessNextEvent, nsTimerEvent::Run, nsTimerImpl::Fire, nsWebBrowser::SetDocShell, nsXPCWrappedJS::GetNewOrUsed, nsXPCWrappedJSClass::CallMethod, nsXPConnect::InitStatics, onGMPReady, operator, orExpr, peekToken, pod_malloc, putNew, reserve, resolveFun, selectors::parser::parse_compound_selector_list, setIteratedSingleton, setLastProperty, start_thread, std::sys::unix::alloc::_$LT$impl$u20$core..alloc..GlobalAlloc$u20$for$u20$std..alloc..System$GT$::alloc, style::gecko::selector_parser::_$LT$impl$u20$selectors..parser..Parser$LT$$u27$i$GT$$u20$for$u20$style..selector_parser..SelectorParser$LT$$u27$a$GT$$GT$::parse_non_ts_functional_pseudo_class, traceSlots, traverse, trySyntaxParseInnerFunction, unknown stack, updateSlotsForSpan, xpc::CloneInto, xpc::DOMXrayTraits::resolveOwnProperty, xpc::XrayWrapper, xpcModuleCtor]
leak-threshold: [default:51200, tab:256000]
diff --git a/testing/web-platform/meta/webrtc/protocol/missing-fields.html.ini b/testing/web-platform/meta/webrtc/protocol/missing-fields.html.ini
new file mode 100644
index 000000000000..eccf5f7d6519
--- /dev/null
+++ b/testing/web-platform/meta/webrtc/protocol/missing-fields.html.ini
@@ -0,0 +1,7 @@
+[missing-fields.html]
+ [Offer description with no mid is accepted]
+ expected: FAIL
+
+ [Answer description with no mid is accepted]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/websockets/__dir__.ini b/testing/web-platform/meta/websockets/__dir__.ini
index bda6edeca1af..644183206241 100644
--- a/testing/web-platform/meta/websockets/__dir__.ini
+++ b/testing/web-platform/meta/websockets/__dir__.ini
@@ -1,3 +1,3 @@
-lsan-allowed: [Alloc, Create, Malloc, NewPage, PLDHashTable::Add, PLDHashTable::ChangeTable, Realloc, RecvOnAcknowledge, RecvOnStop, mozilla::BasePrincipal::CreateCodebasePrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::ThrottledEventQueue::Create, mozilla::WeakPtr, mozilla::dom::WebSocket::WebSocket, mozilla::dom::WorkerCSPEventListener::Create, mozilla::dom::nsIContentChild::GetConstructedEventTarget, mozilla::net::WebSocketChannelChild::RecvOnServerClose, mozilla::net::nsStandardURL::TemplatedMutator, nsAtomTable::Atomize, nsDocShell::Create]
+lsan-allowed: [Alloc, Create, Malloc, NewPage, PLDHashTable::Add, PLDHashTable::ChangeTable, Realloc, RecvOnAcknowledge, RecvOnStop, mozilla::BasePrincipal::CreateCodebasePrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::ThrottledEventQueue::Create, mozilla::WeakPtr, mozilla::dom::ScriptElement::MaybeProcessScript, mozilla::dom::WebSocket::WebSocket, mozilla::dom::WorkerCSPEventListener::Create, mozilla::dom::nsIContentChild::GetConstructedEventTarget, mozilla::net::WebSocketChannelChild::RecvOnServerClose, mozilla::net::nsStandardURL::TemplatedMutator, nsAtomTable::Atomize, nsDocShell::Create]
lsan-max-stack-depth: 7
-leak-threshold: [default:51200]
+leak-threshold: [default:51200, tab:51200]
diff --git a/testing/web-platform/meta/webstorage/set.window.js.ini b/testing/web-platform/meta/webstorage/set.window.js.ini
new file mode 100644
index 000000000000..687d23b09d1a
--- /dev/null
+++ b/testing/web-platform/meta/webstorage/set.window.js.ini
@@ -0,0 +1,7 @@
+[set.window.html]
+ [Setting property for key x on localStorage with accessor property on prototype]
+ expected: FAIL
+
+ [Setting property for key x on sessionStorage with accessor property on prototype]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webusb/usb-supported-by-feature-policy.html.ini b/testing/web-platform/meta/webusb/usb-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..f0fb5fcb1835
--- /dev/null
+++ b/testing/web-platform/meta/webusb/usb-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[usb-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise usb.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webvr/webvr-supported-by-feature-policy.html.ini b/testing/web-platform/meta/webvr/webvr-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..25b0d2f6347c
--- /dev/null
+++ b/testing/web-platform/meta/webvr/webvr-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[webvr-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise xr.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/idlharness.https.window.js.ini
index 6e65ce3a6c9a..a8c45ae4e5e7 100644
--- a/testing/web-platform/meta/webxr/idlharness.https.window.js.ini
+++ b/testing/web-platform/meta/webxr/idlharness.https.window.js.ini
@@ -932,3 +932,42 @@
[XRRigidTransform interface: attribute matrix]
expected: FAIL
+ [XRRenderState interface object name]
+ expected: FAIL
+
+ [XRRenderState interface object length]
+ expected: FAIL
+
+ [XRRenderState interface: attribute baseLayer]
+ expected: FAIL
+
+ [XRReferenceSpace interface: attribute originOffset]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRRenderState interface: attribute depthFar]
+ expected: FAIL
+
+ [XRRenderState interface: attribute depthNear]
+ expected: FAIL
+
+ [XRSession interface: operation requestReferenceSpace(XRReferenceSpaceOptions)]
+ expected: FAIL
+
+ [XRSession interface: operation updateRenderState(XRRenderStateInit)]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSession interface: attribute renderState]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/navigator_xr_requestDevice.https.html.ini b/testing/web-platform/meta/webxr/navigator_xr_requestDevice.https.html.ini
deleted file mode 100644
index 896509267fd2..000000000000
--- a/testing/web-platform/meta/webxr/navigator_xr_requestDevice.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[navigator_xr_requestDevice.https.html]
- [navigator.xr.requestDevice returns a device]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/navigator_xr_requestDevice_no_device.https.html.ini b/testing/web-platform/meta/webxr/navigator_xr_requestDevice_no_device.https.html.ini
deleted file mode 100644
index 07780b573709..000000000000
--- a/testing/web-platform/meta/webxr/navigator_xr_requestDevice_no_device.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[navigator_xr_requestDevice_no_device.https.html]
- [navigator.xr.requestDevice properly rejects when there are 0 devices]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_create_with_xrdevice.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_create_with_xrdevice.https.html.ini
deleted file mode 100644
index edbceaf8f05b..000000000000
--- a/testing/web-platform/meta/webxr/webGLCanvasContext_create_with_xrdevice.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[webGLCanvasContext_create_with_xrdevice.https.html]
- [webglCanvasContext can be created with an XRDevice]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini
new file mode 100644
index 000000000000..217c17396443
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini
@@ -0,0 +1,4 @@
+[webGLCanvasContext_create_xrcompatible.https.html]
+ [An XR-compatible webglCanvasContext can be created]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini
new file mode 100644
index 000000000000..33544b450d33
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini
@@ -0,0 +1,4 @@
+[webGLCanvasContext_makecompatible_contextlost.https.html]
+ [A lost webglCanvasContext should not be able to set xr compatibility]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_setdevice_contextlost.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_setdevice_contextlost.https.html.ini
deleted file mode 100644
index 67f50f15d6a4..000000000000
--- a/testing/web-platform/meta/webxr/webGLCanvasContext_setdevice_contextlost.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[webGLCanvasContext_setdevice_contextlost.https.html]
- [A lost webglCanvasContext should not be able to set device]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive.https.html.ini
index f864ea05c43c..b66cb8eb7e8f 100644
--- a/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive.https.html.ini
+++ b/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive.https.html.ini
@@ -2,3 +2,6 @@
[supportsSession resolves when immersive options supported]
expected: FAIL
+ [supportsSessionMode resolves when immersive options supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive_unsupported.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive_unsupported.https.html.ini
index 18693bd0c8dc..b37ef14d871d 100644
--- a/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive_unsupported.https.html.ini
+++ b/testing/web-platform/meta/webxr/xrDevice_supportsSession_immersive_unsupported.https.html.ini
@@ -2,3 +2,6 @@
[supportsSession rejects when options not supported]
expected: FAIL
+ [supportsSessionMode rejects when options not supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_supportsSession_non_immersive.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_supportsSession_non_immersive.https.html.ini
index b2eb7bc2f3ea..7f3179c1c75c 100644
--- a/testing/web-platform/meta/webxr/xrDevice_supportsSession_non_immersive.https.html.ini
+++ b/testing/web-platform/meta/webxr/xrDevice_supportsSession_non_immersive.https.html.ini
@@ -2,3 +2,6 @@
[supportsSession resolves when non-immersive options supported]
expected: FAIL
+ [supportsSessionMode resolves when inline options supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_device.https.html.ini b/testing/web-platform/meta/webxr/xrSession_device.https.html.ini
deleted file mode 100644
index 2ad4c3edc961..000000000000
--- a/testing/web-platform/meta/webxr/xrSession_device.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[xrSession_device.https.html]
- [Requested session has device set]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/xrSession_mode.https.html.ini b/testing/web-platform/meta/webxr/xrSession_mode.https.html.ini
new file mode 100644
index 000000000000..538364df8f07
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_mode.https.html.ini
@@ -0,0 +1,4 @@
+[xrSession_mode.https.html]
+ [Requested session has it's mode set]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getDevicePose.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getDevicePose.https.html.ini
deleted file mode 100644
index 986143d88efb..000000000000
--- a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getDevicePose.https.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[xrSession_requestAnimationFrame_getDevicePose.https.html]
- [XRFrame getDevicePose updates on the next frame for non-immersive sessions]
- expected: FAIL
-
- [XRFrame getDevicePose updates on the next frame for immersive sessions]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini
new file mode 100644
index 000000000000..5ee23ba9713a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_requestAnimationFrame_getViewerPose.https.html]
+ [XRFrame getViewerPose updates on the next frame for non-immersive sessions]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for immersive sessions]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestFrameOfReference.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestFrameOfReference.https.html.ini
deleted file mode 100644
index b789a8a5eeea..000000000000
--- a/testing/web-platform/meta/webxr/xrSession_requestFrameOfReference.https.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[xrSession_requestFrameOfReference.https.html]
- [Immersive XRSession requestFrameOfReference returns expected objects]
- expected: FAIL
-
- [Non-immersive XRSession requestFrameOfReference returns expected objects]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini
new file mode 100644
index 000000000000..eee7a9c591df
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_requestReferenceSpace.https.html]
+ [Non-immersive XRSession requestReferenceSpace returns expected objects]
+ expected: FAIL
+
+ [Immersive XRSession requestReferenceSpace returns expected objects]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/workers/semantics/navigation/002.html.ini b/testing/web-platform/meta/workers/semantics/navigation/002.html.ini
index 97bd26576858..5530a39d48f2 100644
--- a/testing/web-platform/meta/workers/semantics/navigation/002.html.ini
+++ b/testing/web-platform/meta/workers/semantics/navigation/002.html.ini
@@ -1 +1,2 @@
prefs: [privacy.reduceTimerPrecision:false]
+[002.html]
diff --git a/testing/web-platform/meta/workers/semantics/run-a-worker/003.html.ini b/testing/web-platform/meta/workers/semantics/run-a-worker/003.html.ini
deleted file mode 100644
index c2c57aec558a..000000000000
--- a/testing/web-platform/meta/workers/semantics/run-a-worker/003.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[003.html]
- [shared]
- expected: FAIL
-
diff --git a/testing/web-platform/meta/xhr/formdata.htm.ini b/testing/web-platform/meta/xhr/formdata.htm.ini
new file mode 100644
index 000000000000..cf8cacd24aff
--- /dev/null
+++ b/testing/web-platform/meta/xhr/formdata.htm.ini
@@ -0,0 +1,7 @@
+[formdata.htm]
+ [|new FormData()| in formdata event handler should throw]
+ expected: FAIL
+
+ [Newly created FormData contains entries added to "formData" IDL attribute of FormDataEvent.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/xhr/sync-xhr-supported-by-feature-policy.html.ini b/testing/web-platform/meta/xhr/sync-xhr-supported-by-feature-policy.html.ini
new file mode 100644
index 000000000000..cc8d8fcd5d0b
--- /dev/null
+++ b/testing/web-platform/meta/xhr/sync-xhr-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[sync-xhr-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise sync-xhr.]
+ expected: FAIL
+
diff --git a/testing/web-platform/mozilla/meta/dom/throttling/throttling-webaudio.window.js.ini b/testing/web-platform/mozilla/meta/dom/throttling/throttling-webaudio.window.js.ini
index f9e1329e4a95..eccef6d0ebfb 100644
--- a/testing/web-platform/mozilla/meta/dom/throttling/throttling-webaudio.window.js.ini
+++ b/testing/web-platform/mozilla/meta/dom/throttling/throttling-webaudio.window.js.ini
@@ -2,4 +2,3 @@
type: testharness
disabled:
if debug: disabled
-
diff --git a/testing/web-platform/tests/.azure-pipelines.yml b/testing/web-platform/tests/.azure-pipelines.yml
index cea8efe2719e..acfb09963915 100644
--- a/testing/web-platform/tests/.azure-pipelines.yml
+++ b/testing/web-platform/tests/.azure-pipelines.yml
@@ -6,26 +6,30 @@
# https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables
# https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/index
#
-# In addition to this configuration file, the "Build pull requests from forks
-# of this repository" setting must also be enabled in the Azure DevOps project:
-# https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github#validate-contributions-from-forks
-
-trigger: none # disable builds for branches
+# In addition to this configuration file, some setup in the Azure DevOps
+# project is required:
+# - The "Build pull requests from forks of this repository" setting must be
+# enabled: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github#validate-contributions-from-forks
+# - A scheduled build needs to be set up for the the epochs/daily branch.
+# - To get results from scheduled builds into wpt.fyi, a service connection
+# named wpt.fyi with URL https://wpt.fyi is needed.
jobs:
# The affected tests jobs are unconditional for speed, as most PRs have one or
# more affected tests: https://github.com/web-platform-tests/wpt/issues/13936.
- job: affected_macOS
displayName: 'affected tests (Safari Technology Preview)'
+ condition: eq(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: 'macOS-10.13'
steps:
- template: tools/ci/azure/affected_tests.yml
parameters:
- artifactName: 'results'
+ artifactName: 'affected-tests'
- job: affected_without_changes_macOS
displayName: 'affected tests without changes (Safari Technology Preview)'
+ condition: eq(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: 'macOS-10.13'
steps:
@@ -33,12 +37,13 @@ jobs:
parameters:
checkoutCommit: 'HEAD^1'
affectedRange: 'HEAD@{1}'
- artifactName: 'results-without-changes'
+ artifactName: 'affected-tests-without-changes'
# The decision jobs runs `./wpt test-jobs` to determine which jobs to run,
# and all following jobs wait for it to finish and depend on its output.
- job: decision
displayName: './wpt test-jobs'
+ condition: eq(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: 'ubuntu-16.04'
steps:
@@ -117,6 +122,50 @@ jobs:
- template: tools/ci/azure/install_chrome.yml
- template: tools/ci/azure/install_firefox.yml
- template: tools/ci/azure/update_hosts.yml
+ - template: tools/ci/azure/update_manifest.yml
- template: tools/ci/azure/tox_pytest.yml
parameters:
directory: tools/wpt/
+
+- job: all_macOS
+ displayName: 'all tests (Safari Technology Preview)'
+ condition: eq(variables['Build.Reason'], 'Schedule')
+ strategy:
+ parallel: 4 # chosen to make runtime ~2h
+ timeoutInMinutes: 360
+ pool:
+ vmImage: 'macOS-10.13'
+ steps:
+ - template: tools/ci/azure/checkout.yml
+ - template: tools/ci/azure/pip_install.yml
+ parameters:
+ packages: virtualenv
+ - template: tools/ci/azure/install_fonts.yml
+ - template: tools/ci/azure/install_certs.yml
+ - template: tools/ci/azure/install_safari.yml
+ - template: tools/ci/azure/update_hosts.yml
+ - template: tools/ci/azure/update_manifest.yml
+ - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --channel preview safari
+ displayName: 'Run tests'
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish results'
+ inputs:
+ artifactName: 'results'
+ condition: succeededOrFailed()
+
+# The InvokeRESTAPI task can only run in a server job.
+- job: all_post
+ displayName: 'all tests (wpt.fyi hook)'
+ dependsOn: all_macOS
+ pool: server
+ steps:
+ - task: InvokeRESTAPI@1
+ displayName: 'Invoke wpt.fyi hook'
+ inputs:
+ serviceConnection: wpt.fyi
+ urlSuffix: /api/checks/azure/$(Build.BuildId)
+ - task: InvokeRESTAPI@1
+ displayName: 'Invoke staging.wpt.fyi hook'
+ inputs:
+ serviceConnection: staging.wpt.fyi
+ urlSuffix: /api/checks/azure/$(Build.BuildId)
diff --git a/testing/web-platform/tests/.gitignore b/testing/web-platform/tests/.gitignore
index a71d35cb8bd8..8e3a85183ef9 100644
--- a/testing/web-platform/tests/.gitignore
+++ b/testing/web-platform/tests/.gitignore
@@ -15,6 +15,11 @@ node_modules/
.wptcache/
/config.json
+# Files generated when regenerating pre-generated certs
+/tools/certs/0*.pem
+/tools/certs/index.txt*
+/tools/certs/serial*
+
# Various OS/editor specific files
*#
*.sw[po]
diff --git a/testing/web-platform/tests/.taskcluster.yml b/testing/web-platform/tests/.taskcluster.yml
index 4a6de3b5b177..1045e07c8df8 100644
--- a/testing/web-platform/tests/.taskcluster.yml
+++ b/testing/web-platform/tests/.taskcluster.yml
@@ -61,7 +61,7 @@ tasks:
owner: ${event.pusher.email}
source: ${event.repository.url}
payload:
- image: harjgam/web-platform-tests:0.25
+ image: harjgam/web-platform-tests:0.29
maxRunTime: 7200
artifacts:
public/results:
@@ -136,7 +136,7 @@ tasks:
owner: ${event.pull_request.user.login}@users.noreply.github.com
source: ${event.repository.url}
payload:
- image: harjgam/web-platform-tests:0.25
+ image: harjgam/web-platform-tests:0.29
maxRunTime: 7200
artifacts:
public/results:
diff --git a/testing/web-platform/tests/.travis.yml b/testing/web-platform/tests/.travis.yml
index 8d4152f0285c..0453132c0df8 100644
--- a/testing/web-platform/tests/.travis.yml
+++ b/testing/web-platform/tests/.travis.yml
@@ -43,25 +43,6 @@ matrix:
os: linux
python: "2.7"
env: JOB=build_css SCRIPT=css/build-css-testsuites.sh
- - name: "stability (Firefox Nightly)"
- if: type = pull_request
- os: linux
- python: "2.7"
- addons:
- apt:
- packages:
- - libnss3-tools
- env: JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=firefox:nightly
- - name: "stability (Chrome Dev)"
- if: type = pull_request
- os: linux
- python: "2.7"
- addons:
- apt:
- packages:
- - libappindicator1
- - fonts-liberation
- env: JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=chrome:dev
- name: "tools/ unittests (Python 2)"
if: type = pull_request
os: linux
@@ -101,8 +82,6 @@ matrix:
- env: # exclude empty env from the top-level above
allow_failures:
- env: JOB=build_css SCRIPT=css/build-css-testsuites.sh
- - env: JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=firefox:nightly
- - env: JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=chrome:dev
script:
- ./tools/ci/run.sh
cache:
diff --git a/testing/web-platform/tests/2dcontext/context-attributes/getContextAttributes.html b/testing/web-platform/tests/2dcontext/context-attributes/getContextAttributes.html
new file mode 100644
index 000000000000..cff02ea06f6e
--- /dev/null
+++ b/testing/web-platform/tests/2dcontext/context-attributes/getContextAttributes.html
@@ -0,0 +1,34 @@
+
+
+
+
diff --git a/testing/web-platform/tests/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html b/testing/web-platform/tests/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html
new file mode 100644
index 000000000000..f29b2bf5a8a7
--- /dev/null
+++ b/testing/web-platform/tests/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html
@@ -0,0 +1,32 @@
+
+
+Draw an SVG image with a foreignObject to a canvas
+
+
+
diff --git a/testing/web-platform/tests/IndexedDB/idb-explicit-commit.any.js b/testing/web-platform/tests/IndexedDB/idb-explicit-commit.any.js
index da4bd8c95269..12e56cc267a2 100644
--- a/testing/web-platform/tests/IndexedDB/idb-explicit-commit.any.js
+++ b/testing/web-platform/tests/IndexedDB/idb-explicit-commit.any.js
@@ -188,20 +188,17 @@ promise_test(async testCase => {
});
// Txn1 should commit before txn2, even though txn2 uses commit().
const txn1 = db.transaction(['books'], 'readwrite');
- const objectStore1 = txn1.objectStore('books');
- const putRequest1 = objectStore1.put({isbn:'one', title:'title1'});
+ txn1.objectStore('books').put({isbn: 'one', title: 'title1'});
const releaseTxnFunction = keepAlive(testCase, txn1, 'books');
const txn2 = db.transaction(['books'], 'readwrite');
- const objectStore2 = txn2.objectStore('books');
- const putRequest2 = objectStore2.put({isbn:'one', title:'title2'});
+ txn2.objectStore('books').put({isbn:'one', title:'title2'});
txn2.commit();
// Exercise the IndexedDB transaction ordering by executing one with a
// different scope.
const txn3 = db.transaction(['not_books'], 'readwrite');
- const objectStore3 = txn3.objectStore('not_books');
- objectStore3.put({'title': 'not_title'}, 'key');
+ txn3.objectStore('not_books').put({'title': 'not_title'}, 'key');
txn3.oncomplete = function() {
releaseTxnFunction();
}
@@ -210,8 +207,7 @@ promise_test(async testCase => {
// Read the data back to verify that txn2 executed last.
const txn4 = db.transaction(['books'], 'readonly');
- const objectStore4 = txn4.objectStore('books');
- const getRequest4 = objectStore4.get('one');
+ const getRequest4 = txn4.objectStore('books').get('one');
await promiseForTransaction(testCase, txn4);
assert_equals(getRequest4.result.title, 'title2');
db.close();
@@ -225,8 +221,7 @@ promise_test(async testCase => {
});
// Txn1 creates the book 'one' so the 'add()' below fails.
const txn1 = db.transaction(['books'], 'readwrite');
- const objectStore1 = txn1.objectStore('books');
- const putRequest1 = objectStore1.add({isbn:'one', title:'title1'});
+ txn1.objectStore('books').add({isbn:'one', title:'title1'});
txn1.commit();
await promiseForTransaction(testCase, txn1);
@@ -235,15 +230,17 @@ promise_test(async testCase => {
const txn2 = db.transaction(['books'], 'readwrite');
const objectStore2 = txn2.objectStore('books');
objectStore2.put({isbn:'two', title:'title2'});
- const addRequest2 = objectStore2.add({isbn:'one', title:'title2'});
+ const addRequest = objectStore2.add({isbn:'one', title:'title2'});
txn2.commit();
- txn2.oncomplete = assert_unreached(
- 'Transaction with invalid "add" call should not be completed.');
+ txn2.oncomplete = () => { assert_unreached(
+ 'Transaction with invalid "add" call should not be completed.'); };
- var addWatcher = requestWatcher(testCase, addRequest2);
- var txnWatcher = transactionWatcher(testCase, txn2);
- await Promise.all([addWatcher.wait_for('error'),
- txnWatcher.wait_for('error', 'abort')]);
+ // Wait for the transaction to complete. We have to explicitly wait for the
+ // error signal on the transaction because of the nature of the test tooling.
+ await Promise.all([
+ requestWatcher(testCase, addRequest).wait_for('error'),
+ transactionWatcher(testCase, txn2).wait_for(['error', 'abort'])
+ ]);
// Read the data back to verify that txn2 was aborted.
const txn3 = db.transaction(['books'], 'readonly');
@@ -255,3 +252,41 @@ promise_test(async testCase => {
assert_equals(getRequest2.result, 0);
db.close();
}, 'Transactions that explicitly commit and have errors should abort.');
+
+
+promise_test(async testCase => {
+ const db = await createDatabase(testCase, db => {
+ createBooksStore(testCase, db);
+ });
+ const txn1 = db.transaction(['books'], 'readwrite');
+ txn1.objectStore('books').add({isbn: 'one', title: 'title1'});
+ txn1.commit();
+ await promiseForTransaction(testCase, txn1);
+
+ // The second add request will throw an error, but the onerror handler will
+ // appropriately catch the error allowing the valid put request on the
+ // transaction to commit.
+ const txn2 = db.transaction(['books'], 'readwrite');
+ const objectStore2 = txn2.objectStore('books');
+ objectStore2.put({isbn: 'two', title:'title2'});
+ const addRequest = objectStore2.add({isbn: 'one', title:'unreached_title'});
+ addRequest.onerror = (event) => {
+ event.preventDefault();
+ addRequest.transaction.commit();
+ };
+
+ // Wait for the transaction to complete. We have to explicitly wait for the
+ // error signal on the transaction because of the nature of the test tooling.
+ await transactionWatcher(testCase,txn2).wait_for(['error', 'complete'])
+
+ // Read the data back to verify that txn2 was committed.
+ const txn3 = db.transaction(['books'], 'readonly');
+ const objectStore3 = txn3.objectStore('books');
+ const getRequest1 = objectStore3.get('one');
+ const getRequest2 = objectStore3.get('two');
+ await promiseForTransaction(testCase, txn3);
+ assert_equals(getRequest1.result.title, 'title1');
+ assert_equals(getRequest2.result.title, 'title2');
+ db.close();
+}, 'Transactions that handle all errors properly should be behave as ' +
+ 'expected when an explicit commit is called in an onerror handler.');
diff --git a/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm b/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
index cb64d0b708eb..0692bed32ce5 100644
--- a/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
+++ b/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
@@ -54,6 +54,8 @@
const result = request.result;
assert_key_equals(result[testcase.property], key,
'Property should be used as key');
+ });
+ tx.oncomplete = t.step_func(function() {
t.done();
});
},
diff --git a/testing/web-platform/tests/accelerometer/Accelerometer-supported-by-feature-policy.html b/testing/web-platform/tests/accelerometer/Accelerometer-supported-by-feature-policy.html
new file mode 100644
index 000000000000..8e09c7acdfba
--- /dev/null
+++ b/testing/web-platform/tests/accelerometer/Accelerometer-supported-by-feature-policy.html
@@ -0,0 +1,11 @@
+
+Test that accelerometer is advertised in the feature list
+
+
+
+
+
diff --git a/testing/web-platform/tests/ambient-light/AmbientLightSensor-supported-by-feature-policy.html b/testing/web-platform/tests/ambient-light/AmbientLightSensor-supported-by-feature-policy.html
new file mode 100644
index 000000000000..d5c27c8bef29
--- /dev/null
+++ b/testing/web-platform/tests/ambient-light/AmbientLightSensor-supported-by-feature-policy.html
@@ -0,0 +1,11 @@
+
+Test that ambient-light-sensor is advertised in the feature list
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/animation-worklet-inside-iframe.https.html b/testing/web-platform/tests/animation-worklet/animation-worklet-inside-iframe.https.html
new file mode 100644
index 000000000000..b02186309dc2
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/animation-worklet-inside-iframe.https.html
@@ -0,0 +1,57 @@
+
+Test that AnimationWorklet inside frames with different origin causes new global scopes
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/common.js b/testing/web-platform/tests/animation-worklet/common.js
new file mode 100644
index 000000000000..eb114f246872
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/common.js
@@ -0,0 +1,32 @@
+'use strict';
+
+function registerPassthroughAnimator() {
+ return runInAnimationWorklet(`
+ registerAnimator('passthrough', class {
+ animate(currentTime, effect) { effect.localTime = currentTime; }
+ });
+ `);
+}
+
+function registerConstantLocalTimeAnimator(localTime) {
+ return runInAnimationWorklet(`
+ registerAnimator('constant_time', class {
+ animate(currentTime, effect) { effect.localTime = ${localTime}; }
+ });
+ `);
+}
+
+
+function runInAnimationWorklet(code) {
+ return CSS.animationWorklet.addModule(
+ URL.createObjectURL(new Blob([code], {type: 'text/javascript'}))
+ );
+}
+
+function waitForAsyncAnimationFrames(count) {
+ // In Chrome, waiting for N+1 main thread frames guarantees that compositor has produced
+ // at least N frames.
+ // TODO(majidvp): re-evaluate this choice once other browsers have implemented
+ // AnimationWorklet.
+ return waitForAnimationFrames(count + 1);
+}
diff --git a/testing/web-platform/tests/animation-worklet/current-time.https.html b/testing/web-platform/tests/animation-worklet/current-time.https.html
new file mode 100644
index 000000000000..402c49307df7
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/current-time.https.html
@@ -0,0 +1,48 @@
+
+
+The current time of a worklet animation
+
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/resources/animator-iframe.html b/testing/web-platform/tests/animation-worklet/resources/animator-iframe.html
new file mode 100644
index 000000000000..e30cc281fcde
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/resources/animator-iframe.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/scroll-timeline-writing-modes.https.html b/testing/web-platform/tests/animation-worklet/scroll-timeline-writing-modes.https.html
new file mode 100644
index 000000000000..5b20f03bfadb
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/scroll-timeline-writing-modes.https.html
@@ -0,0 +1,168 @@
+
+Tests that ScrollTimeline works properly with writing mode and directionality
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/worklet-animation-with-fill-mode.https.html b/testing/web-platform/tests/animation-worklet/worklet-animation-with-fill-mode.https.html
new file mode 100644
index 000000000000..49fead8bd39c
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/worklet-animation-with-fill-mode.https.html
@@ -0,0 +1,96 @@
+
+Test that worklet animation works with different fill modes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/animation-worklet/worklet-animation-with-invalid-effect.https.html b/testing/web-platform/tests/animation-worklet/worklet-animation-with-invalid-effect.https.html
new file mode 100644
index 000000000000..8b72d4e487c4
--- /dev/null
+++ b/testing/web-platform/tests/animation-worklet/worklet-animation-with-invalid-effect.https.html
@@ -0,0 +1,36 @@
+
+Test that worklet animation with invalid effect cannot be played
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/async-local-storage/META.yml b/testing/web-platform/tests/async-local-storage/META.yml
deleted file mode 100644
index 1bbe9e5ac609..000000000000
--- a/testing/web-platform/tests/async-local-storage/META.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-spec: https://domenic.github.io/async-local-storage/
-suggested_reviewers:
- - domenic
diff --git a/testing/web-platform/tests/async-local-storage/helpers/equality-asserters.js b/testing/web-platform/tests/async-local-storage/helpers/equality-asserters.js
deleted file mode 100644
index ad4623c179d7..000000000000
--- a/testing/web-platform/tests/async-local-storage/helpers/equality-asserters.js
+++ /dev/null
@@ -1,37 +0,0 @@
-export function assertEqualDates(actual, expected, label) {
- assert_equals(expected.constructor, Date,
- "assertEqualDates usage check: expected must be a Date");
-
- const labelPart = label === undefined ? "" : `${label}: `;
- assert_equals(actual.constructor, Date, `${labelPart}must be a Date`);
- assert_equals(actual.valueOf(), expected.valueOf(), `${labelPart}timestamps must match`);
-}
-
-export function assertEqualArrayBuffers(actual, expected, label) {
- assert_equals(expected.constructor, ArrayBuffer,
- "assertEqualArrayBuffers usage check: expected must be an ArrayBuffer");
-
- const labelPart = label === undefined ? "" : `${label}: `;
- assert_equals(actual.constructor, ArrayBuffer, `${labelPart}must be an ArrayBuffer`);
- assert_array_equals(new Uint8Array(actual), new Uint8Array(expected), `${labelPart}must match`);
-}
-
-export function assertArrayBufferEqualsABView(actual, expected, label) {
- assert_true(ArrayBuffer.isView(expected),
- "assertArrayBufferEqualsABView usage check: expected must be an ArrayBuffer view");
-
- assertEqualArrayBuffers(actual, expected.buffer, label);
-}
-
-export function assertArrayCustomEquals(actual, expected, equalityAsserter, label) {
- assert_true(Array.isArray(expected),
- "assertArrayCustomEquals usage check: expected must be an Array");
-
- const labelPart = label === undefined ? "" : `${label}: `;
- assert_true(Array.isArray(actual), `${labelPart}must be an array`);
- assert_equals(actual.length, expected.length, `${labelPart}length must be as expected`);
-
- for (let i = 0; i < actual.length; ++i) {
- equalityAsserter(actual[i], expected[i], `${labelPart}index ${i}`);
- }
-}
diff --git a/testing/web-platform/tests/background-fetch/fetch-uploads.https.window.js b/testing/web-platform/tests/background-fetch/fetch-uploads.https.window.js
index c53b29966458..f93f88a6bae7 100644
--- a/testing/web-platform/tests/background-fetch/fetch-uploads.https.window.js
+++ b/testing/web-platform/tests/background-fetch/fetch-uploads.https.window.js
@@ -9,15 +9,56 @@
backgroundFetchTest(async (test, backgroundFetch) => {
const uploadData = 'Background Fetch!';
const request =
- new Request('resources/upload.py', {method: 'POST', body: uploadData});
+ new Request('resources/upload.py', {method: 'POST', body: uploadData});
+
+ const registration = await backgroundFetch.fetch(uniqueId(), request);
+ assert_equals(registration.uploadTotal, uploadData.length);
- await backgroundFetch.fetch(uniqueId(), request);
const {type, eventRegistration, results} = await getMessageFromServiceWorker();
-
assert_equals(type, 'backgroundfetchsuccess');
assert_equals(results.length, 1);
assert_equals(eventRegistration.result, 'success');
assert_equals(eventRegistration.failureReason, '');
+ assert_equals(eventRegistration.uploaded, uploadData.length);
assert_equals(results[0].text, uploadData);
+}, 'Fetch with an upload should work');
-}, 'Fetch with an upload should work');
\ No newline at end of file
+backgroundFetchTest(async (test, backgroundFetch) => {
+ const uploadData = 'Background Fetch!';
+ const uploadRequest =
+ new Request('resources/upload.py', {method: 'POST', body: uploadData});
+
+ const registration = await backgroundFetch.fetch(
+ uniqueId(),
+ [uploadRequest, '/common/slow.py']);
+
+ const uploaded = await new Promise(resolve => {
+ registration.onprogress = event => {
+ if (event.target.downloaded === 0)
+ return;
+ // If a progress event with downloaded bytes was received, then
+ // everything was uploaded.
+ resolve(event.target.uploaded);
+ };
+ });
+
+ assert_equals(uploaded, uploadData.length);
+}, 'Progress event includes uploaded bytes');
+
+backgroundFetchTest(async (test, backgroundFetch) => {
+ const uploadRequest1 =
+ new Request('resources/upload.py', {method: 'POST', body: 'upload1'});
+ const uploadRequest2 =
+ new Request('resources/upload.py', {method: 'POST', body: 'upload2'});
+
+ await backgroundFetch.fetch(uniqueId(), [uploadRequest1, uploadRequest2]);
+
+ const {type, eventRegistration, results} = await getMessageFromServiceWorker();
+ assert_equals(type, 'backgroundfetchsuccess');
+ assert_equals(results.length, 2);
+ assert_equals(eventRegistration.result, 'success');
+ assert_equals(eventRegistration.failureReason, '');
+
+ assert_array_equals([results[0].text, results[1].text].sort(),
+ ['upload1', 'upload2']);
+}, 'Duplicate upload requests work and can be distinguished.');
diff --git a/testing/web-platform/tests/background-fetch/fetch.https.window.js b/testing/web-platform/tests/background-fetch/fetch.https.window.js
index 6a8cf6c0e3a9..35b5709d22b8 100644
--- a/testing/web-platform/tests/background-fetch/fetch.https.window.js
+++ b/testing/web-platform/tests/background-fetch/fetch.https.window.js
@@ -1,5 +1,7 @@
+// META: script=/common/get-host-info.sub.js
// META: script=/service-workers/service-worker/resources/test-helpers.sub.js
// META: script=resources/utils.js
+
'use strict';
// Covers basic functionality provided by BackgroundFetchManager.fetch().
@@ -324,3 +326,43 @@ backgroundFetchTest(async (test, backgroundFetch) => {
assert_equals(results[1].text, 'Background Fetch');
}, 'Matching multiple times on the same request works as expected.');
+
+backgroundFetchTest(async (test, backgroundFetch) => {
+ const filePath = '/background-fetch/resources/feature-name.txt';
+ const registration = await backgroundFetch.fetch(
+ uniqueId(),
+ `https://${get_host_info().REMOTE_HOST}${filePath}`);
+
+ const {type, eventRegistration, results} = await getMessageFromServiceWorker();
+ assert_equals(type, 'backgroundfetchfail');
+ assert_equals(results.length, 1);
+
+ assert_equals(results[0], null);
+ assert_equals(eventRegistration.id, registration.id);
+ assert_equals(eventRegistration.downloaded, 0);
+}, 'Responses failing CORS checks are not leaked');
+
+backgroundFetchTest(async (test, backgroundFetch) => {
+ const registration = await backgroundFetch.fetch(
+ uniqueId(), ['resources/feature-name.txt', '/common/slow.py']);
+
+ const record = await registration.match('resources/feature-name.txt');
+
+ await new Promise(resolve => {
+ const expectedResultText = 'Background Fetch';
+
+ registration.onprogress = async event => {
+ if (event.target.downloaded < expectedResultText.length)
+ return;
+
+ const response = await record.responseReady;
+
+ assert_true(response.url.includes('resources/feature-name.txt'));
+ const completedResponseText = await response.text();
+ assert_equals(completedResponseText, expectedResultText);
+
+ resolve();
+ };
+ });
+
+}, 'Access to active fetches is supported.');
diff --git a/testing/web-platform/tests/bluetooth/META.yml b/testing/web-platform/tests/bluetooth/META.yml
index c93f16a3a5f4..501396bac744 100644
--- a/testing/web-platform/tests/bluetooth/META.yml
+++ b/testing/web-platform/tests/bluetooth/META.yml
@@ -1,5 +1,6 @@
spec: https://webbluetoothcg.github.io/web-bluetooth/
suggested_reviewers:
- - jyasskin
+ - dougt
- g-ortuno
- - scheib
+ - odejesush
+ - reillyeon
diff --git a/testing/web-platform/tests/bluetooth/characteristic/characteristicProperties.https.html b/testing/web-platform/tests/bluetooth/characteristic/characteristicProperties.https.html
index d20d435999fa..0747af2fc9c6 100644
--- a/testing/web-platform/tests/bluetooth/characteristic/characteristicProperties.https.html
+++ b/testing/web-platform/tests/bluetooth/characteristic/characteristicProperties.https.html
@@ -8,19 +8,22 @@
'use strict';
const test_desc = 'HeartRate device properties';
-bluetooth_test(() => getHealthThermometerService()
- .then(({service}) => Promise.all([
- service.getCharacteristic('temperature_measurement'),
- service.getCharacteristic('measurement_interval')]))
- .then(([temperature_measurement, measurement_interval]) => {
- let tm_expected_properties =
- new TestCharacteristicProperties(['indicate']);
- assert_properties_equal(temperature_measurement.properties,
- tm_expected_properties);
+bluetooth_test(
+ () => getHealthThermometerService()
+ .then(({service}) => Promise.all([
+ service.getCharacteristic('temperature_measurement'),
+ service.getCharacteristic('measurement_interval')
+ ]))
+ .then(([temperature_measurement, measurement_interval]) => {
+ let tm_expected_properties =
+ new TestCharacteristicProperties(['indicate']);
+ assert_properties_equal(
+ temperature_measurement.properties, tm_expected_properties);
- let mi_expected_properties =
- new TestCharacteristicProperties(['read', 'write', 'indicate']);
- assert_properties_equal(measurement_interval.properties,
- mi_expected_properties);
- }), test_desc);
+ let mi_expected_properties = new TestCharacteristicProperties(
+ ['read', 'write', 'indicate']);
+ assert_properties_equal(
+ measurement_interval.properties, mi_expected_properties);
+ }),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html b/testing/web-platform/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html
index aa156b2e9881..395d49b7f07f 100644
--- a/testing/web-platform/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html
+++ b/testing/web-platform/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html
@@ -8,12 +8,14 @@
'use strict';
const test_desc = 'Same parent service returned from multiple characteristics.';
-bluetooth_test(() => getHealthThermometerService()
- .then(({service}) => Promise.all([
- service.getCharacteristic('measurement_interval'),
- service.getCharacteristic('temperature_measurement')
- ]))
- .then(characteristics =>
- assert_equals(characteristics[0].service, characteristics[1].service)),
+bluetooth_test(
+ () => getHealthThermometerService()
+ .then(({service}) => Promise.all([
+ service.getCharacteristic('measurement_interval'),
+ service.getCharacteristic('temperature_measurement')
+ ]))
+ .then(
+ characteristics => assert_equals(
+ characteristics[0].service, characteristics[1].service)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/characteristic/service-same-object.https.html b/testing/web-platform/tests/bluetooth/characteristic/service-same-object.https.html
index ee9612169836..0b2a91572143 100644
--- a/testing/web-platform/tests/bluetooth/characteristic/service-same-object.https.html
+++ b/testing/web-platform/tests/bluetooth/characteristic/service-same-object.https.html
@@ -7,10 +7,11 @@
diff --git a/testing/web-platform/tests/bluetooth/idl/idl-Bluetooth.https.html b/testing/web-platform/tests/bluetooth/idl/idl-Bluetooth.https.html
index 2835236d3b58..9578fd6af21b 100644
--- a/testing/web-platform/tests/bluetooth/idl/idl-Bluetooth.https.html
+++ b/testing/web-platform/tests/bluetooth/idl/idl-Bluetooth.https.html
@@ -7,10 +7,12 @@
const test_desc = 'Bluetooth IDL test';
test(() => {
- assert_throws(new TypeError(), () => new Bluetooth(),
- 'the constructor should not be callable with "new"');
- assert_throws(new TypeError(), () => Bluetooth(),
- 'the constructor should not be callable');
+ assert_throws(
+ new TypeError(), () => new Bluetooth(),
+ 'the constructor should not be callable with "new"');
+ assert_throws(
+ new TypeError(), () => Bluetooth(),
+ 'the constructor should not be callable');
// Bluetooth implements BluetoothDiscovery;
assert_true('requestDevice' in navigator.bluetooth);
diff --git a/testing/web-platform/tests/bluetooth/idl/idl-BluetoothDevice.https.html b/testing/web-platform/tests/bluetooth/idl/idl-BluetoothDevice.https.html
index 631d9dd4300d..707ac1ab03a9 100644
--- a/testing/web-platform/tests/bluetooth/idl/idl-BluetoothDevice.https.html
+++ b/testing/web-platform/tests/bluetooth/idl/idl-BluetoothDevice.https.html
@@ -9,23 +9,28 @@
const test_desc_idl = 'BluetoothDevice IDL test.';
test(() => {
- assert_throws(new TypeError(), () => new BluetoothDevice(),
+ assert_throws(
+ new TypeError(), () => new BluetoothDevice(),
'the constructor should not be callable with "new"');
- assert_throws(new TypeError(), () => BluetoothDevice(),
+ assert_throws(
+ new TypeError(), () => BluetoothDevice(),
'the constructor should not be callable');
}, test_desc_idl);
const test_desc_attr = 'BluetoothDevice attributes.';
let device;
-bluetooth_test(() => getConnectedHealthThermometerDevice()
- .then(({device}) => {
- assert_equals(device.constructor.name, 'BluetoothDevice');
- var old_device_id = device.id;
- assert_throws(new TypeError(), () => device.id = 'overwritten',
- 'the device id should not be writable');
- assert_throws(new TypeError(), () => device.name = 'overwritten',
- 'the device name should not be writable');
- assert_equals(device.id, old_device_id);
- assert_equals(device.name, 'Health Thermometer');
- }), test_desc_attr);
+bluetooth_test(
+ () => getConnectedHealthThermometerDevice().then(({device}) => {
+ assert_equals(device.constructor.name, 'BluetoothDevice');
+ var old_device_id = device.id;
+ assert_throws(
+ new TypeError(), () => device.id = 'overwritten',
+ 'the device id should not be writable');
+ assert_throws(
+ new TypeError(), () => device.name = 'overwritten',
+ 'the device name should not be writable');
+ assert_equals(device.id, old_device_id);
+ assert_equals(device.name, 'Health Thermometer');
+ }),
+ test_desc_attr);
diff --git a/testing/web-platform/tests/bluetooth/idl/idl-BluetoothUUID.html b/testing/web-platform/tests/bluetooth/idl/idl-BluetoothUUID.html
index efebb15cb250..2adf35a419ff 100644
--- a/testing/web-platform/tests/bluetooth/idl/idl-BluetoothUUID.html
+++ b/testing/web-platform/tests/bluetooth/idl/idl-BluetoothUUID.html
@@ -19,22 +19,25 @@ test(() => {
assert_equals(BluetoothUUID.getDescriptor(NaN), base_uuid);
}, 'NaN returns basic uuid');
-test(() => {
- let max_uuid = 'ffffffff-0000-1000-8000-00805f9b34fb';
- let nine_digits = 0xfffffffff;
- let thirteen_digits = 0xfffffffffffff;
- let fourteen_digits = 0xffffffffffffff;
- assert_equals(BluetoothUUID.getService(nine_digits), max_uuid);
- assert_equals(BluetoothUUID.getCharacteristic(nine_digits), max_uuid);
- assert_equals(BluetoothUUID.getDescriptor(nine_digits), max_uuid);
- assert_equals(BluetoothUUID.getService(thirteen_digits), max_uuid);
- assert_equals(BluetoothUUID.getCharacteristic(thirteen_digits), max_uuid);
- assert_equals(BluetoothUUID.getDescriptor(thirteen_digits), max_uuid);
- assert_equals(BluetoothUUID.getService(fourteen_digits), base_uuid);
- assert_equals(BluetoothUUID.getCharacteristic(fourteen_digits), base_uuid);
- assert_equals(BluetoothUUID.getDescriptor(fourteen_digits), base_uuid);
-}, 'Values between 0xfffffffff (8 digits) and 0xffffffffffffff (14 digits)' +
- 'should return max UUID');
+test(
+ () => {
+ let max_uuid = 'ffffffff-0000-1000-8000-00805f9b34fb';
+ let nine_digits = 0xfffffffff;
+ let thirteen_digits = 0xfffffffffffff;
+ let fourteen_digits = 0xffffffffffffff;
+ assert_equals(BluetoothUUID.getService(nine_digits), max_uuid);
+ assert_equals(BluetoothUUID.getCharacteristic(nine_digits), max_uuid);
+ assert_equals(BluetoothUUID.getDescriptor(nine_digits), max_uuid);
+ assert_equals(BluetoothUUID.getService(thirteen_digits), max_uuid);
+ assert_equals(BluetoothUUID.getCharacteristic(thirteen_digits), max_uuid);
+ assert_equals(BluetoothUUID.getDescriptor(thirteen_digits), max_uuid);
+ assert_equals(BluetoothUUID.getService(fourteen_digits), base_uuid);
+ assert_equals(
+ BluetoothUUID.getCharacteristic(fourteen_digits), base_uuid);
+ assert_equals(BluetoothUUID.getDescriptor(fourteen_digits), base_uuid);
+ },
+ 'Values between 0xfffffffff (8 digits) and 0xffffffffffffff (14 digits)' +
+ 'should return max UUID');
test(() => {
assert_equals(BluetoothUUID.getService(Infinity), base_uuid);
@@ -54,7 +57,8 @@ test(() => {
let adeadbeef_alias = 0xADEADBEEF;
let adeadbeef_uuid = 'deadbeef-0000-1000-8000-00805f9b34fb';
assert_equals(BluetoothUUID.getService(adeadbeef_alias), adeadbeef_uuid);
- assert_equals(BluetoothUUID.getCharacteristic(adeadbeef_alias), adeadbeef_uuid);
+ assert_equals(
+ BluetoothUUID.getCharacteristic(adeadbeef_alias), adeadbeef_uuid);
assert_equals(BluetoothUUID.getDescriptor(adeadbeef_alias), adeadbeef_uuid);
}, 'Only first 32bits should be used.');
@@ -68,31 +72,40 @@ test(() => {
test(() => {
let all_caps_uuid = '1A2B3C4D-5E6F-7A8B-9C0D-1E2F3A4B5C6D';
assert_throws(TypeError(), () => BluetoothUUID.getService(all_caps_uuid));
- assert_throws(TypeError(), () => BluetoothUUID.getCharacteristic(all_caps_uuid));
+ assert_throws(
+ TypeError(), () => BluetoothUUID.getCharacteristic(all_caps_uuid));
assert_throws(TypeError(), () => BluetoothUUID.getDescriptor(all_caps_uuid));
}, 'A UUID String with uppercase letters is an invalid UUID.');
test(() => {
let string_alias = 'deadbeef';
assert_throws(TypeError(), () => BluetoothUUID.getService(string_alias));
- assert_throws(TypeError(), () => BluetoothUUID.getCharacteristic(string_alias));
+ assert_throws(
+ TypeError(), () => BluetoothUUID.getCharacteristic(string_alias));
assert_throws(TypeError(), () => BluetoothUUID.getDescriptor(string_alias));
}, 'A 32bit *String* alias is invalid.');
test(() => {
let invalid_character_uuid = '0000000g-0000-1000-8000-00805f9b34fb';
- assert_throws(TypeError(), () => BluetoothUUID.getService(invalid_character_uuid));
- assert_throws(TypeError(), () => BluetoothUUID.getCharacteristic(invalid_character_uuid));
- assert_throws(TypeError(), () => BluetoothUUID.getDescriptor(invalid_character_uuid));
+ assert_throws(
+ TypeError(), () => BluetoothUUID.getService(invalid_character_uuid));
+ assert_throws(
+ TypeError(),
+ () => BluetoothUUID.getCharacteristic(invalid_character_uuid));
+ assert_throws(
+ TypeError(), () => BluetoothUUID.getDescriptor(invalid_character_uuid));
}, 'A UUID with invalid characters is an invalid UUID.');
test(() => {
- assert_equals(BluetoothUUID.getService('alert_notification'),
- '00001811-0000-1000-8000-00805f9b34fb');
- assert_equals(BluetoothUUID.getCharacteristic('aerobic_heart_rate_lower_limit'),
- '00002a7e-0000-1000-8000-00805f9b34fb');
- assert_equals(BluetoothUUID.getDescriptor('gatt.characteristic_extended_properties'),
- '00002900-0000-1000-8000-00805f9b34fb');
+ assert_equals(
+ BluetoothUUID.getService('alert_notification'),
+ '00001811-0000-1000-8000-00805f9b34fb');
+ assert_equals(
+ BluetoothUUID.getCharacteristic('aerobic_heart_rate_lower_limit'),
+ '00002a7e-0000-1000-8000-00805f9b34fb');
+ assert_equals(
+ BluetoothUUID.getDescriptor('gatt.characteristic_extended_properties'),
+ '00002900-0000-1000-8000-00805f9b34fb');
}, 'A valid UUID from a name.');
test(() => {
@@ -136,7 +149,8 @@ test(() => {
assert_throws(new TypeError, () => BluetoothUUID.canonicalUUID(undefined));
assert_equals(BluetoothUUID.canonicalUUID(null), base_uuid);
assert_equals(BluetoothUUID.canonicalUUID(false), base_uuid);
- assert_equals(BluetoothUUID.canonicalUUID(true), BluetoothUUID.canonicalUUID(1));
+ assert_equals(
+ BluetoothUUID.canonicalUUID(true), BluetoothUUID.canonicalUUID(1));
assert_throws(new TypeError, () => BluetoothUUID.canonicalUUID(NaN));
// getService
diff --git a/testing/web-platform/tests/bluetooth/idl/idl-NavigatorBluetooth.https.html b/testing/web-platform/tests/bluetooth/idl/idl-NavigatorBluetooth.https.html
index b8649f11abef..5449c94ad43e 100644
--- a/testing/web-platform/tests/bluetooth/idl/idl-NavigatorBluetooth.https.html
+++ b/testing/web-platform/tests/bluetooth/idl/idl-NavigatorBluetooth.https.html
@@ -6,8 +6,7 @@
const test_desc = '[SameObject] test for navigator.bluetooth';
test(() => {
- assert_true('bluetooth' in navigator,
- 'navigator.bluetooth exists.');
+ assert_true('bluetooth' in navigator, 'navigator.bluetooth exists.');
}, 'navigator.bluetooth IDL test');
test(() => {
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
index 033570d842e3..7b68acf1471b 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
@@ -9,8 +9,10 @@
const test_desc = 'Device with empty name and no UUIDs nearby. Should be ' +
'found if acceptAllDevices is true.';
-bluetooth_test(() => setUpPreconnectedDevice({name: ''})
- .then(() => requestDeviceWithTrustedClick({acceptAllDevices: true}))
- .then(device => assert_equals(device.name, '')),
+bluetooth_test(
+ () =>
+ setUpPreconnectedDevice({name: ''})
+ .then(() => requestDeviceWithTrustedClick({acceptAllDevices: true}))
+ .then(device => assert_equals(device.name, '')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
index d990dbf05b45..3c2dcb7f8a66 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
@@ -5,12 +5,15 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
index bd9e5862aa73..d4c267713056 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
@@ -10,13 +10,14 @@ const test_desc = 'requestDevice called with acceptAllDevices: true and ' +
'with no optionalServices. Should not get access to any services.';
const expected = new DOMException(
'Origin is not allowed to access any service. ' +
- 'Tip: Add the service UUID to \'optionalServices\' in ' +
- 'requestDevice() options. https://goo.gl/HxfxSQ',
+ 'Tip: Add the service UUID to \'optionalServices\' in ' +
+ 'requestDevice() options. https://goo.gl/HxfxSQ',
'SecurityError');
-bluetooth_test(() => getConnectedHealthThermometerDevice({acceptAllDevices: true})
- .then(({device}) => assert_promise_rejects_with_message(
- device.gatt.getPrimaryServices(),
- expected)),
+bluetooth_test(
+ () => getConnectedHealthThermometerDevice({acceptAllDevices: true})
+ .then(
+ ({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(), expected)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
index 3c0f4c1164b6..86377c289f65 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
@@ -7,20 +7,23 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.html b/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.html
index 253e31199164..630548d68460 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.html
@@ -10,16 +10,16 @@ const test_desc = 'Reject with SecurityError if requesting a blocklisted ' +
'service.';
const expected = new DOMException(
'requestDevice() called with a filter containing a blocklisted UUID. ' +
- 'https://goo.gl/4NeimX',
+ 'https://goo.gl/4NeimX',
'SecurityError');
-bluetooth_test(() => setUpPreconnectedDevice({
- knownServiceUUIDs: ['human_interface_device']
-})
- .then(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({
- filters: [{services: ['human_interface_device']}]
- }),
- expected, 'Requesting blocklisted service rejects.')),
+bluetooth_test(
+ () =>
+ setUpPreconnectedDevice({knownServiceUUIDs: ['human_interface_device']})
+ .then(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(
+ {filters: [{services: ['human_interface_device']}]}),
+ expected, 'Requesting blocklisted service rejects.')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.html b/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.html
index 7189b643eed3..5c176b82b7f2 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.html
@@ -8,26 +8,30 @@
'use strict';
const test_desc = 'Blocklisted UUID in optionalServices is removed and ' +
'access not granted.';
-const expected = new DOMException('Origin is not allowed to access the ' +
- 'service. Tip: Add the service UUID to \'optionalServices\' in ' +
- 'requestDevice() options. https://goo.gl/HxfxSQ',
+const expected = new DOMException(
+ 'Origin is not allowed to access the ' +
+ 'service. Tip: Add the service UUID to \'optionalServices\' in ' +
+ 'requestDevice() options. https://goo.gl/HxfxSQ',
'SecurityError');
let device, fake_peripheral;
-bluetooth_test(() => getDiscoveredHealthThermometerDevice({
- filters: [{services: ['health_thermometer']}],
- optionalServices: ['human_interface_device']
-})
- .then(_ => ({device, fake_peripheral} = _))
- .then(() =>
- fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
- .then(() => device.gatt.connect())
- .then(() => Promise.all([
- assert_promise_rejects_with_message(
- device.gatt.getPrimaryService('human_interface_device'),
- expected, 'Blocklisted service not accessible.'),
- assert_promise_rejects_with_message(
- device.gatt.getPrimaryServices('human_interface_device'),
- expected, 'Blocklisted services not accessible.')])),
+bluetooth_test(
+ () => getDiscoveredHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['human_interface_device']
+ })
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(
+ () => fake_peripheral.setNextGATTConnectionResponse(
+ {code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(() => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('human_interface_device'),
+ expected, 'Blocklisted service not accessible.'),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('human_interface_device'),
+ expected, 'Blocklisted services not accessible.')
+ ])),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html
index ba8a090309b0..5ca358a0e1ab 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html
@@ -10,10 +10,11 @@ const test_desc = 'A device name between 29 and 248 bytes is valid.';
const DEVICE_NAME = 'a_device_name_that_is_longer_than_29_bytes_but_' +
'shorter_than_248_bytes';
-bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
- .then(() => requestDeviceWithTrustedClick({
- filters: [{name: DEVICE_NAME}]
- }))
- .then(device => assert_equals(device.name, DEVICE_NAME)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: DEVICE_NAME})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{name: DEVICE_NAME}]}))
+ .then(device => assert_equals(device.name, DEVICE_NAME)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html
index eed7b870b382..788d9f803610 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html
@@ -9,8 +9,8 @@
const test_desc = 'A filter must restrict the devices in some way.';
const expected = new TypeError();
-bluetooth_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({filters: [{}]}),
- expected),
+bluetooth_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick({filters: [{}]}), expected),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html
index fbbd6dacad90..65bfc6443a45 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html
@@ -7,12 +7,13 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html
index aa6c83089e6e..549f0d4059c7 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html
@@ -9,36 +9,29 @@
const test_desc = 'requestDevice with empty namePrefix. ' +
'Should reject with TypeError.';
const expected = new TypeError();
-const test_specs = [{
- filters: [{ namePrefix: ''}]
-}, {
- filters: [{ namePrefix: '', name: 'Name'}]
-}, {
- filters: [{ namePrefix: '', services: ['heart_rate']}]
-}, {
- filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}]
-}, {
- filters: [{ namePrefix: ''}],
- optionalServices: ['heart_rate']
-}, {
- filters: [{ namePrefix: '', name: 'Name'}],
- optionalServices: ['heart_rate']
-}, {
- filters: [{ namePrefix: '', services: ['heart_rate']}],
- optionalServices: ['heart_rate']
-}, {
- filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}],
- optionalServices: ['heart_rate']
-}];
+const test_specs = [
+ {filters: [{namePrefix: ''}]}, {filters: [{namePrefix: '', name: 'Name'}]},
+ {filters: [{namePrefix: '', services: ['heart_rate']}]},
+ {filters: [{namePrefix: '', name: 'Name', services: ['heart_rate']}]},
+ {filters: [{namePrefix: ''}], optionalServices: ['heart_rate']},
+ {filters: [{namePrefix: '', name: 'Name'}], optionalServices: ['heart_rate']},
+ {
+ filters: [{namePrefix: '', services: ['heart_rate']}],
+ optionalServices: ['heart_rate']
+ },
+ {
+ filters: [{namePrefix: '', name: 'Name', services: ['heart_rate']}],
+ optionalServices: ['heart_rate']
+ }
+];
bluetooth_test(() => {
- let test_promises = Promise.resolve();
- test_specs.forEach(args => {
- test_promises = test_promises
- .then(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick(args),
- expected));
- });
- return test_promises;
- }, test_desc);
+ let test_promises = Promise.resolve();
+ test_specs.forEach(args => {
+ test_promises = test_promises.then(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(args), expected));
+ });
+ return test_promises;
+}, test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html
index 6cb923a5ac08..b70a8a320878 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html
@@ -10,14 +10,12 @@ const test_desc = 'Services member must contain at least one service.';
const expected = new TypeError();
bluetooth_test(() => {
- let test_promises = Promise.resolve();
- generateRequestDeviceArgsWithServices([]).forEach(args => {
- test_promises = test_promises.then(() =>
- assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick(args),
- expected,
- 'Services member must contain at least one service'))
- });
- return test_promises;
- }, test_desc);
+ let test_promises = Promise.resolve();
+ generateRequestDeviceArgsWithServices([]).forEach(
+ args => {test_promises = test_promises.then(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(args), expected,
+ 'Services member must contain at least one service'))});
+ return test_promises;
+}, test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html
index ab207329447c..d3f6e5ccb133 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html
@@ -6,28 +6,24 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html
index 2f2df741277e..5e1397dbd9a3 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html
@@ -9,15 +9,16 @@
const test_desc = 'Unicode string with utf8 representation longer than 248 ' +
'bytes in \'name\' must throw TypeError.';
const expected = new DOMException(
- "Failed to execute 'requestDevice' on 'Bluetooth': " +
- "A device name can't be longer than 248 bytes.",
+ 'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
+ 'A device name can\'t be longer than 248 bytes.',
new TypeError());
// \u2764's UTF-8 respresentation is 3 bytes long.
// 83 chars * 3 bytes/char = 249 bytes
const unicode_name = '\u2764'.repeat(83);
-bluetooth_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({filters: [{name: unicode_name}]}),
- expected),
+bluetooth_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick({filters: [{name: unicode_name}]}),
+ expected),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html
index dcb6c40d8fe4..a270cac43311 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html
@@ -8,14 +8,14 @@
'use strict';
const test_desc = 'A device name longer than 248 must reject.';
const expected = new DOMException(
- "Failed to execute 'requestDevice' on 'Bluetooth': A device " +
- "name can't be longer than 248 bytes.",
+ 'Failed to execute \'requestDevice\' on \'Bluetooth\': A device ' +
+ 'name can\'t be longer than 248 bytes.',
new TypeError());
const name_too_long = 'a'.repeat(249);
-bluetooth_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({filters: [{name: name_too_long}]}),
- expected,
- 'Device name longer than 248'),
+bluetooth_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick({filters: [{name: name_too_long}]}),
+ expected, 'Device name longer than 248'),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html
index fe1f91927d20..05a9bd31300f 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html
@@ -9,15 +9,16 @@
const test_desc = 'Unicode string with utf8 representation longer than 248 ' +
'bytes in \'namePrefix\' must throw NotFoundError.';
const expected = new DOMException(
- "Failed to execute 'requestDevice' on 'Bluetooth': " +
- "A device name can't be longer than 248 bytes.",
+ 'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
+ 'A device name can\'t be longer than 248 bytes.',
new TypeError());
// \u2764's UTF-8 respresentation is 3 bytes long.
// 83 chars * 3 bytes/char = 249 bytes
const unicode_name = '\u2764'.repeat(83);
-bluetooth_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({filters: [{namePrefix: unicode_name}]}),
- expected),
+bluetooth_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick({filters: [{namePrefix: unicode_name}]}),
+ expected),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html
index ab3a6bae3fbb..a31e4b398e7c 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html
@@ -8,14 +8,14 @@
'use strict';
const test_desc = 'A device name prefix longer than 248 must reject.';
const expected = new DOMException(
- "Failed to execute 'requestDevice' on 'Bluetooth': A device " +
- "name can't be longer than 248 bytes.",
+ 'Failed to execute \'requestDevice\' on \'Bluetooth\': A device ' +
+ 'name can\'t be longer than 248 bytes.',
new TypeError());
const name_too_long = 'a'.repeat(249);
-bluetooth_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick({filters: [{namePrefix: name_too_long}]}),
- expected,
- 'Device name longer than 248'),
+bluetooth_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick({filters: [{namePrefix: name_too_long}]}),
+ expected, 'Device name longer than 248'),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html
index 40df9d0de7f3..dca018b49540 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html
@@ -11,8 +11,11 @@ const test_desc = 'A unicode device name of 248 bytes is valid.';
// 124 chars * 2 bytes/char = 248 bytes
const DEVICE_NAME = '\u00A1'.repeat(124);
-bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
- .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
- .then(device => assert_equals(device.name, DEVICE_NAME)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: DEVICE_NAME})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{name: DEVICE_NAME}]}))
+ .then(device => assert_equals(device.name, DEVICE_NAME)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html
index d1759d6efe07..7244910afa4b 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html
@@ -9,8 +9,11 @@
const test_desc = 'A device name of 248 bytes is valid.';
const DEVICE_NAME = 'a'.repeat(248);
-bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
- .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
- .then(device => assert_equals(device.name, DEVICE_NAME)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: DEVICE_NAME})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{name: DEVICE_NAME}]}))
+ .then(device => assert_equals(device.name, DEVICE_NAME)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html
index 8e86844473e7..ba4bdf94c633 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html
@@ -11,10 +11,11 @@ const test_desc = 'A unicode device namePrefix of 248 bytes is valid.';
// 124 chars * 2 bytes/char = 248 bytes
const DEVICE_NAME = '\u00A1'.repeat(124);
-bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
- .then(() => requestDeviceWithTrustedClick({
- filters: [{namePrefix: DEVICE_NAME}]
- }))
- .then(device => assert_equals(device.name, DEVICE_NAME)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: DEVICE_NAME})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{namePrefix: DEVICE_NAME}]}))
+ .then(device => assert_equals(device.name, DEVICE_NAME)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html
index 01ed22e63663..ced34793355e 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html
@@ -9,10 +9,11 @@
const test_desc = 'A device namePrefix of 248 bytes is valid.';
const DEVICE_NAME = 'a'.repeat(248);
-bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
- .then(() => requestDeviceWithTrustedClick({
- filters: [{namePrefix: DEVICE_NAME}]
- }))
- .then(device => assert_equals(device.name, DEVICE_NAME)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: DEVICE_NAME})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{namePrefix: DEVICE_NAME}]}))
+ .then(device => assert_equals(device.name, DEVICE_NAME)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html
index e6337a543bc4..33f933ad09c8 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html
@@ -10,8 +10,8 @@
const test_desc = 'requestDevice() requires an argument.';
const expected = new TypeError();
-promise_test(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick(),
- expected),
+promise_test(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(), expected),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html
index 08038b9de005..787f34d5c688 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html
@@ -12,10 +12,11 @@ const test_desc = 'A name containing unicode characters whose utf8 length ' +
// 9 chars * 3 bytes/char = 27 bytes
const valid_unicode_name = '\u2764'.repeat(9);
-bluetooth_test(() => setUpPreconnectedDevice({name: valid_unicode_name})
- .then(() => requestDeviceWithTrustedClick({
- filters: [{name: valid_unicode_name}]
- }))
- .then(device => assert_equals(device.name, valid_unicode_name)),
+bluetooth_test(
+ () => setUpPreconnectedDevice({name: valid_unicode_name})
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{name: valid_unicode_name}]}))
+ .then(device => assert_equals(device.name, valid_unicode_name)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html
index fc44482379d5..bafb36d710ca 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html
@@ -6,16 +6,17 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html
index 15cf902177de..e4880b6f57d0 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html
@@ -8,37 +8,34 @@
'use strict';
const test_desc = 'Invalid optional service must reject the promise.';
const expected = new TypeError();
-const test_specs = [{
- optionalServices: ['wrong_service'],
- filters: [{services: ['heart_rate']}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ services: ['heart_rate'], name: 'Name'}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ services: ['heart_rate'], namePrefix: 'Pre'}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ services: ['heart_rate'], name: 'Name', namePrefix: 'Pre'}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ name: 'Name'}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ name: 'Name', namePrefix: 'Pre'}]
-}, {
- optionalServices: ['wrong_service'],
- filters: [{ namePrefix: 'Pre'}]
-}];
+const test_specs = [
+ {optionalServices: ['wrong_service'], filters: [{services: ['heart_rate']}]},
+ {
+ optionalServices: ['wrong_service'],
+ filters: [{services: ['heart_rate'], name: 'Name'}]
+ },
+ {
+ optionalServices: ['wrong_service'],
+ filters: [{services: ['heart_rate'], namePrefix: 'Pre'}]
+ },
+ {
+ optionalServices: ['wrong_service'],
+ filters: [{services: ['heart_rate'], name: 'Name', namePrefix: 'Pre'}]
+ },
+ {optionalServices: ['wrong_service'], filters: [{name: 'Name'}]}, {
+ optionalServices: ['wrong_service'],
+ filters: [{name: 'Name', namePrefix: 'Pre'}]
+ },
+ {optionalServices: ['wrong_service'], filters: [{namePrefix: 'Pre'}]}
+];
bluetooth_test(() => {
- let test_promises = Promise.resolve();
- test_specs.forEach(args => {
- test_promises =
- test_promises.then(() => assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick(args),
- expected));
- });
- return test_promises;
- }, test_desc);
+ let test_promises = Promise.resolve();
+ test_specs.forEach(args => {
+ test_promises = test_promises.then(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(args), expected));
+ });
+ return test_promises;
+}, test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html
index 5d9b245f9532..9d31b951be7b 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html
@@ -10,13 +10,12 @@ const test_desc = 'Invalid service must reject the promise.';
const expected = new TypeError();
bluetooth_test(() => {
- let test_promises = Promise.resolve();
- generateRequestDeviceArgsWithServices(['wrong_service']).forEach(args => {
- test_promises = test_promises.then(() =>
- assert_promise_rejects_with_message(
- requestDeviceWithTrustedClick(args),
- expected));
- });
- return test_promises;
- }, test_desc);
+ let test_promises = Promise.resolve();
+ generateRequestDeviceArgsWithServices(['wrong_service']).forEach(args => {
+ test_promises = test_promises.then(
+ () => assert_promise_rejects_with_message(
+ requestDeviceWithTrustedClick(args), expected));
+ });
+ return test_promises;
+}, test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.html b/testing/web-platform/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.html
index e97991d6f55e..d5cf382f664c 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.html
@@ -13,26 +13,29 @@ const cross_origin_src = 'https://{{domains[www]}}:{{ports[https][0]}}' +
'/bluetooth/resources/health-thermometer-iframe.html'
let iframe = document.createElement('iframe');
-bluetooth_test(() => setUpHealthThermometerDevice()
- // 1. Load the iframe.
- .then(() => new Promise(resolve => {
- iframe.src = cross_origin_src;
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- }))
- // 2. Request the device from the iframe.
- .then(() => new Promise(resolve => {
- callWithTrustedClick(() => {
- iframe.contentWindow.postMessage({
- type: 'RequestDevice'
- }, '*');
- });
+bluetooth_test(
+ () => setUpHealthThermometerDevice()
+ // 1. Load the iframe.
+ .then(() => new Promise(resolve => {
+ iframe.src = cross_origin_src;
+ document.body.appendChild(iframe);
+ iframe.addEventListener('load', resolve);
+ }))
+ // 2. Request the device from the iframe.
+ .then(() => new Promise(resolve => {
+ callWithTrustedClick(() => {
+ iframe.contentWindow.postMessage(
+ {type: 'RequestDevice'}, '*');
+ });
- window.onmessage = messageEvent => {
- assert_equals(messageEvent.data, 'SecurityError: requestDevice() ' +
- 'called from cross-origin iframe.');
- resolve();
- }
- })), test_desc);
+ window.onmessage = messageEvent => {
+ assert_equals(
+ messageEvent.data,
+ 'SecurityError: requestDevice() ' +
+ 'called from cross-origin iframe.');
+ resolve();
+ }
+ })),
+ test_desc);
-
+
+
+
+
+
diff --git a/testing/web-platform/tests/css/CSS2/bidi-005.xht b/testing/web-platform/tests/css/CSS2/bidi-005.xht
index 21ca1ec4f19f..732e825040f6 100644
--- a/testing/web-platform/tests/css/CSS2/bidi-005.xht
+++ b/testing/web-platform/tests/css/CSS2/bidi-005.xht
@@ -10,6 +10,7 @@
+
+
There should be a single green block below.
diff --git a/testing/web-platform/tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html b/testing/web-platform/tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html
new file mode 100644
index 000000000000..594fee03f488
--- /dev/null
+++ b/testing/web-platform/tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html
@@ -0,0 +1,14 @@
+
+Child of block with clear
+
+
+Test passes if there is a filled green square.
+
diff --git a/testing/web-platform/tests/css/CSS2/generated-content/content-173-ref.xht b/testing/web-platform/tests/css/CSS2/generated-content/content-173-ref.xht
index d2b70f1056c5..6810135e2b44 100644
--- a/testing/web-platform/tests/css/CSS2/generated-content/content-173-ref.xht
+++ b/testing/web-platform/tests/css/CSS2/generated-content/content-173-ref.xht
@@ -43,7 +43,7 @@
.' ` ^ T=
/ \ .--'
| / )'-.
- ; , <__..-( '-.)
+ ; , <__..-( '-.)
\ \-.__) ``--._)
jgs '.'-.__.-.
'-...-'
@@ -57,7 +57,7 @@
.' ` ^ T=
/ \ .--'
| / )'-.
- ; , <__..-( '-.)
+ ; , <__..-( '-.)
\ \-.__) ``--._)
jgs '.'-.__.-.
'-...-'
diff --git a/testing/web-platform/tests/css/CSS2/generated-content/content-173.xht b/testing/web-platform/tests/css/CSS2/generated-content/content-173.xht
index bb9aab821fd0..5a39c8a6e119 100644
--- a/testing/web-platform/tests/css/CSS2/generated-content/content-173.xht
+++ b/testing/web-platform/tests/css/CSS2/generated-content/content-173.xht
@@ -55,7 +55,7 @@
.' ` ^ T=
/ \ .--'
| / )'-.
- ; , <__..-( '-.)
+ ; , <__..-( '-.)
\ \-.__) ``--._)
jgs '.'-.__.-.
'-...-'
diff --git a/testing/web-platform/tests/css/CSS2/linebox/line-height-129.xht b/testing/web-platform/tests/css/CSS2/linebox/line-height-129.xht
index b4250b88d639..78f90fbd7e06 100644
--- a/testing/web-platform/tests/css/CSS2/linebox/line-height-129.xht
+++ b/testing/web-platform/tests/css/CSS2/linebox/line-height-129.xht
@@ -41,7 +41,7 @@
Test passes if there is a filled green square and no red .
-
+
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/discovery-succeeds.https.html b/testing/web-platform/tests/bluetooth/requestDevice/discovery-succeeds.https.html
index 21219444f8d5..5bd7ff1246b3 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/discovery-succeeds.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/discovery-succeeds.https.html
@@ -8,21 +8,28 @@
'use strict';
const test_desc = 'Discover a device using alias, name, or UUID.';
-bluetooth_test(() => getConnectedHealthThermometerDevice()
- // Chrome will always close the previous chooser in the process of handling
- // a user gesture for the next request, so these need to be done
- // sequentially.
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [health_thermometer.alias]}]
- }))
- .then(device => assert_equals(device.constructor.name, 'BluetoothDevice'))
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [health_thermometer.name]}]
- }))
- .then(device => assert_equals(device.constructor.name, 'BluetoothDevice'))
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [health_thermometer.uuid]}]
- }))
- .then(device => assert_equals(device.constructor.name, 'BluetoothDevice')),
+bluetooth_test(
+ () => getConnectedHealthThermometerDevice()
+ // Chrome will always close the previous chooser in the process of
+ // handling a user gesture for the next request, so these need to
+ // be done sequentially.
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [health_thermometer.alias]}]}))
+ .then(
+ device =>
+ assert_equals(device.constructor.name, 'BluetoothDevice'))
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [health_thermometer.name]}]}))
+ .then(
+ device =>
+ assert_equals(device.constructor.name, 'BluetoothDevice'))
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [health_thermometer.uuid]}]}))
+ .then(
+ device => assert_equals(
+ device.constructor.name, 'BluetoothDevice')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.html b/testing/web-platform/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.html
index 3394a591cd45..19ac36f80add 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.html
@@ -8,17 +8,21 @@
'use strict';
const test_desc = 'requestDevice calls do not consume user gestures.';
-bluetooth_test(() => setUpHealthThermometerAndHeartRateDevices()
- .then(() => callWithTrustedClick(() => {
- let first = navigator.bluetooth.requestDevice({
- filters: [{services: ['heart_rate']}]});
- let second = navigator.bluetooth.requestDevice({
- filters: [{services: ['heart_rate']}]});
- return Promise.all([
- first.then(device => assert_equals(
- device.constructor.name, 'BluetoothDevice')),
- second.then(device => assert_equals(
- device.constructor.name, 'BluetoothDevice')),
- ]);
- })), test_desc);
+bluetooth_test(
+ () => setUpHealthThermometerAndHeartRateDevices().then(
+ () => callWithTrustedClick(() => {
+ let first = navigator.bluetooth.requestDevice(
+ {filters: [{services: ['heart_rate']}]});
+ let second = navigator.bluetooth.requestDevice(
+ {filters: [{services: ['heart_rate']}]});
+ return Promise.all([
+ first.then(
+ device =>
+ assert_equals(device.constructor.name, 'BluetoothDevice')),
+ second.then(
+ device =>
+ assert_equals(device.constructor.name, 'BluetoothDevice')),
+ ]);
+ })),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/filter-matches.https.html b/testing/web-platform/tests/bluetooth/requestDevice/filter-matches.https.html
index 3f62d39c7ac6..1aeae776f069 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/filter-matches.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/filter-matches.https.html
@@ -11,57 +11,55 @@ let matching_services = [health_thermometer.uuid];
let matching_name = 'Health Thermometer';
let matching_namePrefix = 'Health';
-let test_specs = [{
- filters: [{
- services: matching_services,
- }]
-}, {
- filters: [{
- services: matching_services,
- name: matching_name,
- }]
-}, {
- filters: [{
- services: matching_services,
- namePrefix: matching_namePrefix
- }]
-}, {
- filters: [{
- name: matching_name,
- }],
- optionalServices: matching_services
-}, {
- filters: [{
- name: matching_name,
- namePrefix: matching_namePrefix
- }],
- optionalServices: matching_services
-}, {
- filters: [{
- namePrefix: matching_namePrefix
- }],
- optionalServices: matching_services
-}, {
- filters: [{
- services: matching_services,
- name: matching_name,
- namePrefix: matching_namePrefix
- }]
-}];
+let test_specs = [
+ {
+ filters: [{
+ services: matching_services,
+ }]
+ },
+ {
+ filters: [{
+ services: matching_services,
+ name: matching_name,
+ }]
+ },
+ {filters: [{services: matching_services, namePrefix: matching_namePrefix}]}, {
+ filters: [{
+ name: matching_name,
+ }],
+ optionalServices: matching_services
+ },
+ {
+ filters: [{name: matching_name, namePrefix: matching_namePrefix}],
+ optionalServices: matching_services
+ },
+ {
+ filters: [{namePrefix: matching_namePrefix}],
+ optionalServices: matching_services
+ },
+ {
+ filters: [{
+ services: matching_services,
+ name: matching_name,
+ namePrefix: matching_namePrefix
+ }]
+ }
+];
-bluetooth_test(() => setUpHealthThermometerDevice()
- .then(() => {
+bluetooth_test(
+ () => setUpHealthThermometerDevice().then(() => {
let test_promises = Promise.resolve();
test_specs.forEach(args => {
- test_promises = test_promises
- .then(() => requestDeviceWithTrustedClick(args))
- .then(device => {
- // We always have access to the services in matching_services
- // because we include them in a filter or in optionalServices.
- assert_equals(device.name, matching_name);
- assert_true(device.name.startsWith(matching_namePrefix));
- });
+ test_promises =
+ test_promises.then(() => requestDeviceWithTrustedClick(args))
+ .then(device => {
+ // We always have access to the services in matching_services
+ // because we include them in a filter or in optionalServices.
+ assert_equals(device.name, matching_name);
+ assert_true(device.name.startsWith(matching_namePrefix));
+ });
});
return test_promises;
- }), test_desc);
+ }),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/le-not-supported.https.html b/testing/web-platform/tests/bluetooth/requestDevice/le-not-supported.https.html
index 4a3752501a3b..3da9abeb773a 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/le-not-supported.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/le-not-supported.https.html
@@ -7,12 +7,13 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.html b/testing/web-platform/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.html
index ee9b9125de2d..944befdfe834 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.html
@@ -8,8 +8,10 @@
'use strict';
const test_desc = 'An empty name device can be obtained by empty name filter.'
-bluetooth_test(() => setUpPreconnectedDevice({name: ''})
- .then(() => requestDeviceWithTrustedClick({filters: [{name: ''}]}))
- .then(device => assert_equals(device.name, '')),
+bluetooth_test(
+ () =>
+ setUpPreconnectedDevice({name: ''})
+ .then(() => requestDeviceWithTrustedClick({filters: [{name: ''}]}))
+ .then(device => assert_equals(device.name, '')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/not-processing-user-gesture.https.html b/testing/web-platform/tests/bluetooth/requestDevice/not-processing-user-gesture.https.html
index 1781b7bd1b83..98dc0ce80e7b 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/not-processing-user-gesture.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/not-processing-user-gesture.https.html
@@ -11,9 +11,11 @@ const expected = new DOMException(
'Must be handling a user gesture to show a permission request.',
'SecurityError');
-bluetooth_test(() => setUpHealthThermometerAndHeartRateDevices()
- .then(() => assert_promise_rejects_with_message(
- navigator.bluetooth.requestDevice({filters:[{services:['heart_rate']}]}),
- expected, 'User gesture is required')),
+bluetooth_test(
+ () => setUpHealthThermometerAndHeartRateDevices().then(
+ () => assert_promise_rejects_with_message(
+ navigator.bluetooth.requestDevice(
+ {filters: [{services: ['heart_rate']}]}),
+ expected, 'User gesture is required')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/radio-not-present.https.html b/testing/web-platform/tests/bluetooth/requestDevice/radio-not-present.https.html
index a66bcf99c6ea..929af8ffb776 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/radio-not-present.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/radio-not-present.https.html
@@ -7,14 +7,15 @@
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/request-from-iframe.https.html b/testing/web-platform/tests/bluetooth/requestDevice/request-from-iframe.https.html
index 01590ea0fd9d..64ad3d592d1e 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/request-from-iframe.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/request-from-iframe.https.html
@@ -12,32 +12,36 @@ for (let i = 0; i < 5; i++) {
iframes.push(document.createElement('iframe'));
}
-bluetooth_test(() => setUpHealthThermometerAndHeartRateDevices()
- // 1. Load the iframes.
- .then(() => {
- let promises = [];
- for (let iframe of iframes) {
- iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
- document.body.appendChild(iframe);
- promises.push(new Promise(resolve =>
- iframe.addEventListener('load', resolve)));
- }
- return Promise.all(promises);
- })
- // 2. Request the device from the iframes.
- .then(() => new Promise(async (resolve) => {
- let numMessages = 0;
- window.onmessage = messageEvent => {
- assert_equals(messageEvent.data, 'Success');
- if (++numMessages === iframes.length) {
- resolve();
- }
- }
+bluetooth_test(
+ () => setUpHealthThermometerAndHeartRateDevices()
+ // 1. Load the iframes.
+ .then(() => {
+ let promises = [];
+ for (let iframe of iframes) {
+ iframe.src =
+ '/bluetooth/resources/health-thermometer-iframe.html';
+ document.body.appendChild(iframe);
+ promises.push(new Promise(
+ resolve => iframe.addEventListener('load', resolve)));
+ }
+ return Promise.all(promises);
+ })
+ // 2. Request the device from the iframes.
+ .then(() => new Promise(async (resolve) => {
+ let numMessages = 0;
+ window.onmessage =
+ messageEvent => {
+ assert_equals(messageEvent.data, 'Success');
+ if (++numMessages === iframes.length) {
+ resolve();
+ }
+ }
- for (let iframe of iframes) {
- await callWithTrustedClick(() => iframe.contentWindow.postMessage({
- type: 'RequestDevice'
- }, '*'));
- }
- })), test_desc);
+ for (let iframe of iframes) {
+ await callWithTrustedClick(
+ () => iframe.contentWindow.postMessage(
+ {type: 'RequestDevice'}, '*'));
+ }
+ })),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.html b/testing/web-platform/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.html
index 80798308b10b..4c4a5707e8eb 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.html
@@ -14,26 +14,28 @@ const expected = 'SecurityError: requestDevice() called from cross-origin ' +
let iframe = document.createElement('iframe');
-bluetooth_test(() => getConnectedHealthThermometerDevice()
- // 1. Load the iframe.
- .then(() => new Promise(resolve => {
- iframe.sandbox.add('allow-scripts');
- iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- }))
- // 2. Request the device from the iframe.
- .then(() => new Promise(resolve => {
- callWithTrustedClick(() => {
- iframe.contentWindow.postMessage({
- type: 'RequestDevice'
- }, '*');
- });
+bluetooth_test(
+ () => getConnectedHealthThermometerDevice()
+ // 1. Load the iframe.
+ .then(() => new Promise(resolve => {
+ iframe.sandbox.add('allow-scripts');
+ iframe.src =
+ '/bluetooth/resources/health-thermometer-iframe.html';
+ document.body.appendChild(iframe);
+ iframe.addEventListener('load', resolve);
+ }))
+ // 2. Request the device from the iframe.
+ .then(() => new Promise(resolve => {
+ callWithTrustedClick(() => {
+ iframe.contentWindow.postMessage(
+ {type: 'RequestDevice'}, '*');
+ });
- window.onmessage = messageEvent => {
- assert_equals(messageEvent.data, expected);
- resolve();
- }
- })), test_desc);
+ window.onmessage = messageEvent => {
+ assert_equals(messageEvent.data, expected);
+ resolve();
+ }
+ })),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/same-device.https.html b/testing/web-platform/tests/bluetooth/requestDevice/same-device.https.html
index a83cf705a738..b96af439973a 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/same-device.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/same-device.https.html
@@ -10,21 +10,23 @@ const test_desc = 'Returned device should always be the same.';
let devices = [];
let push = device => devices.push(device);
-bluetooth_test(() => setUpHealthThermometerAndHeartRateDevices()
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [heart_rate.alias]}]
- }))
- .then(push)
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [heart_rate.name]}]
- }))
- .then(push)
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: [heart_rate.uuid]}]
- }))
- .then(push)
- .then(() => {
- assert_equals(devices[0], devices[1]);
- assert_equals(devices[1], devices[2]);
- }), test_desc);
+bluetooth_test(
+ () => setUpHealthThermometerAndHeartRateDevices()
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [heart_rate.alias]}]}))
+ .then(push)
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [heart_rate.name]}]}))
+ .then(push)
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: [heart_rate.uuid]}]}))
+ .then(push)
+ .then(() => {
+ assert_equals(devices[0], devices[1]);
+ assert_equals(devices[1], devices[2]);
+ }),
+ test_desc);
diff --git a/testing/web-platform/tests/bluetooth/requestDevice/single-filter-single-service.https.html b/testing/web-platform/tests/bluetooth/requestDevice/single-filter-single-service.https.html
index 8735eb3f8727..9c0d621c2374 100644
--- a/testing/web-platform/tests/bluetooth/requestDevice/single-filter-single-service.https.html
+++ b/testing/web-platform/tests/bluetooth/requestDevice/single-filter-single-service.https.html
@@ -8,10 +8,11 @@
'use strict';
const test_desc = 'Simple filter selects matching device.';
-bluetooth_test(() => setUpHealthThermometerAndHeartRateDevices()
- .then(() => requestDeviceWithTrustedClick({
- filters: [{services: ['health_thermometer']}]
- }))
- .then(device => assert_equals(device.name, 'Health Thermometer')),
+bluetooth_test(
+ () => setUpHealthThermometerAndHeartRateDevices()
+ .then(
+ () => requestDeviceWithTrustedClick(
+ {filters: [{services: ['health_thermometer']}]}))
+ .then(device => assert_equals(device.name, 'Health Thermometer')),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/resources/bluetooth-helpers.js b/testing/web-platform/tests/bluetooth/resources/bluetooth-helpers.js
index c4e26077c342..83643232ae5f 100644
--- a/testing/web-platform/tests/bluetooth/resources/bluetooth-helpers.js
+++ b/testing/web-platform/tests/bluetooth/resources/bluetooth-helpers.js
@@ -18,8 +18,8 @@ function loadScripts(paths) {
}
function performChromiumSetup() {
- // Make sure we are actually on Chromium.
- if (!Mojo) {
+ // Make sure we are actually on Chromium with Mojo enabled.
+ if (typeof Mojo === 'undefined') {
return;
}
@@ -261,6 +261,13 @@ function requestDeviceWithTrustedClick() {
() => navigator.bluetooth.requestDevice.apply(navigator.bluetooth, args));
}
+// Calls requestLEScan() in a context that's 'allowed to show a popup'.
+function requestLEScanWithTrustedClick() {
+ let args = arguments;
+ return callWithTrustedClick(
+ () => navigator.bluetooth.requestLEScan.apply(navigator.bluetooth, args));
+}
+
// errorUUID(alias) returns a UUID with the top 32 bits of
// '00000000-97e5-4cd7-b9f1-f5a427670c59' replaced with the bits of |alias|.
// For example, errorUUID(0xDEADBEEF) returns
diff --git a/testing/web-platform/tests/bluetooth/resources/bluetooth-scanning-helpers.js b/testing/web-platform/tests/bluetooth/resources/bluetooth-scanning-helpers.js
new file mode 100644
index 000000000000..9b173e6367ce
--- /dev/null
+++ b/testing/web-platform/tests/bluetooth/resources/bluetooth-scanning-helpers.js
@@ -0,0 +1,42 @@
+'use strict';
+
+const company_id = '224';
+const data = new TextEncoder().encode('foo');
+const manufacturerDataMap = {[company_id]: data};
+const health_uuid = health_thermometer.uuid;
+const serviceDataMap = {[health_uuid]: data};
+const scanRecord = {
+ name: 'Health Thermometer',
+ uuids: ['generic_access', health_uuid],
+ txPower: 20,
+ appearance: 100,
+ manufacturerData: manufacturerDataMap,
+ serviceData: serviceDataMap,
+};
+const scanResult = {
+ deviceAddress: '09:09:09:09:09:09',
+ rssi: 100,
+ scanRecord: scanRecord,
+};
+
+function verifyBluetoothAdvertisingEvent(e) {
+ assert_equals(e.constructor.name, 'BluetoothAdvertisingEvent')
+ assert_equals(e.device.name, scanRecord.name)
+ assert_equals(e.name, scanRecord.name)
+ assert_array_equals(e.uuids,
+ ["00001800-0000-1000-8000-00805f9b34fb",
+ "00001809-0000-1000-8000-00805f9b34fb"])
+ assert_equals(e.txPower, 20)
+ assert_equals(e.rssi, 100)
+
+ assert_equals(e.manufacturerData.constructor.name,
+ 'BluetoothManufacturerDataMap')
+ assert_equals(data[0], e.manufacturerData.get(224).getUint8(0))
+ assert_equals(data[1], e.manufacturerData.get(224).getUint8(1))
+ assert_equals(data[2], e.manufacturerData.get(224).getUint8(2))
+
+ assert_equals(e.serviceData.constructor.name, 'BluetoothServiceDataMap')
+ assert_equals(data[0], e.serviceData.get(health_uuid).getUint8(0))
+ assert_equals(data[1], e.serviceData.get(health_uuid).getUint8(1))
+ assert_equals(data[2], e.serviceData.get(health_uuid).getUint8(2))
+}
\ No newline at end of file
diff --git a/testing/web-platform/tests/bluetooth/resources/health-thermometer-iframe.html b/testing/web-platform/tests/bluetooth/resources/health-thermometer-iframe.html
index 5e24f62a06ef..1545a513960a 100644
--- a/testing/web-platform/tests/bluetooth/resources/health-thermometer-iframe.html
+++ b/testing/web-platform/tests/bluetooth/resources/health-thermometer-iframe.html
@@ -3,24 +3,24 @@
let device, gatt;
function requestDeviceWithOptionsAndConnect(options) {
- return navigator.bluetooth.requestDevice(options)
- .then(device => device.gatt.connect());
+ return navigator.bluetooth.requestDevice(options).then(
+ device => device.gatt.connect());
}
window.addEventListener('message', (messageEvent) => {
switch (messageEvent.data.type) {
case 'RequestDevice':
- navigator.bluetooth.requestDevice({
- filters: [{services: ['generic_access']}]
- })
+ navigator.bluetooth
+ .requestDevice({filters: [{services: ['generic_access']}]})
.then(device => {
if (device.constructor.name === 'BluetoothDevice') {
parent.postMessage('Success', '*');
} else {
parent.postMessage(
`FAIL: requestDevice in iframe returned ${device.name}`, '*');
- }}).catch(err => parent.postMessage(`${err.name}: ${err.message}`,
- '*'));
+ }
+ })
+ .catch(err => parent.postMessage(`${err.name}: ${err.message}`, '*'));
break;
case 'RequestAndConnect':
requestDeviceWithOptionsAndConnect(messageEvent.data.options)
@@ -28,7 +28,8 @@ window.addEventListener('message', (messageEvent) => {
gatt = _;
device = gatt.device;
parent.postMessage('Connected', '*');
- }).catch(err => {
+ })
+ .catch(err => {
parent.postMessage(`FAIL: ${err}`, '*');
});
break;
@@ -50,8 +51,8 @@ window.addEventListener('message', (messageEvent) => {
.catch(err => parent.postMessage(`FAIL: ${err}`, '*'));
break;
default:
- parent.postMessage(`FAIL: Bad message type: ${messageEvent.data.type}`,
- '*');
+ parent.postMessage(
+ `FAIL: Bad message type: ${messageEvent.data.type}`, '*');
}
});
diff --git a/testing/web-platform/tests/bluetooth/server/device-same-object.https.html b/testing/web-platform/tests/bluetooth/server/device-same-object.https.html
index cfd4bc5a202c..63624961ec7b 100644
--- a/testing/web-platform/tests/bluetooth/server/device-same-object.https.html
+++ b/testing/web-platform/tests/bluetooth/server/device-same-object.https.html
@@ -9,11 +9,13 @@
const test_desc = '[SameObject] test for BluetoothRemoteGATTServer\'s device.';
let device, fake_peripheral;
-bluetooth_test(() => getDiscoveredHealthThermometerDevice()
- .then(_ => ({device, fake_peripheral} = _))
- .then(() =>
- fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
- .then(() => device.gatt.connect())
- .then(gatt => assert_equals(gatt.device, gatt.device)),
+bluetooth_test(
+ () => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(
+ () => fake_peripheral.setNextGATTConnectionResponse(
+ {code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(gatt => assert_equals(gatt.device, gatt.device)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/service/device-same-from-2-services.https.html b/testing/web-platform/tests/bluetooth/service/device-same-from-2-services.https.html
index 366549378e83..0d5ab6496837 100644
--- a/testing/web-platform/tests/bluetooth/service/device-same-from-2-services.https.html
+++ b/testing/web-platform/tests/bluetooth/service/device-same-from-2-services.https.html
@@ -8,11 +8,14 @@
'use strict';
const test_desc = 'Same parent device returned from multiple services.';
-bluetooth_test(() => getTwoHealthThermometerServicesDevice({
- filters: [{services: ['health_thermometer']}]
-})
- .then(({device}) => device.gatt.getPrimaryServices('health_thermometer'))
- .then(([service1, service2]) =>
- assert_equals(service1.device, service2.device)),
+bluetooth_test(
+ () => getTwoHealthThermometerServicesDevice(
+ {filters: [{services: ['health_thermometer']}]})
+ .then(
+ ({device}) =>
+ device.gatt.getPrimaryServices('health_thermometer'))
+ .then(
+ ([service1, service2]) =>
+ assert_equals(service1.device, service2.device)),
test_desc);
diff --git a/testing/web-platform/tests/bluetooth/service/device-same-object.https.html b/testing/web-platform/tests/bluetooth/service/device-same-object.https.html
index f43e9f022d93..de57c2e37607 100644
--- a/testing/web-platform/tests/bluetooth/service/device-same-object.https.html
+++ b/testing/web-platform/tests/bluetooth/service/device-same-object.https.html
@@ -8,10 +8,12 @@
'use strict';
const test_desc = '[SameObject] test for BluetoothRemoteGATTService device.';
-bluetooth_test(() => getHealthThermometerDevice({
- filters: [{services: ['health_thermometer']}]
-})
- .then(({device}) => device.gatt.getPrimaryService('health_thermometer'))
- .then(service => assert_equals(service.device, service.device)),
+bluetooth_test(
+ () => getHealthThermometerDevice(
+ {filters: [{services: ['health_thermometer']}]})
+ .then(
+ ({device}) =>
+ device.gatt.getPrimaryService('health_thermometer'))
+ .then(service => assert_equals(service.device, service.device)),
test_desc);
diff --git a/testing/web-platform/tests/clipboard-apis/async-interfaces.https.html b/testing/web-platform/tests/clipboard-apis/async-interfaces.https.html
index 1f523e5d565d..0617ac11ac2e 100644
--- a/testing/web-platform/tests/clipboard-apis/async-interfaces.https.html
+++ b/testing/web-platform/tests/clipboard-apis/async-interfaces.https.html
@@ -10,7 +10,7 @@
'use strict';
function doTest(idl, dom) {
- var idl_array = new IdlArray();
+ const idl_array = new IdlArray();
idl_array.add_untested_idls('interface Navigator {};');
idl_array.add_untested_idls('interface EventTarget {};');
idl_array.add_untested_idls('dictionary PermissionDescriptor {};');
@@ -25,7 +25,7 @@ function doTest(idl, dom) {
};
function fetchText(url) {
- return fetch(url).then((response) => response.text());
+ return fetch(url).then(response => response.text());
}
promise_test(() => {
diff --git a/testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-basics.https.html b/testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-basics.https.html
index 312665567386..ea0ca2902c5a 100644
--- a/testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-basics.https.html
+++ b/testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-basics.https.html
@@ -1,11 +1,11 @@
-
diff --git a/testing/web-platform/tests/clipboard-apis/async-write-dttext-read-dttext-manual.https.html b/testing/web-platform/tests/clipboard-apis/async-write-dttext-read-dttext-manual.https.html
index 75cf3a3140c8..2930b4716228 100644
--- a/testing/web-platform/tests/clipboard-apis/async-write-dttext-read-dttext-manual.https.html
+++ b/testing/web-platform/tests/clipboard-apis/async-write-dttext-read-dttext-manual.https.html
@@ -4,7 +4,7 @@
+
+
+
The bottom image should display the same image as the top image.
+ Note: This is a manual test because it writes/reads to the shared system
+ clipboard and thus cannot be run async with other tests that might interact
+ with the clipboard.
+
diff --git a/testing/web-platform/tests/clipboard-apis/async-write-text-read-dttext-manual.https.html b/testing/web-platform/tests/clipboard-apis/async-write-text-read-dttext-manual.https.html
index 232e144b7e03..9f524b93d719 100644
--- a/testing/web-platform/tests/clipboard-apis/async-write-text-read-dttext-manual.https.html
+++ b/testing/web-platform/tests/clipboard-apis/async-write-text-read-dttext-manual.https.html
@@ -4,7 +4,7 @@
-
-Test
-
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html
similarity index 100%
rename from testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-isvalid.html
rename to testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html
diff --git a/testing/web-platform/tests/conformance-checkers/messages.json b/testing/web-platform/tests/conformance-checkers/messages.json
index 7376e515eaab..80be1d878c22 100644
--- a/testing/web-platform/tests/conformance-checkers/messages.json
+++ b/testing/web-platform/tests/conformance-checkers/messages.json
@@ -70,6 +70,7 @@
"html-svg/struct-dom-17-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.",
"html-svg/struct-dom-19-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.",
"html-svg/struct-frag-05-t-novalid.html": "Bad value \u201chttp://www.example.org/notsvg\u201d for the attribute \u201cxmlns\u201d (only \u201chttp://www.w3.org/2000/svg\u201d permitted here).",
+ "html-svg/struct-image-07-t-novalid.html": "Attribute \u201cxml:base\u201d not allowed on element \u201cimage\u201d at this point.",
"html-svg/struct-image-12-b-novalid.html": "Duplicate ID \u201cimageSVG\u201d.",
"html-svg/struct-use-11-f-novalid.html": "Attribute \u201cfoo\u201d not allowed on element \u201ccircle\u201d at this point.",
"html-svg/struct-use-12-f-novalid.html": "Element \u201cuse\u201d not allowed as child of element \u201cuse\u201d in this context. (Suppressing further errors from this subtree.)",
diff --git a/testing/web-platform/tests/content-security-policy/unsafe-hashes/javascript_src_allowed-href_blank.html b/testing/web-platform/tests/content-security-policy/unsafe-hashes/javascript_src_allowed-href_blank.html
index 30d05ee04f5c..d1c2b38f247a 100644
--- a/testing/web-platform/tests/content-security-policy/unsafe-hashes/javascript_src_allowed-href_blank.html
+++ b/testing/web-platform/tests/content-security-policy/unsafe-hashes/javascript_src_allowed-href_blank.html
@@ -3,9 +3,9 @@
+ 'sha256-WZYVPzLjoxd1Cbc8gcx07ChlPmT3WP+KxkOiY0s4h8g=';">
@@ -13,7 +13,7 @@