mirror of
https://github.com/servo/servo.git
synced 2025-06-26 18:14:34 +01:00
Update web-platform-tests to revision b1d8b4ac4dc04fd1da16cb309ed675fa6a07bfd6
This commit is contained in:
parent
dbba9ea453
commit
50a6996461
36 changed files with 794 additions and 73 deletions
|
@ -137793,6 +137793,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-overflow/overflow-recalc-001.html": [
|
||||
[
|
||||
"css/css-overflow/overflow-recalc-001.html",
|
||||
[
|
||||
[
|
||||
"/css/css-overflow/reference/overflow-recalc-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-overflow/webkit-line-clamp-001.html": [
|
||||
[
|
||||
"css/css-overflow/webkit-line-clamp-001.html",
|
||||
|
@ -256922,6 +256934,9 @@
|
|||
"css/css-overflow/reference/overflow-body-propagation-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-overflow/reference/overflow-recalc-001-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-overflow/reference/webkit-line-clamp-001-ref.html": [
|
||||
[]
|
||||
],
|
||||
|
@ -269876,6 +269891,9 @@
|
|||
"element-timing/resources/circle.svg": [
|
||||
[]
|
||||
],
|
||||
"element-timing/resources/circle.svg.headers": [
|
||||
[]
|
||||
],
|
||||
"element-timing/resources/element-timing-helpers.js": [
|
||||
[]
|
||||
],
|
||||
|
@ -273362,6 +273380,9 @@
|
|||
"html/browsers/windows/resources/window-opener.html": [
|
||||
[]
|
||||
],
|
||||
"html/cross-origin-embedder-policy/META.yml": [
|
||||
[]
|
||||
],
|
||||
"html/cross-origin-embedder-policy/README.md": [
|
||||
[]
|
||||
],
|
||||
|
@ -273437,6 +273458,9 @@
|
|||
"html/cross-origin-embedder-policy/srcdoc.https.html.headers": [
|
||||
[]
|
||||
],
|
||||
"html/cross-origin-opener-policy/META.yml": [
|
||||
[]
|
||||
],
|
||||
"html/cross-origin-opener-policy/README.md": [
|
||||
[]
|
||||
],
|
||||
|
@ -341479,6 +341503,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"dom/collections/HTMLCollection-live-mutations.window.js": [
|
||||
[
|
||||
"dom/collections/HTMLCollection-live-mutations.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"dom/collections/HTMLCollection-own-props.html": [
|
||||
[
|
||||
"dom/collections/HTMLCollection-own-props.html",
|
||||
|
@ -342986,6 +343016,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"dom/nodes/NodeList-live-mutations.window.js": [
|
||||
[
|
||||
"dom/nodes/NodeList-live-mutations.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"dom/nodes/ParentNode-append.html": [
|
||||
[
|
||||
"dom/nodes/ParentNode-append.html",
|
||||
|
@ -362034,6 +362070,12 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"html/cross-origin-opener-policy/popup-meta-http-equiv.https.html": [
|
||||
[
|
||||
"html/cross-origin-opener-policy/popup-meta-http-equiv.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"html/cross-origin-opener-policy/popup-redirect-cache.https.html": [
|
||||
[
|
||||
"html/cross-origin-opener-policy/popup-redirect-cache.https.html",
|
||||
|
@ -376492,6 +376534,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"largest-contentful-paint/multi-redirects-TAO.html": [
|
||||
[
|
||||
"largest-contentful-paint/multi-redirects-TAO.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"largest-contentful-paint/observe-after-untrusted-scroll.html": [
|
||||
[
|
||||
"largest-contentful-paint/observe-after-untrusted-scroll.html",
|
||||
|
@ -410028,6 +410076,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/object-not-found-adds-entry.html": [
|
||||
[
|
||||
"resource-timing/object-not-found-adds-entry.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/redirects.sub.html": [
|
||||
[
|
||||
"resource-timing/redirects.sub.html",
|
||||
|
@ -591118,6 +591172,10 @@
|
|||
"963192f6f431cd073f5d8fddc2294259ad62962b",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-overflow/overflow-recalc-001.html": [
|
||||
"9c5919a5044bdbac0e782fbb662f1ff3b81857fc",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-overflow/overflow-shorthand-001.html": [
|
||||
"f425636c3bb4297e4e6564d1c2629dc10dde5607",
|
||||
"testharness"
|
||||
|
@ -591202,6 +591260,10 @@
|
|||
"340bda9de92352fe1ef6633610da31e867013299",
|
||||
"support"
|
||||
],
|
||||
"css/css-overflow/reference/overflow-recalc-001-ref.html": [
|
||||
"b18dee8caf1864dc30fe656750fe81a8863f1e90",
|
||||
"support"
|
||||
],
|
||||
"css/css-overflow/reference/webkit-line-clamp-001-ref.html": [
|
||||
"ef28e01dac0223c9a2768d3fd1415fb9ef2f1c6b",
|
||||
"support"
|
||||
|
@ -641815,7 +641877,7 @@
|
|||
"support"
|
||||
],
|
||||
"document-policy/required-policy/document-policy.html": [
|
||||
"d6bf3e9a6d490ad5462267ae913002b696b96a80",
|
||||
"1935be3dd0a961add3d80aa35ded92734d9f8869",
|
||||
"testharness"
|
||||
],
|
||||
"document-policy/required-policy/document-policy.html.headers": [
|
||||
|
@ -641835,7 +641897,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"document-policy/required-policy/required-document-policy.html.headers": [
|
||||
"066c0f8339ea21c1102c78d82d07d060252a9980",
|
||||
"1b671dafe06d44e5b267bbfc54691f5f911297eb",
|
||||
"support"
|
||||
],
|
||||
"dom/META.yml": [
|
||||
|
@ -641858,6 +641920,10 @@
|
|||
"4fc34db7f5f245933013a76335f71e9f4cffe115",
|
||||
"testharness"
|
||||
],
|
||||
"dom/collections/HTMLCollection-live-mutations.window.js": [
|
||||
"7dbfc6ccf67d37d7272b3490665e218d0549e79e",
|
||||
"testharness"
|
||||
],
|
||||
"dom/collections/HTMLCollection-own-props.html": [
|
||||
"1f21c0837ec92bf48b6f497da22e60a435913a06",
|
||||
"testharness"
|
||||
|
@ -643054,6 +643120,10 @@
|
|||
"fcbee175cb3e07235fcd759e866feb488e31e91f",
|
||||
"testharness"
|
||||
],
|
||||
"dom/nodes/NodeList-live-mutations.window.js": [
|
||||
"a11fed1e38efe88e634310d64db1bafe4d34fa1a",
|
||||
"testharness"
|
||||
],
|
||||
"dom/nodes/ParentNode-append.html": [
|
||||
"dcc398f3f586d1d627d0ffa0c689f3b1f67ece16",
|
||||
"testharness"
|
||||
|
@ -644415,7 +644485,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"element-timing/multi-redirect-image.html": [
|
||||
"c2f570f20df7989617ea37beaee266562cbf7756",
|
||||
"2a12c5f03c42c6f45c3c975d3deba0c01b8db084",
|
||||
"testharness"
|
||||
],
|
||||
"element-timing/multiple-background-images.html": [
|
||||
|
@ -644478,6 +644548,10 @@
|
|||
"209b9f4e5b5d55b45b5ec80dac25873d06dfb593",
|
||||
"support"
|
||||
],
|
||||
"element-timing/resources/circle.svg.headers": [
|
||||
"7296361df3d1c5755acdb825661dbd9a1807b64f",
|
||||
"support"
|
||||
],
|
||||
"element-timing/resources/element-timing-helpers.js": [
|
||||
"b7f2eef5978ac5d559865dd34848f15ef0abba10",
|
||||
"support"
|
||||
|
@ -654286,6 +654360,10 @@
|
|||
"7407248ffe9fe3da977275c2192e31e3db9fc8a9",
|
||||
"testharness"
|
||||
],
|
||||
"html/cross-origin-embedder-policy/META.yml": [
|
||||
"103217d38892308541fbc0dbc8d39acfb47d4e80",
|
||||
"support"
|
||||
],
|
||||
"html/cross-origin-embedder-policy/README.md": [
|
||||
"16179eb0133a9e14667e127da05f3dc796975875",
|
||||
"support"
|
||||
|
@ -654450,6 +654528,10 @@
|
|||
"6604450991a122e3e241e40b1b9e0516c525389d",
|
||||
"support"
|
||||
],
|
||||
"html/cross-origin-opener-policy/META.yml": [
|
||||
"6c6d26211861f5af94cebae7a687b70d10ffe1b4",
|
||||
"support"
|
||||
],
|
||||
"html/cross-origin-opener-policy/README.md": [
|
||||
"3f080c82d25de71d899d3b3011afcc3c553fb2a2",
|
||||
"support"
|
||||
|
@ -654491,7 +654573,7 @@
|
|||
"support"
|
||||
],
|
||||
"html/cross-origin-opener-policy/coop-sandbox.https.html": [
|
||||
"fc16c186cadf44bd1639d0eacf610e7781bc02bd",
|
||||
"5fd11643d5720f54e0b5112e96a9cfea5cafdf9d",
|
||||
"testharness"
|
||||
],
|
||||
"html/cross-origin-opener-policy/coop-sandbox.https.html.headers": [
|
||||
|
@ -654582,6 +654664,10 @@
|
|||
"46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
|
||||
"support"
|
||||
],
|
||||
"html/cross-origin-opener-policy/popup-meta-http-equiv.https.html": [
|
||||
"e36b5190aafc0b42b043802422dd411a831a20a5",
|
||||
"testharness"
|
||||
],
|
||||
"html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [
|
||||
"46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
|
||||
"support"
|
||||
|
@ -661447,7 +661533,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html": [
|
||||
"3000032978082356086930b2b5bee96b73947dc8",
|
||||
"eceef92a6418f3d74ffbd13a08d8e648dff42a3f",
|
||||
"testharness"
|
||||
],
|
||||
"html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-dim-ref.html": [
|
||||
|
@ -673463,7 +673549,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/html.idl": [
|
||||
"266574de63e8f2aac4a782ba836a277bb5a2997d",
|
||||
"2c0c489315c96b6980181236b8602df60929c3f9",
|
||||
"support"
|
||||
],
|
||||
"interfaces/image-capture.idl": [
|
||||
|
@ -673723,7 +673809,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/web-nfc.idl": [
|
||||
"12ea9d58bc055ee57efb65ae1495ebf4301427a5",
|
||||
"f2e31b7352867d39edc9c43a4f1fffb3a02cb985",
|
||||
"support"
|
||||
],
|
||||
"interfaces/web-share.idl": [
|
||||
|
@ -674358,6 +674444,10 @@
|
|||
"0e40127b57683fa76392827003b15c2bb9c8d558",
|
||||
"testharness"
|
||||
],
|
||||
"largest-contentful-paint/multi-redirects-TAO.html": [
|
||||
"4e462c729aace01d40b9255465af7fc79f8fdb3c",
|
||||
"testharness"
|
||||
],
|
||||
"largest-contentful-paint/observe-after-untrusted-scroll.html": [
|
||||
"1b2cd1d25b5bb9da740e5127526fed41dcebfae7",
|
||||
"testharness"
|
||||
|
@ -702042,6 +702132,10 @@
|
|||
"63f9e06e19083a6d956af0d5916455cd7e91b89c",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/object-not-found-adds-entry.html": [
|
||||
"22ee95e2d51ffcb29468d9e51459c5035f508bb5",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/redirects.sub.html": [
|
||||
"d3d4f75c817dea1f61e27660949ec327d3a7a61a",
|
||||
"testharness"
|
||||
|
@ -713883,7 +713977,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/lint/lint.py": [
|
||||
"a050cfa8a8e4e2699db44ce9e52f8f230a34a869",
|
||||
"4090f2628a6fea12a0ed4957c55b925b14882f33",
|
||||
"support"
|
||||
],
|
||||
"tools/lint/rules.py": [
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,24 +312,21 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,6 +56,3 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[embedded-credentials.tentative.sub.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Embedded credentials are treated as network errors.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1397,6 +1397,18 @@
|
|||
[SubmitEvent interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: attribute onwebkitanimationend]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: attribute onwebkitanimationstart]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: attribute onwebkittransitionend]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: attribute onwebkitanimationiteration]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.https.html?include=(Document|Window)]
|
||||
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]
|
||||
|
@ -1777,6 +1789,78 @@
|
|||
[SVGAElement includes HTMLHyperlinkElementUtils: member names are unique]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute onwebkitanimationstart]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "onwebkitanimationiteration" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute onwebkitanimationiteration]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute onwebkittransitionend]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute onwebkitanimationiteration]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "onwebkittransitionend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute onwebkittransitionend]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute onwebkitanimationend]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute onwebkitanimationstart]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "onwebkitanimationend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute onwebkitanimationend]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "onwebkitanimationstart" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.https.html?include=HTML.*]
|
||||
[HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("hidden") with too few arguments must throw TypeError]
|
||||
|
@ -4455,3 +4539,27 @@
|
|||
[HTMLOptionElement interface: named constructor without 'new']
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: attribute onwebkitanimationiteration]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: attribute onwebkitanimationend]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: attribute onwebkitanimationstart]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: attribute onwebkittransitionend]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
expected: FAIL
|
||||
|
|
@ -393,3 +393,39 @@
|
|||
[onslotchange: the default value must be null]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationiteration: the default value must be null]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationiteration: the content attribute must be compiled into a function as the corresponding property]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationstart: the content attribute must be compiled into a function as the corresponding property]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationstart: the default value must be null]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationend: the content attribute must be compiled into a function as the corresponding property]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkittransitionend: the content attribute must be compiled into a function as the corresponding property]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkitanimationend: the default value must be null]
|
||||
expected: FAIL
|
||||
|
||||
[onwebkittransitionend: the default value must be null]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -78,3 +78,39 @@
|
|||
[not shadowed slotchange (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (document.createElement("body"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (document.createElement("body"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (document.createElement("body"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (document.createElement("body"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (window)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -71,3 +71,39 @@
|
|||
[not shadowed slotchange (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (document.createElement("frameset"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (document.createElement("frameset"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationstart (document.createElement("frameset"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (document.createElement("frameset"))]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationend (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkittransitionend (window)]
|
||||
expected: FAIL
|
||||
|
||||
[not shadowed webkitanimationiteration (document.body)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -32,3 +32,27 @@
|
|||
[slotchange is unaffected on a windowless body]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationstart is unaffected on a windowless body]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationiteration is unaffected on a windowless frameset]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationiteration is unaffected on a windowless body]
|
||||
expected: FAIL
|
||||
|
||||
[webkittransitionend is unaffected on a windowless frameset]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationend is unaffected on a windowless frameset]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationend is unaffected on a windowless body]
|
||||
expected: FAIL
|
||||
|
||||
[webkittransitionend is unaffected on a windowless body]
|
||||
expected: FAIL
|
||||
|
||||
[webkitanimationstart is unaffected on a windowless frameset]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
[object-not-found-adds-entry.html]
|
||||
[Test that an navigation object with a 200 response displays an entry]
|
||||
expected: FAIL
|
||||
|
||||
[Test that an navigation object with a 404 response displays an entry]
|
||||
expected: FAIL
|
||||
|
||||
[Test that an image object with a 404 response displays an entry]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow: Overflow recalc after font-size change</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-overflow/">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1036644">
|
||||
<link rel="match" href="reference/overflow-recalc-001-ref.html">
|
||||
<meta name="assert" content="Checks that overflow of an inline element is properly recomputed after changes on the descendants.">
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
#scroller {
|
||||
height: 200px;
|
||||
overflow: scroll;
|
||||
position: relative;
|
||||
}
|
||||
#wrapper {
|
||||
margin-top: 100px;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
overflow: hidden;
|
||||
font-family: Ahem;
|
||||
line-height: 1;
|
||||
color: green;
|
||||
}
|
||||
#red {
|
||||
background: red;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
z-index: -1;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is <strong>no red</strong>.</p>
|
||||
<div id="scroller">
|
||||
<div id="wrapper">
|
||||
<span id="inlineouter">
|
||||
<span id="inlineinner">X</span>
|
||||
</span>
|
||||
</div>
|
||||
<div id="red"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
requestAnimationFrame(() => requestAnimationFrame(() => {
|
||||
inlineinner.style.fontSize = "200px";
|
||||
takeScreenshot();
|
||||
}));
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow: Reference Overflow recalc after font-size change</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<style>
|
||||
#scroller {
|
||||
height: 200px;
|
||||
overflow: scroll;
|
||||
}
|
||||
#wrapper {
|
||||
margin-top: 100px;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background: green;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is <strong>no red</strong>.</p>
|
||||
<div id="scroller">
|
||||
<div id="wrapper"></div>
|
||||
</div>
|
|
@ -45,7 +45,7 @@ async_test(t => {
|
|||
iframe.src = "/document-policy/echo-policy.py?id=3";
|
||||
iframe.policy = "unoptimized-lossless-images;bpp=4";
|
||||
callbacks["3"] = t.step_func_done(result => {
|
||||
assert_equals(result, "unoptimized-lossless-images;bpp=4");
|
||||
assert_equals(result, "unoptimized-lossless-images;bpp=4.0");
|
||||
});
|
||||
document.body.appendChild(iframe);
|
||||
}, "Child frame can have a required policy which is less strict than the parent document's policy.");
|
||||
|
|
|
@ -1 +1 @@
|
|||
Required-Document-Policy: unoptimized-lossless-images;bpp=1.1
|
||||
Require-Document-Policy: unoptimized-lossless-images;bpp=1.1
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
function testHTMLCollection(name, hooks) {
|
||||
test(() => {
|
||||
const nodes = {
|
||||
root: document.createElement("div"),
|
||||
div1: document.createElement("div"),
|
||||
div2: document.createElement("div"),
|
||||
p: document.createElement("p")
|
||||
};
|
||||
|
||||
nodes.div1.id = "div1";
|
||||
nodes.div2.id = "div2";
|
||||
|
||||
const list = nodes.root.getElementsByTagName("div");
|
||||
|
||||
hooks.initial(list, nodes);
|
||||
|
||||
nodes.root.appendChild(nodes.div1);
|
||||
nodes.root.appendChild(nodes.p);
|
||||
nodes.root.appendChild(nodes.div2);
|
||||
|
||||
hooks.afterInsertion(list, nodes);
|
||||
|
||||
nodes.root.removeChild(nodes.div1);
|
||||
|
||||
hooks.afterRemoval(list, nodes);
|
||||
}, `HTMLCollection live mutations: ${name}`);
|
||||
}
|
||||
|
||||
testHTMLCollection("HTMLCollection.length", {
|
||||
initial(list) {
|
||||
assert_equals(list.length, 0);
|
||||
},
|
||||
afterInsertion(list) {
|
||||
assert_equals(list.length, 2);
|
||||
},
|
||||
afterRemoval(list) {
|
||||
assert_equals(list.length, 1);
|
||||
}
|
||||
});
|
||||
|
||||
testHTMLCollection("HTMLCollection.item(index)", {
|
||||
initial(list) {
|
||||
assert_equals(list.item(0), null);
|
||||
},
|
||||
afterInsertion(list, nodes) {
|
||||
assert_equals(list.item(0), nodes.div1);
|
||||
assert_equals(list.item(1), nodes.div2);
|
||||
},
|
||||
afterRemoval(list, nodes) {
|
||||
assert_equals(list.item(0), nodes.div2);
|
||||
}
|
||||
});
|
||||
|
||||
testHTMLCollection("HTMLCollection[index]", {
|
||||
initial(list) {
|
||||
assert_equals(list[0], undefined);
|
||||
},
|
||||
afterInsertion(list, nodes) {
|
||||
assert_equals(list[0], nodes.div1);
|
||||
assert_equals(list[1], nodes.div2);
|
||||
},
|
||||
afterRemoval(list, nodes) {
|
||||
assert_equals(list[0], nodes.div2);
|
||||
}
|
||||
});
|
||||
|
||||
testHTMLCollection("HTMLCollection.namedItem(index)", {
|
||||
initial(list) {
|
||||
assert_equals(list.namedItem("div1"), null);
|
||||
assert_equals(list.namedItem("div2"), null);
|
||||
},
|
||||
afterInsertion(list, nodes) {
|
||||
assert_equals(list.namedItem("div1"), nodes.div1);
|
||||
assert_equals(list.namedItem("div2"), nodes.div2);
|
||||
},
|
||||
afterRemoval(list, nodes) {
|
||||
assert_equals(list.namedItem("div1"), null);
|
||||
assert_equals(list.namedItem("div2"), nodes.div2);
|
||||
}
|
||||
});
|
||||
|
||||
testHTMLCollection("HTMLCollection ownPropertyNames", {
|
||||
initial(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), []);
|
||||
},
|
||||
afterInsertion(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), ["0", "1", "div1", "div2"]);
|
||||
},
|
||||
afterRemoval(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), ["0", "div2"]);
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
function testNodeList(name, hooks) {
|
||||
test(() => {
|
||||
const nodes = {
|
||||
root: document.createElement("div"),
|
||||
div1: document.createElement("div"),
|
||||
div2: document.createElement("div"),
|
||||
p: document.createElement("p")
|
||||
};
|
||||
|
||||
const list = nodes.root.childNodes;
|
||||
|
||||
hooks.initial(list, nodes);
|
||||
|
||||
nodes.root.appendChild(nodes.div1);
|
||||
nodes.root.appendChild(nodes.p);
|
||||
nodes.root.appendChild(nodes.div2);
|
||||
|
||||
hooks.afterInsertion(list, nodes);
|
||||
|
||||
nodes.root.removeChild(nodes.div1);
|
||||
|
||||
hooks.afterRemoval(list, nodes);
|
||||
}, `NodeList live mutations: ${name}`);
|
||||
}
|
||||
|
||||
testNodeList("NodeList.length", {
|
||||
initial(list) {
|
||||
assert_equals(list.length, 0);
|
||||
},
|
||||
afterInsertion(list) {
|
||||
assert_equals(list.length, 3);
|
||||
},
|
||||
afterRemoval(list) {
|
||||
assert_equals(list.length, 2);
|
||||
}
|
||||
});
|
||||
|
||||
testNodeList("NodeList.item(index)", {
|
||||
initial(list) {
|
||||
assert_equals(list.item(0), null);
|
||||
},
|
||||
afterInsertion(list, nodes) {
|
||||
assert_equals(list.item(0), nodes.div1);
|
||||
assert_equals(list.item(1), nodes.p);
|
||||
assert_equals(list.item(2), nodes.div2);
|
||||
},
|
||||
afterRemoval(list, nodes) {
|
||||
assert_equals(list.item(0), nodes.p);
|
||||
assert_equals(list.item(1), nodes.div2);
|
||||
}
|
||||
});
|
||||
|
||||
testNodeList("NodeList[index]", {
|
||||
initial(list) {
|
||||
assert_equals(list[0], undefined);
|
||||
},
|
||||
afterInsertion(list, nodes) {
|
||||
assert_equals(list[0], nodes.div1);
|
||||
assert_equals(list[1], nodes.p);
|
||||
assert_equals(list[2], nodes.div2);
|
||||
},
|
||||
afterRemoval(list, nodes) {
|
||||
assert_equals(list[0], nodes.p);
|
||||
assert_equals(list[1], nodes.div2);
|
||||
}
|
||||
});
|
||||
|
||||
testNodeList("NodeList ownPropertyNames", {
|
||||
initial(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), []);
|
||||
},
|
||||
afterInsertion(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), ["0", "1", "2"]);
|
||||
},
|
||||
afterRemoval(list) {
|
||||
assert_object_equals(Object.getOwnPropertyNames(list), ["0", "1"]);
|
||||
}
|
||||
});
|
||||
|
|
@ -18,7 +18,7 @@ async_test(t => {
|
|||
+ '/resource-timing/resources/multi_redirect.py?';
|
||||
destUrl += 'page_origin=' + get_host_info().HTTP_ORIGIN;
|
||||
destUrl += '&cross_origin=' + get_host_info().HTTP_REMOTE_ORIGIN;
|
||||
destUrl += '&final_resource=' + '/images/blue.png';
|
||||
destUrl += '&final_resource=' + '/element-timing/resources/circle.svg';
|
||||
destUrl += '&timing_allow=1';
|
||||
destUrl += '&tao_steps=';
|
||||
for (let taoSteps=0; taoSteps < 4; taoSteps++) {
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Timing-Allow-Origin: *
|
|
@ -0,0 +1,9 @@
|
|||
spec: https://mikewest.github.io/corpp/
|
||||
suggested_reviewers:
|
||||
- mikewest
|
||||
- jugglinmike
|
||||
- arturjanc
|
||||
- lweichselbaum
|
||||
- hemeryar
|
||||
- ParisMeuleman
|
||||
- valenting
|
|
@ -0,0 +1,9 @@
|
|||
spec: https://gist.github.com/annevk/6f2dd8c79c77123f39797f6bdac43f3e
|
||||
suggested_reviewers:
|
||||
- mikewest
|
||||
- jugglinmike
|
||||
- arturjanc
|
||||
- lweichselbaum
|
||||
- hemeryar
|
||||
- ParisMeuleman
|
||||
- valenting
|
|
@ -5,20 +5,25 @@
|
|||
<script src="/common/utils.js"></script> <!-- Use token() to allow running tests in parallel -->
|
||||
<div id=log>
|
||||
<script>
|
||||
[
|
||||
"allow-popups allow-scripts allow-same-origin",
|
||||
"allow-popups allow-scripts",
|
||||
].forEach(sandboxValue => {
|
||||
async_test(t => {
|
||||
const frame = document.createElement("iframe");
|
||||
const channel = new BroadcastChannel(token());
|
||||
channel.onmessage = t.unreached_func("A COOP popup was created from a sandboxed frame");
|
||||
t.add_cleanup(() => frame.remove());
|
||||
frame.sandbox = "allow-popups allow-scripts allow-same-origin";
|
||||
frame.sandbox = sandboxValue;
|
||||
frame.srcdoc = `<script>
|
||||
const popup = window.open("resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}");
|
||||
<\/script>`;
|
||||
document.body.append(frame);
|
||||
window.onload = t.step_func(() => {
|
||||
addEventListener('load', t.step_func(() => {
|
||||
t.step_timeout(() => {
|
||||
t.done()
|
||||
}, 1500);
|
||||
});
|
||||
}));
|
||||
}, `<iframe sandbox="${sandboxValue}"> ${document.title}`);
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html>
|
||||
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin"><!-- should not be supported -->
|
||||
<meta charset=utf-8>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
|
||||
let tests = [
|
||||
// popup Origin, popup COOP, expect opener
|
||||
[SAME_ORIGIN, "", true],
|
||||
];
|
||||
|
||||
run_coop_tests("same-origin", tests);
|
||||
|
||||
</script>
|
|
@ -18,7 +18,7 @@
|
|||
let t = async_test("Image width and height attributes are used to infer aspect-ratio");
|
||||
function assert_ratio(img, expected) {
|
||||
let epsilon = 0.001;
|
||||
assert_approx_equals(parseInt(getComputedStyle(img).width, 10) / parseInt(getComputedStyle(img).height, 10), expected, epsilon);
|
||||
assert_approx_equals(parseFloat(getComputedStyle(img).width, 10) / parseFloat(getComputedStyle(img).height, 10), expected, epsilon);
|
||||
}
|
||||
// Create and append a new image and immediately check the ratio.
|
||||
// This is not racy because the spec requires the user agent to queue a task:
|
||||
|
@ -53,6 +53,6 @@ onload = t.step_func_done(function() {
|
|||
assert_ratio(images[1], 2.0); // 2.0 is the original aspect ratio of green.png
|
||||
assert_equals(getComputedStyle(images[2]).height, "0px"); // aspect-ratio doesn't override intrinsic size of images that don't have any src.
|
||||
assert_equals(getComputedStyle(images[3]).height, getComputedStyle(images[4]).height); // aspect-ratio doesn't override intrinsic size of error images.
|
||||
assert_ratio(images[5], 1.266); // 1.266 is the original aspect ratio of blue.png
|
||||
assert_ratio(images[5], 133/106); // The original aspect ratio of blue.png
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -1925,6 +1925,10 @@ interface mixin GlobalEventHandlers {
|
|||
attribute EventHandler ontoggle;
|
||||
attribute EventHandler onvolumechange;
|
||||
attribute EventHandler onwaiting;
|
||||
attribute EventHandler onwebkitanimationend;
|
||||
attribute EventHandler onwebkitanimationiteration;
|
||||
attribute EventHandler onwebkitanimationstart;
|
||||
attribute EventHandler onwebkittransitionend;
|
||||
};
|
||||
|
||||
interface mixin WindowEventHandlers {
|
||||
|
|
|
@ -47,7 +47,7 @@ typedef (DOMString or BufferSource or NDEFMessageInit) NDEFMessageSource;
|
|||
interface NDEFWriter {
|
||||
constructor();
|
||||
|
||||
Promise<void> push(NDEFMessageSource message, optional NDEFPushOptions options={});
|
||||
Promise<void> write(NDEFMessageSource message, optional NDEFWriteOptions options={});
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window]
|
||||
|
@ -73,19 +73,12 @@ dictionary NDEFReadingEventInit : EventInit {
|
|||
required NDEFMessageInit message;
|
||||
};
|
||||
|
||||
dictionary NDEFPushOptions {
|
||||
NDEFPushTarget target = "any";
|
||||
dictionary NDEFWriteOptions {
|
||||
boolean ignoreRead = true;
|
||||
boolean overwrite = true;
|
||||
AbortSignal? signal;
|
||||
};
|
||||
|
||||
enum NDEFPushTarget {
|
||||
"tag",
|
||||
"peer",
|
||||
"any"
|
||||
};
|
||||
|
||||
dictionary NDEFScanOptions {
|
||||
USVString id;
|
||||
USVString recordType;
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>This test validates LargestContenfulPaint information for cross-origin redirect chain images.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/largest-contentful-paint-helpers.js"></script>
|
||||
<script src=/common/get-host-info.sub.js></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
async_test(t => {
|
||||
if (!window.LargestContentfulPaint) {
|
||||
assert_unreached("LargestContentfulPaint is not implemented");
|
||||
}
|
||||
let destUrl = get_host_info().HTTP_REMOTE_ORIGIN
|
||||
+ '/resource-timing/resources/multi_redirect.py?';
|
||||
destUrl += 'page_origin=' + get_host_info().HTTP_ORIGIN;
|
||||
destUrl += '&cross_origin=' + get_host_info().HTTP_REMOTE_ORIGIN;
|
||||
destUrl += '&final_resource=' + '/element-timing/resources/circle.svg';
|
||||
destUrl += '&timing_allow=1';
|
||||
destUrl += '&tao_steps=';
|
||||
|
||||
const image = document.createElement('img');
|
||||
image.src = destUrl + '0';
|
||||
image.setAttribute('id', 'id');
|
||||
document.body.appendChild(image);
|
||||
|
||||
let numObserved = 0;
|
||||
let beforeLoad = performance.now();
|
||||
|
||||
new PerformanceObserver(t.step_func(entries => {
|
||||
assert_equals(entries.getEntries().length, 1);
|
||||
const entry = entries.getEntries()[0];
|
||||
const options = numObserved === 3 ? [] : ['renderTimeIs0'];
|
||||
checkImage(entry, destUrl + numObserved, 'id', 200 * 200, beforeLoad, options);
|
||||
numObserved++;
|
||||
if (numObserved === 4)
|
||||
t.done();
|
||||
else {
|
||||
// Change the image to trigger a new LCP entry.
|
||||
const img = document.getElementById('id');
|
||||
image.src = destUrl + numObserved;
|
||||
beforeLoad = performance.now();
|
||||
}
|
||||
})).observe({type: 'largest-contentful-paint'});
|
||||
}, 'Cross-origin image without TAO should not have its renderTime set, with full TAO it should.');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
const test_object_entry = (url, type, test_name) => {
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
performance.clearResourceTimings();
|
||||
const el = document.createElement("object");
|
||||
const po = new PerformanceObserver(t.step_func(e => {
|
||||
const entries = e.getEntriesByType("resource");
|
||||
assert_greater_than(entries.length, 0, "Got a performance entry");
|
||||
|
||||
assert_true(entries[0].name.includes(url), "Performance resource timing entry has the right name");
|
||||
po.disconnect();
|
||||
resolve();
|
||||
}));
|
||||
po.observe({type: "resource"});
|
||||
el.data = url;
|
||||
if (type) {
|
||||
el.type = type;
|
||||
}
|
||||
el.style = "width: 0px; height: 0px;";
|
||||
document.body.appendChild(el);
|
||||
|
||||
el.onload = el.onerror = t.step_timeout(() => {
|
||||
assert_unreached("No performance entry was observed");
|
||||
reject();
|
||||
}, 500);
|
||||
});
|
||||
}, test_name);
|
||||
|
||||
};
|
||||
|
||||
test_object_entry("resources/status-code.py?status=404&type=none", null, "Test that an navigation object with a 404 response displays an entry");
|
||||
test_object_entry("resources/status-code.py?status=200&type=none", null, "Test that an navigation object with a 200 response displays an entry");
|
||||
test_object_entry("resources/status-code.py?status=404&type=img", "image/png", "Test that an image object with a 404 response displays an entry");
|
||||
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue