Auto merge of #22594 - servo-wpt-sync:wpt_update_02-01-2019, r=jdm

Sync WPT with upstream (02-01-2019)

Automated downstream sync of changes from upstream as of 02-01-2019.
[no-wpt-sync]

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22594)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-01-03 10:31:39 -05:00 committed by GitHub
commit de09c8fb6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 1205 additions and 66 deletions

View file

@ -14,9 +14,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL
[url-with-fetch.any.html]
[Untitled]

View file

@ -13093,6 +13093,12 @@
{}
]
],
"html/webappapis/animation-frames/cancel-handle-manual.html": [
[
"/html/webappapis/animation-frames/cancel-handle-manual.html",
{}
]
],
"html/webappapis/scripting/event-loops/task_microtask_ordering-manual.html": [
[
"/html/webappapis/scripting/event-loops/task_microtask_ordering-manual.html",
@ -13819,12 +13825,6 @@
{}
]
],
"pointerevents/pointerevent_pointerout_pen-manual.html": [
[
"/pointerevents/pointerevent_pointerout_pen-manual.html",
{}
]
],
"pointerevents/pointerevent_pointerout_received_once-manual.html": [
[
"/pointerevents/pointerevent_pointerout_received_once-manual.html",
@ -127749,6 +127749,18 @@
{}
]
],
"css/css-multicol/large-actual-column-count.html": [
[
"/css/css-multicol/large-actual-column-count.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-multicol/multicol-basic-001.html": [
[
"/css/css-multicol/multicol-basic-001.html",
@ -137341,6 +137353,126 @@
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-001.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-001.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-001.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-002.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-002.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-002.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-003.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-003.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-003.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-004.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-004.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-004.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-005.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-005.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-005.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-006.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-006.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-006.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-007.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-007.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-007.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-008.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-008.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-008.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-009.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-009.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-009.ref.html",
"=="
]
],
{}
]
],
"css/css-text/boundary-shaping/boundary-shaping-010.html": [
[
"/css/css-text/boundary-shaping/boundary-shaping-010.html",
[
[
"/css/css-text/boundary-shaping/reference/boundary-shaping-010.ref.html",
"=="
]
],
{}
]
],
"css/css-text/hanging-punctuation/hanging-scrollable-001.html": [
[
"/css/css-text/hanging-punctuation/hanging-scrollable-001.html",
@ -193405,6 +193537,18 @@
{}
]
],
"svg/coordinate-systems/abspos.html": [
[
"/svg/coordinate-systems/abspos.html",
[
[
"/svg/coordinate-systems/support/abspos-ref.html",
"=="
]
],
{}
]
],
"svg/embedded/image-embedding-svg-with-viewport-units-inline-style.svg": [
[
"/svg/embedded/image-embedding-svg-with-viewport-units-inline-style.svg",
@ -227656,6 +227800,11 @@
{}
]
],
"cookie-store/serviceworker_cookieStore_cross_origin.js": [
[
{}
]
],
"cookie-store/serviceworker_cookieStore_subscriptions.js": [
[
{}
@ -269396,6 +269545,61 @@
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-001.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-002.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-003.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-004.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-005.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-006.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-007.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-008.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-009.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/reference/boundary-shaping-010.ref.html": [
[
{}
]
],
"css/css-text/boundary-shaping/resources/LinLibertine_Re-4.7.5.woff": [
[
{}
]
],
"css/css-text/hanging-punctuation/reference/hanging-punctuation-allow-end-001-ref.xht": [
[
{}
@ -311866,6 +312070,11 @@
{}
]
],
"svg/coordinate-systems/support/abspos-ref.html": [
[
{}
]
],
"svg/embedded/support/green-rect-100x100.svg": [
[
{}
@ -338995,6 +339204,12 @@
{}
]
],
"cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html": [
[
"/cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html",
{}
]
],
"cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html": [
[
"/cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html",
@ -379447,6 +379662,12 @@
{}
]
],
"html/webappapis/animation-frames/callback-handle.html": [
[
"/html/webappapis/animation-frames/callback-handle.html",
{}
]
],
"html/webappapis/animation-frames/callback-invoked.html": [
[
"/html/webappapis/animation-frames/callback-invoked.html",
@ -379459,6 +379680,12 @@
{}
]
],
"html/webappapis/animation-frames/callback-timestamp.html": [
[
"/html/webappapis/animation-frames/callback-timestamp.html",
{}
]
],
"html/webappapis/animation-frames/cancel-invoked.html": [
[
"/html/webappapis/animation-frames/cancel-invoked.html",
@ -396245,6 +396472,14 @@
}
]
],
"pointerevents/pointerevent_pointerout_pen.html": [
[
"/pointerevents/pointerevent_pointerout_pen.html",
{
"testdriver": true
}
]
],
"pointerevents/pointerevent_root_computed_style.html": [
[
"/pointerevents/pointerevent_root_computed_style.html",
@ -476733,7 +476968,7 @@
"support"
],
"cookie-store/resources/helpers.js": [
"98f9ff6cb09808fcfe4db095994e5040ea24ba1c",
"8d5dddef6577fc534a68c9e8415854e4c64901fd",
"support"
],
"cookie-store/resources/http_cookie_and_set_cookie_headers.js": [
@ -476772,6 +477007,14 @@
"d4385d64ea993a7ecd8e92da4b722b7951134c30",
"testharness"
],
"cookie-store/serviceworker_cookieStore_cross_origin.js": [
"ac59b703dd75656adb7ad248a4826ef0983a3c4c",
"support"
],
"cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html": [
"abc431a4d628e28adc40d7c9636766c53c16cf4e",
"testharness"
],
"cookie-store/serviceworker_cookieStore_subscriptions.js": [
"9913bf3aa2c1d091e882b3dc9d8e23f55a1e26ed",
"support"
@ -562936,6 +563179,10 @@
"ce8011b17f82407599ea28a2eaf543ec9d45a98b",
"reftest"
],
"css/css-multicol/large-actual-column-count.html": [
"615e3f2f0598973d66518b7abbabe2fbf2f76bda",
"reftest"
],
"css/css-multicol/multicol-basic-001.html": [
"fca3ef47b7e4cbef7dfad8772d1d01cf67e86801",
"reftest"
@ -571364,6 +571611,90 @@
"042b858557d9e6fc66a12e96724b69a02c314d47",
"support"
],
"css/css-text/boundary-shaping/boundary-shaping-001.html": [
"d6c8fa2b236f56e11f07b15c491321e062972ca3",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-002.html": [
"c41f6497ce70cd776a589ce535bbda9c81a3b44b",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-003.html": [
"e5f870e5b39e55f74157306e0a557696d74db762",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-004.html": [
"8f3dd067142ccebd2d15368c96311c795360991a",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-005.html": [
"e5f3aa0de489f3fb052f5c7f144bd665a04e8669",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-006.html": [
"d3045fa94df09fbda79188bffb63ade742db9169",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-007.html": [
"d1360c2fe202cf06fadc5cf966a2896b8f86c5cd",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-008.html": [
"cbb78328bf11946a835db0ed4475581011da2e74",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-009.html": [
"f004273dd38fb4f598a830e46248edc6bce62aef",
"reftest"
],
"css/css-text/boundary-shaping/boundary-shaping-010.html": [
"514a9aa9449d10f74ce0cc5916451157a6ca9e6e",
"reftest"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-001.ref.html": [
"23ae8824a81d80bb004ea8d13fcf8ffb5bc7aa13",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-002.ref.html": [
"0541daef6c6099927e870714fef2a0e82a05715c",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-003.ref.html": [
"b122551cb766f1d153e89e2f136ca164851d334e",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-004.ref.html": [
"b0da33d95459106660ab52c576528dcd71797b60",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-005.ref.html": [
"b0da33d95459106660ab52c576528dcd71797b60",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-006.ref.html": [
"6b647bab3128459812418422cb27ac356d52a5b2",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-007.ref.html": [
"64733849947ef48959ccdf50325b579d1d0f9e28",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-008.ref.html": [
"0541daef6c6099927e870714fef2a0e82a05715c",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-009.ref.html": [
"7a0fe835c10d7b74647f82b2528bce848b4bc2b0",
"support"
],
"css/css-text/boundary-shaping/reference/boundary-shaping-010.ref.html": [
"8a043267a0388d266a38e06ad5184732c296b201",
"support"
],
"css/css-text/boundary-shaping/resources/LinLibertine_Re-4.7.5.woff": [
"c953a546f0a76bbbe58a7e7cbf6bb3fffa4e3ed7",
"support"
],
"css/css-text/hanging-punctuation/hanging-punctuation-allow-end-001.xht": [
"99bc272bdd198723340583bebb8c9b2017921029",
"manual"
@ -616369,7 +616700,7 @@
"support"
],
"html/browsers/browsing-the-web/history-traversal/support/window-name-test.sub.html": [
"15a3db91304722529ecae64bd6cd39ecdaebbfd4",
"460db2e9792619c7f6db07cb7e4f9dee0f17c117",
"support"
],
"html/browsers/browsing-the-web/history-traversal/unset_context_name-1.html": [
@ -633528,6 +633859,10 @@
"3867f0c41d54130d6314d74ebaec96c589f55b89",
"testharness"
],
"html/webappapis/animation-frames/callback-handle.html": [
"f1b88300313ed06f834fa2405da29b760d312f26",
"testharness"
],
"html/webappapis/animation-frames/callback-invoked.html": [
"ca34e455a21d972b259e0716c06c2e2a480ea6a7",
"testharness"
@ -633536,6 +633871,14 @@
"38f34171ea9f1f92f5bbe47929e434bb5bf937c2",
"testharness"
],
"html/webappapis/animation-frames/callback-timestamp.html": [
"8e61db61b8db0674c2254169744102a1fcbcb8f4",
"testharness"
],
"html/webappapis/animation-frames/cancel-handle-manual.html": [
"0328272522dbff7d57f0d241d8321969b608214a",
"manual"
],
"html/webappapis/animation-frames/cancel-invoked.html": [
"d075c0fdac1abdcd0c48e5f3841c646bfcdd2c55",
"testharness"
@ -648540,9 +648883,9 @@
"1888591a7c2b2d18bbfff9395845426e3a5baffb",
"manual"
],
"pointerevents/pointerevent_pointerout_pen-manual.html": [
"5e389520aa421dea3c920923356ee0a691078888",
"manual"
"pointerevents/pointerevent_pointerout_pen.html": [
"972f99d95080ab702da79f8125119a2b27778a84",
"testharness"
],
"pointerevents/pointerevent_pointerout_received_once-manual.html": [
"4827ae91de1ba6307465ce3938ec95cead1c3c5c",
@ -665460,6 +665803,14 @@
"ee86b537ae987483687cc8ba6181db82f99ab162",
"support"
],
"svg/coordinate-systems/abspos.html": [
"fb37bbe7f3ae4a61d1c216970c8a263673aed0dc",
"reftest"
],
"svg/coordinate-systems/support/abspos-ref.html": [
"6966d8cbc88de06a3170fbd2d5941f858d004fe2",
"support"
],
"svg/embedded/image-embedding-svg-with-viewport-units-inline-style.svg": [
"7880fcf501c032965814e383a93d89a31edda3c5",
"reftest"
@ -680045,7 +680396,7 @@
"support"
],
"webdriver/tests/perform_actions/support/keys.py": [
"5995f78c71016d35cdf6cbd3317c5579e24f182d",
"487381d5b29b7003b84b313e098d6045b04aa1b3",
"support"
],
"webdriver/tests/perform_actions/support/mouse.py": [

View file

@ -1,2 +0,0 @@
[white-space-002.xht]
expected: FAIL

View file

@ -1,3 +1,4 @@
[white-space-processing-040.xht]
expected:
if os == "linux": FAIL
if not debug and (os == "mac") and (version == "OS X 10.11.6") and (processor == "x86_64") and (bits == 64): FAIL

View file

@ -0,0 +1,2 @@
[boundary-shaping-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[boundary-shaping-006.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[boundary-shaping-008.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[boundary-shaping-009.html]
expected: FAIL

View file

@ -509,3 +509,21 @@
[text-indent percentage(%) / values]
expected: FAIL
[margin-right length(in) / values]
expected: FAIL
[margin-top length(px) / values]
expected: FAIL
[margin-top length(pt) / values]
expected: FAIL
[margin-right length(cm) / values]
expected: FAIL
[padding-bottom length(cm) / values]
expected: FAIL
[margin-top length(pc) / values]
expected: FAIL

View file

@ -74,3 +74,6 @@
[opacity end]
expected: FAIL
[border-left-width end]
expected: FAIL

View file

@ -1,5 +1,6 @@
[matchMedia.xht]
bug: https://github.com/servo/servo/issues/20818
expected: TIMEOUT
[window.matchMedia exists]
expected: FAIL
@ -7,5 +8,11 @@
expected: FAIL
[Resize iframe from 200x100 to 200x50, then to 100x50]
expected: FAIL
expected: NOTRUN
[Listeners are called in the order which they have been added]
expected: NOTRUN
[Listener added twice is only called once.]
expected: NOTRUN

View file

@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
expected: CRASH
expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -156,20 +156,11 @@
[windows-1252: us-ascii (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso88591 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso_8859-1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso8859-1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: l1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso-ir-100 (XMLHttpRequest)]
expected: TIMEOUT
[single-byte-decoder.html?TextDecoder]

View file

@ -1,3 +1,3 @@
[window-name-after-same-origin-main-frame-navigation.sub.html]
type: testharness
expected: ERROR
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -11,5 +11,14 @@
expected: TIMEOUT
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
expected: TIMEOUT
expected: FAIL
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
expected: FAIL
[img (srcset 1 cand) valid image, resize to narrow]
expected: FAIL
[picture: same URL in source (max-width:500px) and img, resize to narrow]
expected: FAIL

View file

@ -1,10 +0,0 @@
[non-active-document.html]
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -1,4 +0,0 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -1,4 +0,0 @@
[aborted-parser.window.html]
[document.open() after parser is aborted]
expected: FAIL

View file

@ -9,6 +9,3 @@
[document.open should throw an InvalidStateError with XML document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)]
expected: FAIL
[document.open should throw an InvalidStateError with XML document even when there is an active parser executing script]
expected: FAIL

View file

@ -12,3 +12,6 @@
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
expected: TIMEOUT
[Verifies the resolution of performance.now() is at least 5 microseconds.]
expected: FAIL

View file

@ -1,5 +1,5 @@
[buffer-full-set-to-current-buffer.html]
expected: ERROR
[Test that entries added and event firing happened in the right sequence]
expected: FAIL
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

@ -1,2 +0,0 @@
[transition_calc_implicit.html]
expected: TIMEOUT

View file

@ -13,6 +13,34 @@ self.createIframe = (url, t) => new Promise(resolve => {
t.add_cleanup(() => iframe.remove());
});
/**
* @description - Function unregisters any service workers in this scope
* and then creates a new registration. The function returns
* a promise that resolves when the registered service worker
* becomes activated. The resolved promise yields the
* service worker registration
* @param {testCase} t - test case to add cleanup functions to
*/
self.createServiceWorker = async (t, sw_registration_name, scope_url) => {
let registration = await navigator.serviceWorker.getRegistration(scope_url);
if (registration)
await registration.unregister();
registration = await navigator.serviceWorker.register(sw_registration_name,
{scope_url});
t.add_cleanup(() => registration.unregister());
return new Promise(resolve => {
const serviceWorker = registration.installing || registration.active ||
registration.waiting;
serviceWorker.addEventListener('statechange', event => {
if (event.target.state === 'activated') {
resolve(serviceWorker);
}
});
})
}
/**
* Function that will return a promise that resolves when a message event
* is fired. Returns a promise that resolves to the message that was received
@ -22,3 +50,23 @@ self.waitForMessage = () => new Promise(resolve => {
resolve(event.data);
}, {once: true});
});
/**
* Sends a message via MessageChannel and waits for the response
* @param {*} message
* @returns {Promise} resolves with the response payload
*/
self.sendMessageOverChannel = (message, target) => {
return new Promise(function(resolve, reject) {
const messageChannel = new MessageChannel();
messageChannel.port1.onmessage = event => {
if (event.data.error) {
reject(event.data.error);
} else {
resolve(event.data);
}
};
target.postMessage(message, [messageChannel.port2]);
})
};

View file

@ -0,0 +1,13 @@
self.GLOBAL = {
isWindow: () => false,
isWorker: () => false,
};
self.addEventListener('message', async event => {
if (event.data.op === 'get-cookies') {
const workerCookies = await cookieStore.getAll();
event.ports[0].postMessage({ workerCookies }, {
domain: event.origin,
});
}
});

View file

@ -0,0 +1,43 @@
<!doctype html>
<meta charset='utf-8'>
<title>Async Cookies: cookieStore API in ServiceWorker across origins</title>
<link rel='help' href='https://github.com/WICG/cookie-store'>
<link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='resources/helpers.js'></script>
<style>iframe {display: none}</style>
<script>
'use strict';
const kPath = '/cookie-store/resources/helper_iframe.sub.html';
const kCorsBase = `https://{{domains[www1]}}:{{ports[https][0]}}`;
const kCorsUrl = `${kCorsBase}${kPath}`;
promise_test(async t => {
const iframe = await createIframe(kCorsUrl, t);
assert_true(iframe != null);
const serviceWorker = await createServiceWorker(t,
'serviceworker_cookieStore_cross_origin.js', '/does/not/exist');
iframe.contentWindow.postMessage({
opname: 'set-cookie',
name: 'cookie-name',
value: 'cookie-value',
}, kCorsBase);
t.add_cleanup(() => {
cookieStore.delete('cookie-name');
});
await waitForMessage();
const { workerCookies } = await sendMessageOverChannel({ op: 'get-cookies' },
serviceWorker);
assert_equals(workerCookies.length, 1);
assert_equals(workerCookies[0].name, 'cookie-name');
assert_equals(workerCookies[0].value, 'cookie-value');
}, 'cookieStore.get() in ServiceWorker reads cookie set in cross-origin frame');
</script>

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#pseudo-algorithm">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="container" style="overflow:hidden; columns:1; column-fill:auto; column-gap:0; width:100px; height:100px; background:red;">
<div style="height:300000px;"></div>
<div style="width:100px; height:100px; background:green;"></div>
<div style="height:123456px;"></div>
</div>
<script>
document.getElementById("container").scrollLeft = 300000;
</script>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must not be broken across inline box boundaries when there is no change in formatting</title>
<link rel=match href="reference/boundary-shaping-001.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
/* initial values for these properties should not interrupt shaping */
vertical-align: initial;
padding: initial;
margin: initial;
border: initial;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when 'vertical-align' is not 'baseline'</title>
<link rel=match href="reference/boundary-shaping-002.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
vertical-align: 0; /* distinct from 'baseline', should break shaping */
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when padding is non-zero</title>
<link rel=match href="reference/boundary-shaping-003.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
padding-left: 10px;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when margin is non-zero</title>
<link rel=match href="reference/boundary-shaping-004.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
margin-right: 10px;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when border is non-zero</title>
<link rel=match href="reference/boundary-shaping-005.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
border-right: 10px solid transparent;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when 'vertical-align' is not 'baseline'</title>
<link rel=match href="reference/boundary-shaping-006.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
vertical-align: super;
}
</style>
</head>
<body>
of<span><span><span class=a><span><span>f</span></span></span></span></span>ice
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when padding or margin is non-zero</title>
<link rel=match href="reference/boundary-shaping-007.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
padding-left: 10px;
}
.b {
margin-right: 10px;
}
</style>
</head>
<body>
of<span><span class=a><span><span class=b><span>f</span></span></span></span></span>ice
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries at a bidi isolation boundary</title>
<link rel=match href="reference/boundary-shaping-008.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
@font-face {
font-family: test;
src: url(resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
unicode-bidi: isolate; /* bidi isolation boundaries should break shaping */
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must be broken across inline box boundaries when padding or margin is non-zero</title>
<link rel=match href="reference/boundary-shaping-009.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
body {
font: 36px sans-serif;
}
div {
text-align: center;
}
.a {
padding-right: 10px;
}
.b {
margin-left: 10px;
}
.c {
color: red;
padding-left: 10px;
}
.d {
color: red;
margin-right: 10px;
}
</style>
</head>
<body>
<div dir=ltr>
السلام<span class=a>عليكم</span>
</div>
<div dir=ltr>
<span class=b>السلام</span>عليكم
</div>
<div dir=rtl>
السلام<span class=a>عليكم</span>
</div>
<div dir=rtl>
<span class=b>السلام</span>عليكم
</div>
<div dir=ltr>
السلام<span class=c>عليكم</span>
</div>
<div dir=ltr>
<span class=d>السلام</span>عليكم
</div>
<div dir=rtl>
السلام<span class=c>عليكم</span>
</div>
<div dir=rtl>
<span class=d>السلام</span>عليكم
</div>
</body>
</html>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Text shaping must not be broken across inline box boundaries when there is no change in formatting</title>
<link rel=match href="reference/boundary-shaping-010.ref.html">
<link rel=help href="https://drafts.csswg.org/css-text/#boundary-shaping">
<style>
body {
font: 36px sans-serif;
}
div {
text-align: center;
}
</style>
</head>
<body>
<div dir=rtl>
ال<span>سل</span>ام
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
</style>
</head>
<body>
office
</body>
</html>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
display: inline-block;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
display: inline-block;
width: 10px;
}
</style>
</head>
<body>
of<span class=a>&nbsp;</span>fice
</body>
</html>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
display: inline-block;
width: 10px;
}
</style>
</head>
<body>
off<span class=a>&nbsp;</span>ice
</body>
</html>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
display: inline-block;
width: 10px;
}
</style>
</head>
<body>
off<span class=a>&nbsp;</span>ice
</body>
</html>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
vertical-align: super;
display: inline-block;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
padding-left: 10px;
margin-right: 10px;
display: inline-block;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
@font-face {
font-family: test;
src: url(../resources/LinLibertine_Re-4.7.5.woff);
}
body {
font: 36px test; /* use a font that includes ligatures for "fi" etc */
}
.a {
display: inline-block;
}
</style>
</head>
<body>
of<span class=a>f</span>ice
</body>
</html>

View file

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
body {
font: 36px sans-serif;
}
div {
text-align: center;
}
.a {
display: inline-block;
width: 10px;
}
.c1 {
padding-left: 10px;
}
.c {
color: red;
}
.d1 {
margin-right: 10px;
}
.d {
color: red;
}
</style>
</head>
<body>
<div dir=ltr>
السلام<span class=a>&nbsp;</span>عليكم
</div>
<div dir=ltr>
السلام<span class=a>&nbsp;</span>عليكم
</div>
<div dir=rtl>
السلام<span class=a>&nbsp;</span>عليكم
</div>
<div dir=rtl>
السلام<span class=a>&nbsp;</span>عليكم
</div>
<div dir=ltr>
<span class=c1>السلام<span class=c>عليكم</span></span>
</div>
<div dir=ltr>
<span class=d1><span class=d>السلام</span>عليكم</span>
</div>
<div dir=rtl>
<span class=c1>السلام<span class=c>عليكم</span></span>
</div>
<div dir=rtl>
<span class=d1><span class=d>السلام</span>عليكم</span>
</div>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style>
body {
font: 36px sans-serif;
}
div {
text-align: center;
}
</style>
</head>
<body>
<div dir=rtl>
السلام
</body>
</html>

View file

@ -1,7 +1,4 @@
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script>
setup({explicit_done: true})
function process_test_result(passed, test_name) {
if ({{GET[sendmessage]}}) {
if (window.opener) {
@ -10,10 +7,11 @@
parent.postMessage(passed, "*");
}
} else {
test(function(t) {
assert_equals(passed, true);
let host = window.opener || parent;
host.test(function(t) {
host.assert_equals(passed, true);
}, test_name);
done();
host.done();
}
}

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>AnimationTiming Test: FrameRequestCallback - valid callback handle</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#animation-frames">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(() => {
let requestId = window.requestAnimationFrame(() => {});
assert_greater_than(requestId, 0, "callback handle is a integer greater than zero");
}, "Check window.requestAnimationFrame can return a valid callback handle");
</script>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>AnimationTiming Test: FrameRequestCallback - timestamp argument</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#animation-frames">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
async_test(t => {
requestAnimationFrame(t.step_func_done(time => {
assert_equals(typeof time, "number", "callback contains a number argument");
}))
}, "Check FrameRequestCallback has a DOMHighResTimeStamp argument");
</script>

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>AnimationTiming Test: cancelAnimationFrame used to cancel request callback</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#animation-frames">
<style>
#animated {
background: blue;
color: white;
height: 100px;
width: 100px;
position: absolute;
}
</style>
<p>
Test passes if there is a filled blue square with 'Filler Text',
which moves from left to right repeatly, when click the 'stop' button,
the square stops.
</p>
<button onclick="stop()">stop</button>
<div id="animated">Filler Text</div>
<script>
let requestId = 0;
let requestAnimation = window.requestAnimationFrame;
let cancelAnimation = window.cancelAnimationFrame;
function animate(time) {
let div = document.getElementById("animated");
div.style.left = (time - animationStartTime) % 2000 / 4 + "px";
requestId = requestAnimation(animate);
}
function start() {
animationStartTime = window.performance.now();
requestId = requestAnimation(animate);
}
function stop() {
if (requestId) {
cancelAnimation(requestId);
requestId = 0;
}
}
start();
</script>

View file

@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script>
</head>
@ -45,6 +48,13 @@
}, "you have to use pen for this test");
}
});
// Inject pen inputs.
new test_driver.Actions()
.addPointer("pointer1", "pen")
.pointerMove(0, 0, {origin: target0})
.pointerMove(0, 0)
.send();
}
</script>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<title>Intrinsic sizing for &lt;svg&gt;</title>
<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html">
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-sizes">
<link rel="match" href="support/abspos-ref.html">
<!--
SVG embedded inside html has no intrinsic size, but has intrinsic
aspect ratio. Inline size is computed as available size of containing block,
and block size is derived from aspect ratio.
-->
<style>
#container {
width: 200px;
height: 300px;
position: relative;
border: 10px solid black;
}
#target {
fill: green;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
</style>
<div id="container">
<svg id="target" viewBox="0 0 50 50"><circle cx="50%" cy="50%" r="50%"></circle></svg>
</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<title>Intrinsic sizing for &lt;svg&gt;</title>
<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html">
<style>
#container {
width: 200px;
height: 300px;
position: relative;
border: 10px solid black;
}
#target {
fill: green;
width: 200px;
height: 200px;
}
</style>
<div id="container">
<svg id="target" viewBox="0 0 50 50"><circle cx="50%" cy="50%" r="50%"></circle></svg>
</div>

View file

@ -442,7 +442,7 @@ ALL_EVENTS = {
"value": u"\ue01d",
},
"NUMPAD4": {
"code": "PageDown",
"code": "Numpad4",
"ctrl": False,
"key": "4",
"location": 3,
@ -451,7 +451,7 @@ ALL_EVENTS = {
"value": u"\ue01e",
},
"NUMPAD5": {
"code": "PageUp",
"code": "Numpad5",
"ctrl": False,
"key": "5",
"location": 3,