mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Update web-platform-tests to revision 9f039866171222befc3c77beaae994829554bdf5
This commit is contained in:
parent
bc8cfe3d69
commit
8d9615fa41
65 changed files with 640 additions and 115 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[fallback-url-to-local.html]
|
||||
[We should use the local font to render the page when the primary remote font is loading]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,9 +312,6 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -327,3 +324,12 @@
|
|||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,6 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[opener of discarded nested browsing context]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[077.html]
|
||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -3,6 +3,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,11 +1,4 @@
|
|||
[dedicated-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a data url dedicated worker in a data url dedicated worker]
|
||||
expected: NOTRUN
|
||||
|
||||
[Create a data url dedicated worker in a data url frame]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Create a dedicated worker in a data url dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -160919,6 +160919,71 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-001.html": [
|
||||
"7ec9e4f767b4548e52e92b358b59e51376dea389",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-002.html": [
|
||||
"7e176be987e7d6cb52bfa79ef58ec1ee93634375",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-003.html": [
|
||||
"7a0040c40b534da6367fcc0d0a94ac3f7650bc50",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-004.html": [
|
||||
"aac4520f728bb833b2ecaaf5c1a03e904e333040",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-005.html": [
|
||||
"f1ad0846741704285603dff9d719790676f9e9fe",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-relative-table-tbody-left-absolute-child.html": [
|
||||
"98e759a8c0a83817b3d691503e807ed5ed549936",
|
||||
[
|
||||
|
@ -349311,7 +349376,7 @@
|
|||
],
|
||||
"tasks": {
|
||||
"test.yml": [
|
||||
"9396ce02afab697f3d63d5a55519f8536e356b0d",
|
||||
"657abf1b8e30744468f090889063f7ee4c36147b",
|
||||
[]
|
||||
]
|
||||
},
|
||||
|
@ -349343,7 +349408,7 @@
|
|||
[]
|
||||
],
|
||||
"test_valid.py": [
|
||||
"6ac76f484e14bc919102b7d76cb85f5d36daac66",
|
||||
"204465a8297b4c564f2f30500c6c7af51e56a5ec",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -349445,7 +349510,7 @@
|
|||
[]
|
||||
],
|
||||
"lint.py": [
|
||||
"75fac67dc8d22cc408205bafcdfe4195ba85a91f",
|
||||
"14052e7a9723ce52cc3ffd64bc6ef454e834f751",
|
||||
[]
|
||||
],
|
||||
"rules.py": [
|
||||
|
@ -349733,7 +349798,7 @@
|
|||
]
|
||||
},
|
||||
"typedata.py": [
|
||||
"13a041e54c3e240e26db83c18a1f589e05cdc851",
|
||||
"01bb82705f8445ad531fc2d9ec7d600e6cfc321c",
|
||||
[]
|
||||
],
|
||||
"update.py": [
|
||||
|
@ -349745,7 +349810,7 @@
|
|||
[]
|
||||
],
|
||||
"vcs.py": [
|
||||
"80c0512807a95937061fdea672ba75562e60a2f8",
|
||||
"3dfd7c980d70594ff5d8ef48d034ae696521fbdd",
|
||||
[]
|
||||
]
|
||||
},
|
||||
|
@ -356814,7 +356879,7 @@
|
|||
[]
|
||||
],
|
||||
"config.py": [
|
||||
"7766565fe4fd175598b8b6cce0e4ff4b40f10d9d",
|
||||
"4d653f522a05e5ec53f11542cf3ea48202f9152c",
|
||||
[]
|
||||
],
|
||||
"constants.py": [
|
||||
|
@ -366488,6 +366553,31 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"idbobjectstore_putall.tentative.any.js": [
|
||||
"c66669595ea16b74000c11ad8163ec19c93e35fa",
|
||||
[
|
||||
"IndexedDB/idbobjectstore_putall.tentative.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"support-promises.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"IndexedDB/idbobjectstore_putall.tentative.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"support-promises.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"idbrequest-onupgradeneeded.htm": [
|
||||
"73f22697f6eeb8d1a485cff382931f573470b81c",
|
||||
[
|
||||
|
@ -380264,6 +380354,15 @@
|
|||
]
|
||||
},
|
||||
"clipboard-apis": {
|
||||
"async-html-script-removal.https.html": [
|
||||
"90dc44c9db20e31ceae6bead41b956754cfe9d9d",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"async-idlharness.https.html": [
|
||||
"a1a51c98690f1c83679c3ae71f3bafe99824f025",
|
||||
[
|
||||
|
@ -380307,6 +380406,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"async-write-html-read-html.https.html": [
|
||||
"7c271b9bd78d1b68b86a911923789c32f02210fe",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"async-write-image-read-image.https.html": [
|
||||
"281358dfc5f8d68d3d6d436fdd92dbc8fb8b7b5d",
|
||||
[
|
||||
|
@ -392238,6 +392346,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fallback-url-to-local.html": [
|
||||
"c30af93d149e1df045c53e2403ad3a4c56dd6ce3",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"font-display": {
|
||||
"font-display-failure-fallback.html": [
|
||||
"00b528298b583cc74e013cdeff917f22290f908b",
|
||||
|
@ -394923,6 +395038,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"grid-auto-explicit-rows-001.html": [
|
||||
"81b531ca347cfaaa47f6ef46f3791f0fff60a779",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"grid-auto-fill-columns-001.html": [
|
||||
"44c60801010a5585f144a8bf5775ae86620d9529",
|
||||
[
|
||||
|
@ -435105,6 +435227,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"document-exit-fullscreen-nested-shadow-dom.html": [
|
||||
"695ae0032235fc4af020b8d5d2bf35c08979cbaa",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"document-fullscreen-enabled-active-document.html": [
|
||||
"40171b510b0e08bd001d42031f6fd9209e320b57",
|
||||
[
|
||||
|
@ -521003,7 +521134,7 @@
|
|||
]
|
||||
],
|
||||
"osc-basic-waveform.html": [
|
||||
"bebcc6abc43779569c47c8f02866a610295e8ee1",
|
||||
"b34c96855fdbb26428c64ed879d41ec787fb8d85",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[fallback-url-to-local.html]
|
||||
[We should use the local font to render the page when the primary remote font is loading]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,9 +312,6 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -327,3 +324,12 @@
|
|||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,6 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[077.html]
|
||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -4,6 +4,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,11 +1,4 @@
|
|||
[dedicated-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a dedicated worker in a data url dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
[Create a data url dedicated worker in a data url dedicated worker]
|
||||
expected: NOTRUN
|
||||
|
||||
[Create a data url dedicated worker in a data url frame]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
// META: script=support-promises.js
|
||||
|
||||
/**
|
||||
* This file contains the webplatform tests for the explicit commit() method
|
||||
* of the IndexedDB transaction API.
|
||||
*
|
||||
* @author nums@google.com
|
||||
*/
|
||||
|
||||
promise_test(async testCase => {
|
||||
const db = await createDatabase(testCase, db => {
|
||||
const store = createBooksStore(testCase, db);
|
||||
let values = [
|
||||
{isbn: 'one', title: 'title1'},
|
||||
{isbn: 'two', title: 'title2'},
|
||||
{isbn: 'three', title: 'title3'}
|
||||
];
|
||||
const putAllRequests = store.putAll(values);
|
||||
putAllRequests.forEach(async request => {
|
||||
await promiseForRequest(testCase, request);
|
||||
});
|
||||
});
|
||||
|
||||
const txn = db.transaction(['books'], 'readonly');
|
||||
const objectStore = txn.objectStore('books');
|
||||
const getRequest1 = objectStore.get('one');
|
||||
const getRequest2 = objectStore.get('two');
|
||||
const getRequest3 = objectStore.get('three');
|
||||
await promiseForTransaction(testCase, txn);
|
||||
assert_array_equals(
|
||||
[getRequest1.result.title,
|
||||
getRequest2.result.title,
|
||||
getRequest3.result.title],
|
||||
['title1', 'title2', 'title3'],
|
||||
'All three retrieved titles should match those that were put.');
|
||||
db.close();
|
||||
}, 'Data can be successfully inputted into an object store using putAll.');
|
|
@ -0,0 +1,56 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>
|
||||
Async Clipboard write ([text/html ClipboardItem]) -> readHtml (and remove scripts) tests
|
||||
</title>
|
||||
<link rel="help" href="https://w3c.github.io/clipboard-apis/#async-clipboard-api">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
// This function removes extra spaces between tags in html. For example, the
|
||||
// following html: "<p> Hello </p> <body> World </body>" would turn into this
|
||||
// html: "<p> Hello </p> <body> World </body>"
|
||||
// We remove the extra spaces because in html they are considered equivalent,
|
||||
// but when we are comparing for equality the spaces make a difference.
|
||||
function reformatHtml(html) {
|
||||
const parser = new DOMParser();
|
||||
const htmlString =
|
||||
parser.parseFromString(html, 'text/html').documentElement.innerHTML;
|
||||
const reformattedString = htmlString.replace(/\>\s*\</g, '> <');
|
||||
return reformattedString;
|
||||
}
|
||||
|
||||
// The string must be concatenated in this way because the html parser
|
||||
// will recognize a script tag even in quotes as a real script tag. By
|
||||
// splitting it up in this way we avoid that error.
|
||||
const html_with_script =
|
||||
'<title>Title of the document</title> <script>const a = 5;</scr'
|
||||
+ 'ipt> <p>Hello World</p>';
|
||||
const html_without_script =
|
||||
'<title>Title of the document</title> <p>Hello World</p>';
|
||||
promise_test(async t => {
|
||||
await test_driver.set_permission({name: 'clipboard-read'}, 'granted');
|
||||
await test_driver.set_permission({name: 'clipboard-write'}, 'granted');
|
||||
const blobInput = new Blob([html_with_script], {type: 'text/html'});
|
||||
const clipboardItem = new ClipboardItem({'text/html': blobInput});
|
||||
await navigator.clipboard.write([clipboardItem]);
|
||||
const clipboardItems = await navigator.clipboard.read({type: 'text/html'});
|
||||
|
||||
const html = clipboardItems[0];
|
||||
assert_equals(html.types.length, 1);
|
||||
assert_equals(html.types[0], 'text/html');
|
||||
|
||||
const blobOutput = await html.getType('text/html');
|
||||
assert_equals(blobOutput.type, 'text/html');
|
||||
|
||||
const blobText = await (new Response(blobOutput)).text();
|
||||
|
||||
const outputHtml = reformatHtml(blobText);
|
||||
const inputHtml = reformatHtml(html_without_script);
|
||||
assert_equals(outputHtml, inputHtml);
|
||||
}, 'Verify write and read clipboard with scripts removed given text/html: '
|
||||
+ html_with_script);
|
||||
</script>
|
|
@ -0,0 +1,58 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>
|
||||
Async Clipboard write ([text/html ClipboardItem]) -> readHtml tests
|
||||
</title>
|
||||
<link rel="help" href="https://w3c.github.io/clipboard-apis/#async-clipboard-api">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
// This function removes extra spaces between tags in html. For example, the
|
||||
// following html: "<p> Hello </p> <body> World </body>" would turn into this
|
||||
// html: "<p> Hello </p> <body> World </body>"
|
||||
// We remove the extra spaces because in html they are considered equivalent,
|
||||
// but when we are comparing for equality the spaces make a difference.
|
||||
function reformatHtml(html) {
|
||||
const parser = new DOMParser();
|
||||
const htmlString =
|
||||
parser.parseFromString(html, 'text/html').documentElement.innerHTML;
|
||||
const reformattedString = htmlString.replace(/\>\s*\</g, '> <');
|
||||
return reformattedString;
|
||||
}
|
||||
|
||||
async function readWriteTest(textInput) {
|
||||
await test_driver.set_permission({name: 'clipboard-read'}, 'granted');
|
||||
await test_driver.set_permission({name: 'clipboard-write'}, 'granted');
|
||||
const blobInput = new Blob([textInput], {type: 'text/html'});
|
||||
const clipboardItem = new ClipboardItem({'text/html': blobInput});
|
||||
await navigator.clipboard.write([clipboardItem]);
|
||||
const clipboardItems = await navigator.clipboard.read({type: 'text/html'});
|
||||
|
||||
const html = clipboardItems[0];
|
||||
assert_equals(html.types.length, 1);
|
||||
assert_equals(html.types[0], 'text/html');
|
||||
|
||||
const blobOutput = await html.getType('text/html');
|
||||
assert_equals(blobOutput.type, 'text/html');
|
||||
|
||||
const blobText = await (new Response(blobOutput)).text();
|
||||
|
||||
const outputHtml = reformatHtml(blobText);
|
||||
const inputHtml = reformatHtml(textInput);
|
||||
assert_equals(outputHtml, inputHtml);
|
||||
}
|
||||
const testCases = [`<!doctype html> <html> <head> <title>Title of the
|
||||
document</title> </head> <body> <p>Hello World</p>
|
||||
</body> </html>`,
|
||||
'<title>Title of the document</title> <p>Hello World</p>'];
|
||||
|
||||
promise_test(async t => {
|
||||
for (const testCase of testCases) {
|
||||
await readWriteTest(testCase);
|
||||
}
|
||||
}, 'Verify read and write of some text/html content');
|
||||
|
||||
</script>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test that font fallback from a pending web font to an available local font works.</title>
|
||||
<link rel=help href="https://drafts.csswg.org/css-fonts-4/#font-matching-algorithm">
|
||||
<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1101483">
|
||||
<link rel=author href="mailto:xiaochengh@chromium.org">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: remote-font;
|
||||
src: url(/fonts/Revalia.woff?pipe=trickle(d1)) format(woff);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: local-font;
|
||||
src: local(Ahem);
|
||||
}
|
||||
|
||||
#target {
|
||||
font: 25px/1 remote-font, local-font, monospace;
|
||||
}
|
||||
</style>
|
||||
<span id="target">0123456789</span>
|
||||
<script>
|
||||
test(() => {
|
||||
assert_false(document.fonts.check('25px/1 remote-font'));
|
||||
assert_equals(target.offsetWidth, 250);
|
||||
}, 'We should use the local font to render the page when the primary remote font is loading');
|
||||
</script>
|
|
@ -0,0 +1,39 @@
|
|||
<!doctype html>
|
||||
<title>grid-auto applies to explicit rows</title>
|
||||
|
||||
<link rel=author title="Tab Atkins-Bittner" href="https://www.xanthir.com/contact/">
|
||||
<link rel=help href="https://www.w3.org/TR/css-grid-1/#implicit-grids">
|
||||
<meta name=assert content="grid-auto-rows/columns should dictate the size of all rows past grid-template-rows/columns, even if they are part of the explicit grid as established by grid-template-areas; they're not just limited to implicit tracks.">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<style>
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-areas: "a b c" "d e f" "g e h";
|
||||
grid-template-rows: 11px 13px;
|
||||
grid-auto-rows: 17px 19px;
|
||||
grid-template-columns: 23px 29px;
|
||||
grid-auto-columns: 31px 37px;
|
||||
}
|
||||
|
||||
.grid > div {
|
||||
background: rgba(0, 0, 0, .2);
|
||||
}
|
||||
#c1 { grid-area: 1 / 1 / 2 / 2; }
|
||||
#c2 { grid-area: 1 / 1 / 3 / 3; }
|
||||
#c3 { grid-area: 1 / 1 / 4 / 4; }
|
||||
#c4 { grid-area: 1 / 1 / 5 / 5; }
|
||||
</style>
|
||||
|
||||
<div class=grid>
|
||||
<div id=c1 data-expected-width=23 data-expected-height=11></div>
|
||||
<div id=c2 data-expected-width=52 data-expected-height=24></div>
|
||||
<div id=c3 data-expected-width=83 data-expected-height=41></div>
|
||||
<div id=c4 data-expected-width=120 data-expected-height=60></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
checkLayout('.grid');
|
||||
</script>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1058690">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="A percent inset resolves against the available size.">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="width: 100px; height: 100px; background: red;">
|
||||
<span style="position: relative; top: 100%; left: 100%;">
|
||||
<div style="width: 100px; height: 100px; background: green; position: relative; top: -100px; left: -100px;"></div>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1058690">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="A percent inset resolves against the available size.">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="width: 100px; height: 100px; background: red;">
|
||||
<span style="position: relative; top: 100px; left: 100px;">
|
||||
<div style="width: 100px; height: 100px; background: green; position: relative; top: -100%; left: -100%;"></div>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1058690">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="A percent inset resolves against the available size.">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="width: 100px; height: 100px; background: red;">
|
||||
<span style="position: relative; top: 100%; left: 100%;">
|
||||
<span style="position: relative; top: -100px; left: -100px;">
|
||||
<div style="width: 100px; height: 100px; background: green; position: fixed;"></div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1058690">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="A percent inset resolves against the available size when it dynamically changes.">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="target" style="contain: paint; width: 100px; background: red; line-height: 0;">
|
||||
<span style="position: relative; top: -100%;">
|
||||
<span style="position: relative; top: 100px;">
|
||||
<div style="position: fixed; width: 100px; height: 100px; background: green;"></div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<script>
|
||||
document.body.offsetTop;
|
||||
document.getElementById('target').style.height = '100px';
|
||||
</script>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1058690">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="A percent inset resolves against the available size when it dynamically changes.">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="target" style="width: 100px; background: red; line-height: 0;">
|
||||
<span style="position: relative; top: -100%;">
|
||||
<span style="position: relative; top: 100px;">
|
||||
<div style="position: absolute; width: 100px; height: 100px; background: green;"></div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<script>
|
||||
document.body.offsetTop;
|
||||
document.getElementById('target').style.height = '100px';
|
||||
</script>
|
|
@ -0,0 +1,69 @@
|
|||
<!doctype html>
|
||||
<title>Exiting fullscreen from a nested shadow root should work correctly.</title>
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1652155">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<div id="host">
|
||||
<button>
|
||||
<!--
|
||||
This is gross, but testdriver doesn't let us click stuff in shadow
|
||||
DOM, so here we are instead, using nested slots.
|
||||
-->
|
||||
fullscreen
|
||||
</button>
|
||||
</div>
|
||||
<script>
|
||||
promise_test(async function() {
|
||||
let host = document.getElementById("host");
|
||||
host.attachShadow({ mode: "open" }).innerHTML = `
|
||||
<style>
|
||||
#outer { width: 200px; height: 200px; background: blue }
|
||||
</style>
|
||||
<div id="outer">
|
||||
<slot></slot>
|
||||
</div>
|
||||
`;
|
||||
|
||||
let outer = host.shadowRoot.getElementById("outer");
|
||||
outer.attachShadow({ mode: "open" }).innerHTML = `
|
||||
<style>
|
||||
#inner { width: 100px; height: 100px; background: purple }
|
||||
</style>
|
||||
<div id="inner"></div>
|
||||
<slot></slot>
|
||||
`;
|
||||
|
||||
let button = document.querySelector("button");
|
||||
|
||||
let inner = outer.shadowRoot.getElementById("inner");
|
||||
let finished = new Promise(resolve => {
|
||||
button.addEventListener("click", async function() {
|
||||
await outer.requestFullscreen();
|
||||
assert_equals(outer.getRootNode().fullscreenElement, outer);
|
||||
assert_equals(document.fullscreenElement, host);
|
||||
|
||||
button.addEventListener("click", async function() {
|
||||
await inner.requestFullscreen();
|
||||
assert_equals(inner.getRootNode().fullscreenElement, inner);
|
||||
assert_equals(document.fullscreenElement, host);
|
||||
await document.exitFullscreen();
|
||||
assert_equals(inner.getRootNode().fullscreenElement, null);
|
||||
assert_equals(outer.getRootNode().fullscreenElement, outer);
|
||||
assert_equals(document.fullscreenElement, host);
|
||||
resolve();
|
||||
}, { once: true });
|
||||
|
||||
requestAnimationFrame(() => requestAnimationFrame(() => {
|
||||
test_driver.click(button);
|
||||
}));
|
||||
}, { once: true });
|
||||
});
|
||||
|
||||
test_driver.click(button);
|
||||
await finished;
|
||||
}, "Exiting fullscreen from a nested shadow root works correctly.");
|
||||
</script>
|
|
@ -138,8 +138,6 @@ tasks:
|
|||
suite: testharness
|
||||
- vars:
|
||||
suite: reftest
|
||||
- vars:
|
||||
suite: print-reftest
|
||||
- vars:
|
||||
suite: wdspec
|
||||
- vars:
|
||||
|
@ -214,6 +212,63 @@ tasks:
|
|||
of ${chunks.total}), run in the ${vars.channel} release of
|
||||
${vars.browser}.
|
||||
|
||||
# print-reftest are currently only supported by Chrome and Firefox.
|
||||
- $map:
|
||||
for:
|
||||
- vars:
|
||||
suite: print-reftest
|
||||
do:
|
||||
$map:
|
||||
for:
|
||||
- vars:
|
||||
browser: firefox
|
||||
channel: nightly
|
||||
use:
|
||||
- trigger-master
|
||||
- trigger-push
|
||||
- vars:
|
||||
browser: firefox
|
||||
channel: beta
|
||||
use:
|
||||
- trigger-weekly
|
||||
- trigger-push
|
||||
- vars:
|
||||
browser: firefox
|
||||
channel: stable
|
||||
use:
|
||||
- trigger-daily
|
||||
- trigger-push
|
||||
- vars:
|
||||
browser: chrome
|
||||
channel: dev
|
||||
use:
|
||||
- trigger-master
|
||||
- trigger-push
|
||||
- vars:
|
||||
browser: chrome
|
||||
channel: beta
|
||||
use:
|
||||
- trigger-weekly
|
||||
- trigger-push
|
||||
- vars:
|
||||
browser: chrome
|
||||
channel: stable
|
||||
use:
|
||||
- trigger-daily
|
||||
- trigger-push
|
||||
do:
|
||||
- ${vars.browser}-${vars.channel}-${vars.suite}:
|
||||
use:
|
||||
- wpt-base
|
||||
- run-options
|
||||
- wpt-run
|
||||
- browser-${vars.browser}
|
||||
- wpt-${vars.suite}
|
||||
description: >-
|
||||
A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id}
|
||||
of ${chunks.total}), run in the ${vars.channel} release of
|
||||
${vars.browser}.
|
||||
|
||||
- $map:
|
||||
for:
|
||||
- vars:
|
||||
|
|
|
@ -123,14 +123,14 @@ def test_verify_payload():
|
|||
'wpt-chrome-dev-reftest-3',
|
||||
'wpt-chrome-dev-reftest-4',
|
||||
'wpt-chrome-dev-reftest-5',
|
||||
'wpt-firefox-nightly-print-reftest-1',
|
||||
'wpt-chrome-dev-print-reftest-1',
|
||||
'wpt-firefox-nightly-wdspec-1',
|
||||
'wpt-firefox-nightly-wdspec-2',
|
||||
'wpt-chrome-dev-wdspec-1',
|
||||
'wpt-chrome-dev-wdspec-2',
|
||||
'wpt-firefox-nightly-crashtest-1',
|
||||
'wpt-chrome-dev-crashtest-1',
|
||||
'wpt-firefox-nightly-print-reftest-1',
|
||||
'wpt-chrome-dev-print-reftest-1',
|
||||
'lint']),
|
||||
("pr_event.json", True, {".taskcluster.yml",".travis.yml","tools/ci/start.sh"},
|
||||
['lint',
|
||||
|
@ -243,10 +243,6 @@ def test_verify_payload():
|
|||
'wpt-servo-nightly-reftest-3',
|
||||
'wpt-servo-nightly-reftest-4',
|
||||
'wpt-servo-nightly-reftest-5',
|
||||
'wpt-firefox-stable-print-reftest-1',
|
||||
'wpt-chrome-stable-print-reftest-1',
|
||||
'wpt-webkitgtk_minibrowser-nightly-print-reftest-1',
|
||||
'wpt-servo-nightly-print-reftest-1',
|
||||
'wpt-firefox-stable-wdspec-1',
|
||||
'wpt-firefox-stable-wdspec-2',
|
||||
'wpt-chrome-stable-wdspec-1',
|
||||
|
@ -258,7 +254,9 @@ def test_verify_payload():
|
|||
'wpt-firefox-stable-crashtest-1',
|
||||
'wpt-chrome-stable-crashtest-1',
|
||||
'wpt-webkitgtk_minibrowser-nightly-crashtest-1',
|
||||
'wpt-servo-nightly-crashtest-1'])
|
||||
'wpt-servo-nightly-crashtest-1',
|
||||
'wpt-firefox-stable-print-reftest-1',
|
||||
'wpt-chrome-stable-print-reftest-1',])
|
||||
])
|
||||
def test_schedule_tasks(event_path, is_pr, files_changed, expected):
|
||||
with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(None, None, None)):
|
||||
|
|
|
@ -704,10 +704,10 @@ def check_script_metadata(repo_root, path, f):
|
|||
return errors
|
||||
|
||||
|
||||
ahem_font_re = re.compile(b"font.*:.*ahem", flags=re.IGNORECASE)
|
||||
ahem_font_re = re.compile(br"font.*:.*ahem", flags=re.IGNORECASE)
|
||||
# Ahem can appear either in the global location or in the support
|
||||
# directory for legacy Mozilla imports
|
||||
ahem_stylesheet_re = re.compile(b"\/fonts\/ahem\.css|support\/ahem.css",
|
||||
ahem_stylesheet_re = re.compile(br"\/fonts\/ahem\.css|support\/ahem.css",
|
||||
flags=re.IGNORECASE)
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
from collections import MutableMapping
|
||||
|
||||
from six import itervalues, iteritems
|
||||
from six.moves.collections_abc import MutableMapping
|
||||
|
||||
|
||||
MYPY = False
|
||||
|
|
|
@ -3,9 +3,9 @@ import json
|
|||
import os
|
||||
import stat
|
||||
from collections import deque
|
||||
from collections import MutableMapping
|
||||
|
||||
from six import with_metaclass, PY2
|
||||
from six.moves.collections_abc import MutableMapping
|
||||
|
||||
from .utils import git
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import copy
|
||||
import logging
|
||||
import os
|
||||
from collections import defaultdict
|
||||
|
||||
from collections import defaultdict, Mapping
|
||||
from six.moves.collections_abc import Mapping
|
||||
from six import integer_types, iteritems, itervalues, string_types
|
||||
|
||||
from . import sslutils
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
a1: 0,
|
||||
b1: 1,
|
||||
prefix: 'Sine',
|
||||
threshold: 4.1724e-7,
|
||||
threshold: 4.7684e-7,
|
||||
snrThreshold: 130.95
|
||||
});
|
||||
task.done();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue