Update web-platform-tests to revision 4688078c2cc6e81651b220f3c1944d956f63046b

This commit is contained in:
WPT Sync Bot 2019-04-05 21:41:37 -04:00
parent e7b65c42c4
commit ce9f8f32f1
53 changed files with 1900 additions and 88 deletions

View file

@ -1,5 +1,4 @@
[url-in-tags-revoke.window.html]
expected: TIMEOUT
[Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL
@ -15,6 +14,3 @@
[Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.]
expected: FAIL
[Fetching a blob URL immediately before revoking it works in <script> tags.]
expected: TIMEOUT

View file

@ -8773,12 +8773,174 @@
{}
]
],
"css/css-text-decor/text-decoration-line-001-manual.html": [
[
"css/css-text-decor/text-decoration-line-001-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-002-manual.html": [
[
"css/css-text-decor/text-decoration-line-002-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-003-manual.html": [
[
"css/css-text-decor/text-decoration-line-003-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-004-manual.html": [
[
"css/css-text-decor/text-decoration-line-004-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-014.xht": [
[
"css/css-text-decor/text-decoration-line-014.xht",
{}
]
],
"css/css-text-decor/text-decoration-line-040-manual.html": [
[
"css/css-text-decor/text-decoration-line-040-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-040a-manual.html": [
[
"css/css-text-decor/text-decoration-line-040a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-041-manual.html": [
[
"css/css-text-decor/text-decoration-line-041-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-044-manual.html": [
[
"css/css-text-decor/text-decoration-line-044-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-045-manual.html": [
[
"css/css-text-decor/text-decoration-line-045-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-046a-manual.html": [
[
"css/css-text-decor/text-decoration-line-046a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-048-manual.html": [
[
"css/css-text-decor/text-decoration-line-048-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-048a-manual.html": [
[
"css/css-text-decor/text-decoration-line-048a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-049-manual.html": [
[
"css/css-text-decor/text-decoration-line-049-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-082-manual.html": [
[
"css/css-text-decor/text-decoration-line-082-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-085-manual.html": [
[
"css/css-text-decor/text-decoration-line-085-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-090-manual.html": [
[
"css/css-text-decor/text-decoration-line-090-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-090a-manual.html": [
[
"css/css-text-decor/text-decoration-line-090a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-091-manual.html": [
[
"css/css-text-decor/text-decoration-line-091-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-091a-manual.html": [
[
"css/css-text-decor/text-decoration-line-091a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-092-manual.html": [
[
"css/css-text-decor/text-decoration-line-092-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-092a-manual.html": [
[
"css/css-text-decor/text-decoration-line-092a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-095-manual.html": [
[
"css/css-text-decor/text-decoration-line-095-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-095a-manual.html": [
[
"css/css-text-decor/text-decoration-line-095a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-096-manual.html": [
[
"css/css-text-decor/text-decoration-line-096-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-096a-manual.html": [
[
"css/css-text-decor/text-decoration-line-096a-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-097-manual.html": [
[
"css/css-text-decor/text-decoration-line-097-manual.html",
{}
]
],
"css/css-text-decor/text-decoration-line-097a-manual.html": [
[
"css/css-text-decor/text-decoration-line-097a-manual.html",
{}
]
],
"css/css-text/hanging-punctuation/hanging-punctuation-allow-end-001.xht": [
[
"css/css-text/hanging-punctuation/hanging-punctuation-allow-end-001.xht",
@ -141941,6 +142103,30 @@
{}
]
],
"css/css-text/line-breaking/line-breaking-013.html": [
[
"css/css-text/line-breaking/line-breaking-013.html",
[
[
"/css/css-text/line-breaking/reference/line-breaking-013-ref.html",
"=="
]
],
{}
]
],
"css/css-text/line-breaking/line-breaking-014.html": [
[
"css/css-text/line-breaking/line-breaking-014.html",
[
[
"/css/css-text/line-breaking/reference/line-breaking-013-ref.html",
"=="
]
],
{}
]
],
"css/css-text/line-breaking/line-breaking-ic-001.html": [
[
"css/css-text/line-breaking/line-breaking-ic-001.html",
@ -275052,6 +275238,11 @@
{}
]
],
"css/css-text/line-breaking/reference/line-breaking-013-ref.html": [
[
{}
]
],
"css/css-text/line-breaking/reference/line-breaking-ic-001-ref.html": [
[
{}
@ -346422,6 +346613,12 @@
{}
]
],
"animation-worklet/stateful-animator.https.html": [
[
"animation-worklet/stateful-animator.https.html",
{}
]
],
"animation-worklet/worklet-animation-creation.https.html": [
[
"animation-worklet/worklet-animation-creation.https.html",
@ -353627,6 +353824,12 @@
{}
]
],
"css/css-contain/contain-size-multicol-as-flex-item.html": [
[
"css/css-contain/contain-size-multicol-as-flex-item.html",
{}
]
],
"css/css-contain/inheritance.html": [
[
"css/css-contain/inheritance.html",
@ -474107,7 +474310,7 @@
},
"paths": {
".azure-pipelines.yml": [
"b0a60cf98816141332d91ec1027c8a39bd2a6be7",
"aff69297b39caef1c35fd77aac4ef941da5bdbb0",
"support"
],
".codecov.yml": [
@ -482122,6 +482325,10 @@
"761e66e7d76f4aaf64c7744d0d04a06e3ba16cd1",
"testharness"
],
"animation-worklet/stateful-animator.https.html": [
"c4b6301fd9dc2e5cf021cb79ddb05032679010f9",
"testharness"
],
"animation-worklet/worklet-animation-cancel-ref.html": [
"d44927374703ef2b38d3ed0c9570609b62baec65",
"support"
@ -574786,6 +574993,10 @@
"81465c02d6114aa4a27637b2e77b3d62161c0864",
"reftest"
],
"css/css-contain/contain-size-multicol-as-flex-item.html": [
"19aa12262f9a7dc35f3682b1f7baa3c12949a906",
"testharness"
],
"css/css-contain/contain-size-replaced-001.html": [
"b0dba02f1cd56f4fccc772cfb948dbabb1d600e2",
"reftest"
@ -602374,6 +602585,22 @@
"fd5bc5da3a800a7f7e97211e8cb2438bfdc0c462",
"reftest"
],
"css/css-text-decor/text-decoration-line-001-manual.html": [
"76a8f5401494b508b14fc5cc19f07108f53b12a1",
"manual"
],
"css/css-text-decor/text-decoration-line-002-manual.html": [
"0e41fd1fcfe713c4b63f7c3d8ed34ea6aee1fe71",
"manual"
],
"css/css-text-decor/text-decoration-line-003-manual.html": [
"2e94e8e946b553c02e9c09460723afdc93e741dc",
"manual"
],
"css/css-text-decor/text-decoration-line-004-manual.html": [
"5c6da02d1e0e3aa097120a2da527139e9cfdbe3b",
"manual"
],
"css/css-text-decor/text-decoration-line-010.xht": [
"f4b16e32aa185d204c1793f9ca1b0eda502c60fd",
"reftest"
@ -602394,6 +602621,98 @@
"7d5f0570b324b81761a1b5dfdc24e3bcc5b66869",
"manual"
],
"css/css-text-decor/text-decoration-line-040-manual.html": [
"c93f4b99084a9c8f54dee6130493c3cc631b434a",
"manual"
],
"css/css-text-decor/text-decoration-line-040a-manual.html": [
"5020a1fd118ea0e8bd81994c4e38449b2b33826a",
"manual"
],
"css/css-text-decor/text-decoration-line-041-manual.html": [
"7c7c920e990688518acab7aeb054ef713d36f36e",
"manual"
],
"css/css-text-decor/text-decoration-line-044-manual.html": [
"2d9048d3d1d5e5a5d97ea3127ae08f38054f9b1e",
"manual"
],
"css/css-text-decor/text-decoration-line-045-manual.html": [
"b9d688387569958283f24c3811cd97d8210a48bb",
"manual"
],
"css/css-text-decor/text-decoration-line-046a-manual.html": [
"67f2b89ea23576cf51a8654859f5d9d47a8215fc",
"manual"
],
"css/css-text-decor/text-decoration-line-048-manual.html": [
"f3a6e137e2d7ae5bc9ab3e930392a7c347661cd5",
"manual"
],
"css/css-text-decor/text-decoration-line-048a-manual.html": [
"9bd48defaf03432a5e0acddd4d68aa81a7ea20c4",
"manual"
],
"css/css-text-decor/text-decoration-line-049-manual.html": [
"31f9aa762183f604bbdb5964b79052084a1c7f40",
"manual"
],
"css/css-text-decor/text-decoration-line-082-manual.html": [
"c4425f90729ca688bd38283a8e5dc1ea42806e49",
"manual"
],
"css/css-text-decor/text-decoration-line-085-manual.html": [
"88a5fc02a048dfc12aa981938379c50c59675570",
"manual"
],
"css/css-text-decor/text-decoration-line-090-manual.html": [
"f4484c0ee282bb8bdcfc5130a7275a3878fe2cbc",
"manual"
],
"css/css-text-decor/text-decoration-line-090a-manual.html": [
"e98688521ffcc4508befe9b9dc019339d6f9c08b",
"manual"
],
"css/css-text-decor/text-decoration-line-091-manual.html": [
"94405c0362bc231c2092401fbd066d291a63fed9",
"manual"
],
"css/css-text-decor/text-decoration-line-091a-manual.html": [
"e1ba036c257eb4bc4670c3856f86381146641cf0",
"manual"
],
"css/css-text-decor/text-decoration-line-092-manual.html": [
"4dffcf6a00efffdfdb042f28cb5994be029fbf00",
"manual"
],
"css/css-text-decor/text-decoration-line-092a-manual.html": [
"7f803a35f1603795a6709ee052cd9e544dfabd3d",
"manual"
],
"css/css-text-decor/text-decoration-line-095-manual.html": [
"62ca5d1a19e40dfa59fadf8353629686de0894d1",
"manual"
],
"css/css-text-decor/text-decoration-line-095a-manual.html": [
"f5bab19374f94fe60c07f7742222ec27180d5881",
"manual"
],
"css/css-text-decor/text-decoration-line-096-manual.html": [
"01eaf87875b47897164e7407c01aba59024f7e19",
"manual"
],
"css/css-text-decor/text-decoration-line-096a-manual.html": [
"233006c904ebc8568ca18547f48749315847727a",
"manual"
],
"css/css-text-decor/text-decoration-line-097-manual.html": [
"9502b2367aca0bae91d2cac7ace69a2dfcd8e96d",
"manual"
],
"css/css-text-decor/text-decoration-line-097a-manual.html": [
"e037e15d73c445a72bd81e5fd4971c9e17eba456",
"manual"
],
"css/css-text-decor/text-decoration-line-recalc.html": [
"321aea9f3d93f31685878a14bfc67f9c3e9cf63e",
"reftest"
@ -605002,6 +605321,14 @@
"08f956c9166df4770cdd1d2d60aac9c8acd675d2",
"reftest"
],
"css/css-text/line-breaking/line-breaking-013.html": [
"448a41d88f1ff099866f1597edec3ebf5128ecb6",
"reftest"
],
"css/css-text/line-breaking/line-breaking-014.html": [
"ea9956362beecb2da890dbef24362a6e9a8be905",
"reftest"
],
"css/css-text/line-breaking/line-breaking-ic-001.html": [
"6cfe6f86a452c19eae31a076710f02dfc8c4ec4e",
"reftest"
@ -605022,6 +605349,10 @@
"463dc2287ea251750e0c542873011c9c8707dd30",
"support"
],
"css/css-text/line-breaking/reference/line-breaking-013-ref.html": [
"816015adeab54895037530b8e4d410f81082931f",
"support"
],
"css/css-text/line-breaking/reference/line-breaking-ic-001-ref.html": [
"421002818f6d5f9837c5de3967a1c3d7b441244f",
"support"
@ -640487,7 +640818,7 @@
"testharness"
],
"dom/events/Event-dispatch-on-disabled-elements.html": [
"72e63c4d1e97f1113dd7db357921fd1b0ab9372b",
"361006a7240496e9be747faca5056fe2a62a2cff",
"testharness"
],
"dom/events/Event-dispatch-order.html": [
@ -640611,7 +640942,7 @@
"testharness"
],
"dom/events/EventTarget-dispatchEvent.html": [
"1a8bf3de915d5cb8c608ecdef69511d4dbffe113",
"8a0d7353bc62ba8330069fef4c71a0e33321b0aa",
"testharness"
],
"dom/events/EventTarget-removeEventListener.html": [
@ -662211,7 +662542,7 @@
"testharness"
],
"html/semantics/forms/textfieldselection/selection-start-end-extra.html": [
"af51354035c5cae33d35cbff03e2eed5d5359f85",
"e76f5f6ea70c2ba769fe6a75e9aa1c95d98e2760",
"testharness"
],
"html/semantics/forms/textfieldselection/selection-start-end.html": [
@ -669347,7 +669678,7 @@
"support"
],
"interfaces/wake-lock.idl": [
"202dc6b09f7e6aa56289b62bb810ed0fb2e289d0",
"4c11b695f49986e7e9852348f21fe9bd5e68d185",
"support"
],
"interfaces/wasm-js-api.idl": [
@ -669403,7 +669734,7 @@
"support"
],
"interfaces/webrtc-stats.idl": [
"0992b341e1fe3cede699c09eeb5838bd1e7a3999",
"d9d20191ad851f4b6d85cd09e8a53b8697bc840e",
"support"
],
"interfaces/webrtc.idl": [
@ -669419,7 +669750,7 @@
"support"
],
"interfaces/webxr.idl": [
"8a3264073e8268282c3db6a891b860d57bfcdb28",
"4c74fdac384299ed22a9b9244411c3755a8741db",
"support"
],
"interfaces/worklets.idl": [
@ -710559,7 +710890,7 @@
"support"
],
"url/resources/urltestdata.json": [
"26b8ea2e0bc9a166deef8af1a0df87e0a7e0fda4",
"bf4e2a7833d17fab604eb634051e627887fe936a",
"support"
],
"url/toascii.window.js": [
@ -715711,7 +716042,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-onnegotiationneeded.html": [
"f7bf8bd3e3bdc24c63a92da22eaae77b95f0d4fd",
"336b100de058200ab49400fac9ae00f8524b9da9",
"testharness"
],
"webrtc/RTCPeerConnection-onsignalingstatechanged.https.html": [

View file

@ -0,0 +1,2 @@
[line-breaking-013.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-breaking-014.html]
expected: FAIL

View file

@ -36,3 +36,6 @@
[If the event's initialized flag is not set, an InvalidStateError must be thrown (WheelEvent).]
expected: FAIL
[Capturing event listeners should be called before non-capturing ones]
expected: FAIL

View file

@ -22,7 +22,7 @@
expected: NOTRUN
[<iframe>: combined response Content-Type: text/plain */*;charset=gbk]
expected: TIMEOUT
expected: FAIL
[fetch(): separate response Content-Type: text/html;x=" text/plain]
expected: NOTRUN
@ -163,7 +163,7 @@
expected: NOTRUN
[<iframe>: combined response Content-Type: text/html;" " text/plain]
expected: TIMEOUT
expected: FAIL
[Request: combined response Content-Type: text/plain;charset=gbk;x=foo text/plain]
expected: NOTRUN
@ -172,7 +172,7 @@
expected: NOTRUN
[<iframe>: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: TIMEOUT
expected: FAIL
[Response: combined response Content-Type: text/html;x=" text/plain]
expected: NOTRUN
@ -202,7 +202,7 @@
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;" " text/plain]
expected: TIMEOUT
expected: FAIL
[fetch(): separate response Content-Type: text/plain */*;charset=gbk]
expected: NOTRUN
@ -286,7 +286,7 @@
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: TIMEOUT
expected: FAIL
[fetch(): combined response Content-Type: text/html;" " text/plain]
expected: NOTRUN
@ -310,32 +310,8 @@
expected: NOTRUN
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: TIMEOUT
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: TIMEOUT
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: TIMEOUT
[<iframe>: combined response Content-Type: text/html */*]
expected: TIMEOUT
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: TIMEOUT
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: TIMEOUT
expected: FAIL
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: TIMEOUT
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: TIMEOUT
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: TIMEOUT

View file

@ -11,3 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20%2Cnosniff]
expected: FAIL

View file

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

View file

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

View file

@ -14,6 +14,6 @@
[Setting value to a shorter string than defaultValue should correct the cursor position]
expected: FAIL
[Shortening value by turning the input type into 'color' and back to 'text' should correct selection{Start,End}]
[Removing child nodes in non-dirty textarea should make selection{Start,End} 0]
expected: FAIL

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

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

View file

@ -186,7 +186,7 @@ jobs:
- template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --no-manifest-update --no-fail-on-unexpected --install-fonts --webdriver-arg=--verbose --test-types reftest testharness --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-tbpl - --log-tbpl-level info --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt edge_webdriver
- script: python ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --webdriver-arg=--verbose --test-types reftest testharness --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-tbpl - --log-tbpl-level info --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt edge_webdriver
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'

View file

@ -0,0 +1,162 @@
<!DOCTYPE html>
<title>Basic use of stateful animator</title>
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/web-animations/testcommon.js"></script>
<script src="common.js"></script>
<div id="target"></div>
<script id="stateful_animator_basic" type="text/worklet">
registerAnimator("stateful_animator_basic", class {
constructor(options, state = { test_local_time: 0 }) {
this.test_local_time = state.test_local_time;
}
animate(currentTime, effect) {
effect.localTime = this.test_local_time++;
}
state() {
return {
test_local_time: this.test_local_time
};
}
});
</script>
<script id="stateless_animator_basic" type="text/worklet">
registerAnimator("stateless_animator_basic", class {
constructor(options, state = { test_local_time: 0 }) {
this.test_local_time = state.test_local_time;
}
animate(currentTime, effect) {
effect.localTime = this.test_local_time++;
}
// Unless a valid state function is provided, the animator is considered
// stateless. e.g. animator with incorrect state function name.
State() {
return {
test_local_time: this.test_local_time
};
}
});
</script>
<script id="state_function_returns_empty" type="text/worklet">
registerAnimator("state_function_returns_empty", class {
constructor(options, state = { test_local_time: 0 }) {
this.test_local_time = state.test_local_time;
}
animate(currentTime, effect) {
effect.localTime = this.test_local_time++;
}
state() {}
});
</script>
<script id="state_function_returns_not_serializable" type="text/worklet">
registerAnimator("state_function_returns_not_serializable", class {
constructor(options) {
this.test_local_time = 0;
}
animate(currentTime, effect) {
effect.localTime = this.test_local_time++;
}
state() {
return new Error('foo');
}
});
</script>
<script>
async function localTimeDoesNotUpdate(animation) {
// The local time stops increasing after the animator instance being dropped.
// e.g. 0, 1, 2, .., n, n, n, n, .. where n is the frame that the global
// scope switches at.
let last_local_time = animation.effect.getComputedTiming().localTime;
let frame_count = 0;
const FRAMES_WITHOUT_CHANGE = 10;
do {
await new Promise(window.requestAnimationFrame);
let current_local_time = animation.effect.getComputedTiming().localTime;
if (last_local_time == current_local_time)
++frame_count;
else
frame_count = 0;
last_local_time = current_local_time;
} while (frame_count < FRAMES_WITHOUT_CHANGE);
}
async function localTimeResetsToZero(animation) {
// The local time is reset upon global scope switching. e.g.
// 0, 1, 2, .., 0, 1, 2, .., 0, 1, 2, .., 0, 1, 2, ...
let reset_count = 0;
const LOCAL_TIME_RESET_CHECK = 3;
do {
await new Promise(window.requestAnimationFrame);
if (0 == animation.effect.getComputedTiming().localTime)
++reset_count;
} while (reset_count < LOCAL_TIME_RESET_CHECK);
}
promise_test(async t => {
await runInAnimationWorklet(document.getElementById('stateful_animator_basic').textContent);
const target = document.getElementById('target');
const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 });
const animation = new WorkletAnimation('stateful_animator_basic', effect);
animation.play();
// effect.localTime should be correctly increased upon global scope
// switches for stateful animators.
const EXPECTED_FRAMES_TO_A_SCOPE_SWITCH = 15;
await waitForAnimationFrameWithCondition(_ => {
return animation.effect.getComputedTiming().localTime ==
EXPECTED_FRAMES_TO_A_SCOPE_SWITCH;
});
animation.cancel();
}, "Stateful animator can use its state to update the animation. Pass if test does not timeout");
promise_test(async t => {
await runInAnimationWorklet(document.getElementById('stateless_animator_basic').textContent);
const target = document.getElementById('target');
const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 });
const animation = new WorkletAnimation('stateless_animator_basic', effect);
animation.play();
// The local time should be reset to 0 upon global scope switching for
// stateless animators.
await localTimeResetsToZero(animation);
animation.cancel();
}, "Stateless animator gets reecreated with 'undefined' state.");
promise_test(async t => {
await runInAnimationWorklet(document.getElementById('state_function_returns_empty').textContent);
const target = document.getElementById('target');
const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 });
const animation = new WorkletAnimation('state_function_returns_empty', effect);
animation.play();
// The local time should be reset to 0 upon global scope switching for
// stateless animators.
await localTimeResetsToZero(animation);
animation.cancel();
}, "Stateful animator gets recreated with 'undefined' state if state function returns undefined.");
promise_test(async t => {
await runInAnimationWorklet(document.getElementById('state_function_returns_not_serializable').textContent);
const target = document.getElementById('target');
const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000, iteration: Infinity });
const animation = new WorkletAnimation('state_function_returns_not_serializable', effect);
animation.play();
// The local time of an animation increases until the registered animator
// gets removed.
await localTimeDoesNotUpdate(animation);
animation.cancel();
}, "Stateful Animator instance gets dropped (does not get migrated) if state function is not serializable.");
</script>

View file

@ -0,0 +1,30 @@
<!DOCTYPE HTML>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-size">
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=863454">
<style>
#flex {
display: flex;
}
#multicol {
columns: 3;
min-width: 0;
column-gap: 50px;
contain:size;
height:100px;
background:green;
}
</style>
<p>There should be a green square below.</p>
<div id="flex">
<div id="multicol" data-expected-width="100" data-expected-height="100">
<div style="width:1000px; height:1px;"></div>
</div>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
checkLayout("#flex");
</script>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline</title>
<meta name="assert" content="text-decoration-line:underline; there is a line at or under the alphabetic baseline">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}
</style>
</head>
<body>
<p class="instructions">Test passes if there is a line at or under the alphabetic baseline.</p>
<div id="htmlsrc">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline</title>
<meta name="assert" content="text-decoration-line:overline; there is an overline">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is an overline.</p>
<div id="htmlsrc">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through</title>
<meta name="assert" content="text-decoration-line:line-through; there is a solid line through the centre of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a solid line through the centre of the characters.</p>
<div id="htmlsrc">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline overline</title>
<meta name="assert" content="text-decoration-line:underline overline; there is an overline and an underline">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is an overline and an underline.</p>
<div id="htmlsrc">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline tbrl hor scripts</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: vertical-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline tbrl mixed</title>
<meta name="assert" content="text-decoration-line:underline; there is an unbroken line to the LEFT of the characters for each lines">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 3.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div p {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is an unbroken line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh">引发<span lang="en">quick brown fox</span>网络<span lang="ar">جهانی سازیم</span>的全<span lang="my">အပြည်ပြည်</span>部潜<span lang="th">ปิ้งอยู่ในถ้ำ</span>能引<span lang="bo">འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་</span>發網<span lang="hi">विश्वव्यापी बना रहें हैं絡</span>的全<span lang="ja">部潛能</span></p>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline tbrl (zh)</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the LEFT of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline tbrl hor scripts</title>
<meta name="assert" content="text-decoration-line-line:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: vertical-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline tbrl (zh)</title>
<meta name="assert" content="text-decoration-line-line:overline; there is a line to the RIGHT of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline tbrl mixed</title>
<meta name="assert" content="text-decoration-line-line:overline; there is an unbroken line to the RIGHT of the characters for all lines">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 3.5;
}
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div p {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is an unbroken line to the RIGHT of the characters for each line.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh">引发<span lang="en">quick brown fox</span>网络<span lang="ar">جهانی سازیم</span>的全<span lang="my">အပြည်ပြည်</span>部潜<span lang="th">ปิ้งอยู่ในถ้ำ</span>能引<span lang="bo">འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་</span>發網<span lang="hi">विश्वव्यापी बना रहें हैं絡</span>的全<span lang="ja">部潛能</span></p>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through vertical-rl</title>
<meta name="assert" content="text-decoration-line:line-through; there is a solid vertical line through the centre of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
<p lang="ja"><span>可能性を最大限に導き出すために</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through vertical-rl hor scripts</title>
<meta name="assert" content="text-decoration-line:line-through; there is a solid vertical line through the centre of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text the text fails for the Chinese line, or is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line vertical-rl over+under</title>
<meta name="assert" content="text-decoration-line:underline overline; there is a vertical line on both sides of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a vertical line on both sides of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-rl">
<div>
<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
<p lang="ja"><span>可能性を最大限に導き出すために</span></p>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline overline tblr</title>
<meta name="assert" content="text-decoration-line:underline overline; there is a line on both sides of the characters">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line on both sides of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-lr">
<div>
<p lang="mn"><span>ᠣᠯᠠᠨ ᠦᠨᠳᠦᠰᠦᠲᠡᠨ ᠦ ᠪᠣᠯᠭᠠᠬᠤ ᠦᠢᠯᠡ ᠠᠵᠢᠯᠯᠠᠭ᠎ᠠ</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through tblr</title>
<meta name="assert" content="text-decoration-line:line-through; there is a solid vertical line through the centre of the characters.">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:vertical-lr">
<div>
<p lang="mn"><span>ᠣᠯᠠᠨ ᠦᠨᠳᠦᠰᠦᠲᠡᠨ ᠦ ᠪᠣᠯᠭᠠᠬᠤ ᠦᠢᠯᠡ ᠠᠵᠢᠯᠯᠠᠭ᠎ᠠ</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline sideways-rl</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline sideways-rl non-Latin</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English text, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline sideways-rl</title>
<meta name="assert" content="text-decoration-line:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline sideways-rl non-Latin</title>
<meta name="assert" content="text-decoration-line:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through sideways-rl</title>
<meta name="assert" content="text-decoration-line:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line through the CENTRE of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through sideways-rl non-Latin</title>
<meta name="assert" content="text-decoration-line:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line through the CENTRE of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-rl">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline sideways-lr</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line underline sideways-lr non-Latin</title>
<meta name="assert" content="text-decoration-line:underline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:underline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline sideways-lr</title>
<meta name="assert" content="text-decoration-line:overline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line overline sideways-lr non-Latin</title>
<meta name="assert" content="text-decoration-line:overline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:overline;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through sideways-lr</title>
<meta name="assert" content="text-decoration-line:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line through the CENTRE of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
</div> </div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>text-decoration-line line-through sideways-lr non-Latin</title>
<meta name="assert" content="text-decoration-line:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
<!-- cosmetic styling -->
<style>
#htmlsrc { margin: 2em; }
#htmlsrc p {
font-size: 28px;
border-radius: 5px;
line-height: 1.5;
}
.hint { color: brown; font-family: sans-serif; font-size: 90%; }
.hint:before { content: '❗ '; }
</style>
<!-- the test -->
<style>
div span {
text-decoration-line:line-through;
}</style>
</head>
<body>
<p class="instructions">Test passes if there is a line through the CENTRE of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
<div id="htmlsrc" style="writing-mode:sideways-lr">
<div>
<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
</div> </div>
</body>
</html>

View file

@ -0,0 +1,60 @@
<!doctype html>
<html>
<meta charset="utf-8">
<title>CSS Text — line breaking of emoji sequences that should form single clusters</title>
<meta name=assert content="A UA must use the extended grapheme cluster (not legacy grapheme cluster), as defined in [UAX29], as the basis for its typographic character unit.">
<link rel=help href="https://www.w3.org/TR/css-text-3/#characters">
<link rel=match href="reference/line-breaking-013-ref.html">
<link rel=author title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
div {
line-height: 1em;
font-size: 30px;
}
.container {
position: relative;
margin: .5em;
}
.ref {
background-color: white;
padding: .25em;
}
.test {
color: transparent;
background-color: red;
position: absolute;
width: .5em;
left: 0;
top: 0;
padding: .25em;
z-index: -1;
}
</style>
<body>
<p>Each emoji should appear on a single line with no red background.</p>
<div class=container>
<div class=ref>&#x1F468;&#x200D;&#x1F4BB;</div><!-- man technologist -->
<div class=test>&#x1F468;&#x200D;&#x1F4BB;</div>
</div>
<div class=container>
<div class=ref>&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;</div><!-- family with mother, son and daughter -->
<div class=test>&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;</div>
</div>
<div class=container>
<div class=ref>&#x1F939;&#x200D;&#x2640;&#xFE0F;</div><!-- woman juggling -->
<div class=test>&#x1F939;&#x200D;&#x2640;&#xFE0F;</div>
</div>
<div class=container>
<div class=ref>&#x26F9;&#x1F3FF;&#x200D;&#x2640;&#xFE0F;</div><!-- woman basketball player (fitzpatrick type 6) -->
<div class=test>&#x26F9;&#x1F3FF;&#x200D;&#x2640;&#xFE0F;</div>
</div>
<div class=container>
<div class=ref>&#x1F3F3;&#xFE0F;&#x200D;&#x1F308;</div><!-- rainbow flag -->
<div class=test>&#x1F3F3;&#xFE0F;&#x200D;&#x1F308;</div>
</div>
<div class=container>
<div class=ref>&#x1F3F4;&#xE0067;&#xE0062;&#xE0077;&#xE006C;&#xE0073;&#xE007F;</div><!-- flag of Wales -->
<div class=test>&#x1F3F4;&#xE0067;&#xE0062;&#xE0077;&#xE006C;&#xE0073;&#xE007F;</div>
</div>
</body>
</html>

View file

@ -0,0 +1,61 @@
<!doctype html>
<html>
<meta charset="utf-8">
<title>CSS Text — line breaking (with word-break:break-all) of emoji sequences that should form single clusters</title>
<meta name=assert content="A UA must use the extended grapheme cluster (not legacy grapheme cluster), as defined in [UAX29], as the basis for its typographic character unit.">
<link rel=help href="https://www.w3.org/TR/css-text-3/#characters">
<link rel=match href="reference/line-breaking-013-ref.html">
<link rel=author title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
div {
line-height: 1em;
font-size: 30px;
}
.container {
position: relative;
margin: .5em;
}
.ref {
background-color: white;
padding: .25em;
}
.test {
word-break: break-all;
color: transparent;
background-color: red;
position: absolute;
width: .5em;
left: 0;
top: 0;
padding: .25em;
z-index: -1;
}
</style>
<body>
<p>Each emoji should appear on a single line with no red background.</p>
<div class=container>
<div class=ref>&#x1F468;&#x200D;&#x1F4BB;</div><!-- man technologist -->
<div class=test>&#x1F468;&#x200D;&#x1F4BB;</div>
</div>
<div class=container>
<div class=ref>&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;</div><!-- family with mother, son and daughter -->
<div class=test>&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;</div>
</div>
<div class=container>
<div class=ref>&#x1F939;&#x200D;&#x2640;&#xFE0F;</div><!-- woman juggling -->
<div class=test>&#x1F939;&#x200D;&#x2640;&#xFE0F;</div>
</div>
<div class=container>
<div class=ref>&#x26F9;&#x1F3FF;&#x200D;&#x2640;&#xFE0F;</div><!-- woman basketball player (fitzpatrick type 6) -->
<div class=test>&#x26F9;&#x1F3FF;&#x200D;&#x2640;&#xFE0F;</div>
</div>
<div class=container>
<div class=ref>&#x1F3F3;&#xFE0F;&#x200D;&#x1F308;</div><!-- rainbow flag -->
<div class=test>&#x1F3F3;&#xFE0F;&#x200D;&#x1F308;</div>
</div>
<div class=container>
<div class=ref>&#x1F3F4;&#xE0067;&#xE0062;&#xE0077;&#xE006C;&#xE0073;&#xE007F;</div><!-- flag of Wales -->
<div class=test>&#x1F3F4;&#xE0067;&#xE0062;&#xE0077;&#xE006C;&#xE0073;&#xE007F;</div>
</div>
</body>
</html>

View file

@ -0,0 +1,41 @@
<!doctype html>
<html>
<meta charset="utf-8">
<title>CSS Text — reference file for emoji sequence line-breaking test</title>
<link rel=author title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
div {
line-height: 1em;
font-size: 30px;
}
.container {
position: relative;
margin: .5em;
}
.ref {
background-color: white;
padding: .25em;
}
</style>
<body>
<p>Each emoji should appear on a single line with no red background.</p>
<div class=container>
<div class=ref>&#x1F468;&#x200D;&#x1F4BB;</div><!-- man technologist -->
</div>
<div class=container>
<div class=ref>&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;</div><!-- family with mother, son and daughter -->
</div>
<div class=container>
<div class=ref>&#x1F939;&#x200D;&#x2640;&#xFE0F;</div><!-- woman juggling -->
</div>
<div class=container>
<div class=ref>&#x26F9;&#x1F3FF;&#x200D;&#x2640;&#xFE0F;</div><!-- woman basketball player (fitzpatrick type 6) -->
</div>
<div class=container>
<div class=ref>&#x1F3F3;&#xFE0F;&#x200D;&#x1F308;</div><!-- rainbow flag -->
</div>
<div class=container>
<div class=ref>&#x1F3F4;&#xE0067;&#xE0062;&#xE0077;&#xE006C;&#xE0073;&#xE007F;</div><!-- flag of Wales -->
</div>
</body>
</html>

View file

@ -165,19 +165,30 @@ promise_test(async () => {
const elem = document.createElement(localName);
document.body.appendChild(elem);
elem.disabled = true;
const eventPromises = [
"animationstart",
"animationiteration",
"animationend",
].map(eventType => {
return new Promise(r => {
elem.addEventListener(eventType, r, { once: true });
const animationStartPromise = new Promise(r => {
elem.addEventListener("animationstart", () => {
// Seek to the second iteration to trigger the animationiteration event
elem.style.animationDelay = "-100s"
r();
});
});
elem.style.animation = "fade .1s 2";
const animationIterationPromise = new Promise(r => {
elem.addEventListener("animationiteration", ()=>{
elem.style.animationDelay = "-200s"
r();
});
});
const animationEndPromise = new Promise(r => {
elem.addEventListener("animationend", r);
});
elem.style.animation = "fade 100s 2";
elem.classList.add("animate");
// All the events fire...
await Promise.all(eventPromises);
await Promise.all([
animationStartPromise,
animationIterationPromise,
animationEndPromise,
]);
elem.remove();
}
}, "CSS Animation animationstart, animationiteration, animationend fire on disabled form elements");

View file

@ -98,7 +98,7 @@ async_test(function() {
results.push(3)
}), true)
b.dispatchEvent(new Event("x"))
assert_array_equals(results, [1, 2, 3])
assert_array_equals(results, [1, 3, 2])
this.done()
}, "Event listeners should be called in order of addition")
}, "Capturing event listeners should be called before non-capturing ones")
</script>

View file

@ -69,11 +69,37 @@
el.selectionStart = 3;
el.selectionEnd = 5;
el.textContent = "abcdef\r\nwhatevs";
el.firstChild.data = "abcdef\r\nwhatevs";
assert_equals(el.selectionStart, 3);
assert_equals(el.selectionEnd, 5);
}, "Setting the same value (with different newlines) in a textarea should NOT update selection{Start,End}");
test(function() {
var el = document.createElement("textarea");
el.textContent = "foobar";
el.selectionStart = 3;
el.selectionEnd = 5;
el.firstChild.remove();
assert_equals(el.selectionStart, 0, 'selectionStart after node removal');
assert_equals(el.selectionEnd, 0, 'selectionEnd after node removal');
el.appendChild(document.createTextNode("foobar"));
assert_equals(el.selectionStart, 0, 'selectionStart after appendChild');
assert_equals(el.selectionEnd, 0, 'selectionEnd after appendChild');
el.selectionStart = 3;
el.selectionEnd = 5;
el.textContent = "foobar2"; // This removes the child node first.
assert_equals(el.selectionStart, 0, 'selectionStart after textContent setter');
assert_equals(el.selectionEnd, 0, 'selectionEnd after textContent setter');
el.selectionStart = 3;
el.selectionEnd = 5;
el.defaultValue = "foobar"; // Same as textContent setter.
assert_equals(el.selectionStart, 0, 'selectionStart after defaultValue setter');
assert_equals(el.selectionEnd, 0, 'selectionEnd after defaultValue setter');
}, "Removing child nodes in non-dirty textarea should make selection{Start,End} 0");
test(function() {
var el = document.createElement("textarea");
el.defaultValue = "123";
@ -105,8 +131,12 @@
assert_equals(el.selectionEnd, 9);
el.type = "color";
el.type = "text";
assert_equals(el.selectionStart, 7);
assert_equals(el.selectionEnd, 7);
// https://html.spec.whatwg.org/C/input.html#the-input-element:attr-input-type-15
// 9. If previouslySelectable is false and nowSelectable is true, set the
// element's text entry cursor position to the beginning of the text
// control, ...
assert_equals(el.selectionStart, 0);
assert_equals(el.selectionEnd, 0);
}, "Shortening value by turning the input type into 'color' and back to 'text' should correct selection{Start,End}");
test(function() {

View file

@ -11,13 +11,19 @@ enum WakeLockType { "screen", "system" };
[Constructor(WakeLockType type), SecureContext, Exposed=(DedicatedWorker,Window)]
interface WakeLock : EventTarget {
[Exposed=Window] static Promise<PermissionState> requestPermission(WakeLockType type);
readonly attribute WakeLockType type;
readonly attribute boolean active;
attribute EventHandler onactivechange;
Promise<void> request(optional WakeLockRequestOptions options);
static sequence<WakeLock> query(optional WakeLockQueryFilter filter);
[Exposed=Window] static Promise<PermissionState> requestPermission(WakeLockType type);
};
dictionary WakeLockRequestOptions {
AbortSignal? signal;
};
dictionary WakeLockQueryFilter {
WakeLockType? type;
boolean? active;
};

View file

@ -102,7 +102,10 @@ dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
DOMString senderId;
DOMString remoteId;
DOMHighResTimeStamp lastPacketSentTimestamp;
unsigned long long retransmittedPacketsSent;
unsigned long long retransmittedBytesSent;
double targetBitrate;
unsigned long long totalEncodedBytesTarget;
unsigned long framesEncoded;
unsigned long long qpSum;
double totalEncodeTime;

View file

@ -188,6 +188,13 @@ interface XRInputSource {
readonly attribute XRTargetRayMode targetRayMode;
readonly attribute XRSpace targetRaySpace;
readonly attribute XRSpace? gripSpace;
readonly attribute Gamepad? gamepad;
};
enum GamepadMappingType {
"", // Defined in the Gamepad API
"standard", // Defined in the Gamepad API
"xr-standard",
};
[SecureContext, Exposed=Window] interface XRLayer {};
@ -254,11 +261,13 @@ dictionary XRSessionEventInit : EventInit {
interface XRInputSourceEvent : Event {
readonly attribute XRFrame frame;
readonly attribute XRInputSource inputSource;
readonly attribute long? buttonIndex;
};
dictionary XRInputSourceEventInit : EventInit {
required XRFrame frame;
required XRInputSource inputSource;
long? buttonIndex = null;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRReferenceSpaceEventInit eventInitDict)]

View file

@ -4633,6 +4633,22 @@
"search": "",
"hash": ""
},
"# unknown scheme with non-URL characters in the path",
{
"input": "wow:\uFFFF",
"base": "about:blank",
"href": "wow:%EF%BF%BF",
"origin": "null",
"protocol": "wow:",
"username": "",
"password": "",
"host": "",
"hostname": "",
"port": "",
"pathname": "%EF%BF%BF",
"search": "",
"hash": ""
},
"# Hosts and percent-encoding",
{
"input": "ftp://example.com%80/",

View file

@ -199,10 +199,133 @@
pc.onnegotiationneeded = e => fired = true;
pc.createDataChannel('test');
const answer = await generateAnswer(offer);
await pc.setRemoteDescription(answer);
pc.setRemoteDescription(answer);
assert_false(fired, "negotiationneeded should not fire until the next iteration of the event loop after returning to stable");
await new Promise(resolve => pc.onnegotiationneeded = resolve);
}, 'negotiationneeded event should fire only after signaling state go back to stable');
}, 'negotiationneeded event should fire only after signaling state go back to stable after setRemoteDescription');
promise_test(async t => {
const callee = new RTCPeerConnection();
t.add_cleanup(() => callee.close());
const caller = new RTCPeerConnection();
t.add_cleanup(() => caller.close());
callee.addTransceiver('audio');
const offer = await caller.createOffer();
let fired = false;
callee.onnegotiationneeded = e => fired = true;
await callee.setRemoteDescription(offer);
callee.createDataChannel('test');
const answer = await callee.createAnswer(offer);
callee.setLocalDescription(answer);
assert_false(fired, "negotiationneeded should not fire until the next iteration of the event loop after returning to stable");
await new Promise(resolve => callee.onnegotiationneeded = resolve);
}, 'negotiationneeded event should fire only after signaling state go back to stable after setLocalDescription');
/*
5.1. RTCPeerConnection Interface Extensions
addTrack
10. Update the negotiation-needed flag for connection.
*/
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
const stream = await getNoiseStream({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
pc.addTrack(track, stream);
await new Promise(resolve => pc.onnegotiationneeded = resolve);
}, 'addTrack should cause negotiationneeded to fire');
/*
5.1. RTCPeerConnection Interface Extensions
removeTrack
12. Update the negotiation-needed flag for connection.
*/
async_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
const stream = await getNoiseStream({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
pc.onnegotiationneeded = t.step_func(async () => {
pc.onnegotiationneeded = t.step_func(async () => {
assert_unreached('onnegotiationneeded misfired');
});
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
const answer = await generateAnswer(offer);
await pc.setRemoteDescription(answer);
pc.removeTrack(sender);
await new Promise(resolve => pc.onnegotiationneeded = resolve)
t.done();
});
}, 'removeTrack should cause negotiationneeded to fire on the caller');
/*
5.1. RTCPeerConnection Interface Extensions
removeTrack
12. Update the negotiation-needed flag for connection.
*/
async_test(async t => {
const caller = new RTCPeerConnection();
t.add_cleanup(() => caller.close());
caller.addTransceiver('audio', {direction:'recvonly'});
const offer = await caller.createOffer();
const callee = new RTCPeerConnection();
t.add_cleanup(() => callee.close());
const stream = await getNoiseStream({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = callee.addTrack(track, stream);
callee.onnegotiationneeded = t.step_func(async () => {
callee.onnegotiationneeded = t.step_func(async () => {
assert_unreached('onnegotiationneeded misfired');
});
await callee.setRemoteDescription(offer);
const answer = await callee.createAnswer(offer);
callee.setLocalDescription(answer);
callee.removeTrack(sender);
await new Promise(resolve => callee.onnegotiationneeded = resolve)
t.done();
});
}, 'removeTrack should cause negotiationneeded to fire on the callee');
/*
5.4. RTCRtpTransceiver Interface
setDirection
7. Update the negotiation-needed flag for connection.
*/
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'});
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
const answer = await generateAnswer(offer);
await pc.setRemoteDescription(answer);
transceiver.direction = 'recvonly';
await new Promise(resolve => pc.onnegotiationneeded = resolve);
}, 'Updating the direction of the transceiver should cause negotiationneeded to fire');
/*
TODO
@ -243,19 +366,8 @@
When the RTCPeerConnection() constructor is invoked
7. Let connection have a [[needNegotiation]] internal slot, initialized to false.
5.1. RTCPeerConnection Interface Extensions
addTrack
10. Update the negotiation-needed flag for connection.
removeTrack
12. Update the negotiation-needed flag for connection.
5.4. RTCRtpTransceiver Interface
setDirection
7. Update the negotiation-needed flag for connection.
stop
11. Update the negotiation-needed flag for connection.