Sync WPT with upstream (24-08-2025) (#38893)

Automated downstream sync of changes from upstream as of 24-08-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
This commit is contained in:
Servo WPT Sync 2025-08-24 03:41:18 +02:00 committed by GitHub
parent 1fc857865f
commit fa42968a61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
365 changed files with 7904 additions and 2377 deletions

View file

@ -0,0 +1,38 @@
[Blob-slice.any.html]
[Slicing test: slice (1,1).]
expected: FAIL
[Slicing test: slice (1,3).]
expected: FAIL
[Slicing test: slice (1,5).]
expected: FAIL
[Slicing test: slice (1,7).]
expected: FAIL
[Slicing test: slice (1,8).]
expected: FAIL
[Slicing test: slice (1,9).]
expected: FAIL
[Blob-slice.any.worker.html]
[Slicing test: slice (1,1).]
expected: FAIL
[Slicing test: slice (1,3).]
expected: FAIL
[Slicing test: slice (1,5).]
expected: FAIL
[Slicing test: slice (1,7).]
expected: FAIL
[Slicing test: slice (1,8).]
expected: FAIL
[Slicing test: slice (1,9).]
expected: FAIL

View file

@ -12,6 +12,3 @@
[Revoke blob URL after creating Request, then clone Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -134,6 +134,39 @@
[IDBFactory interface: [object IDBFactory\] must inherit property "databases()" with the proper type]
expected: FAIL
[IDBObjectStore interface: operation getAllRecords(optional IDBGetAllOptions)]
expected: FAIL
[IDBIndex interface: operation getAllRecords(optional IDBGetAllOptions)]
expected: FAIL
[IDBRecord interface: existence and properties of interface object]
expected: FAIL
[IDBRecord interface object length]
expected: FAIL
[IDBRecord interface object name]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[IDBRecord interface: attribute key]
expected: FAIL
[IDBRecord interface: attribute primaryKey]
expected: FAIL
[IDBRecord interface: attribute value]
expected: FAIL
[idlharness.any.serviceworker.html]
expected: ERROR
@ -270,3 +303,36 @@
[IDBFactory interface: [object IDBFactory\] must inherit property "databases()" with the proper type]
expected: FAIL
[IDBObjectStore interface: operation getAllRecords(optional IDBGetAllOptions)]
expected: FAIL
[IDBIndex interface: operation getAllRecords(optional IDBGetAllOptions)]
expected: FAIL
[IDBRecord interface: existence and properties of interface object]
expected: FAIL
[IDBRecord interface object length]
expected: FAIL
[IDBRecord interface object name]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[IDBRecord interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[IDBRecord interface: attribute key]
expected: FAIL
[IDBRecord interface: attribute primaryKey]
expected: FAIL
[IDBRecord interface: attribute value]
expected: FAIL

View file

@ -16,6 +16,12 @@
[Deactivation of new transactions happens at end of invocation]
expected: FAIL
[New transactions are deactivated before next task]
expected: FAIL
[New transactions from microtask are deactivated before next task]
expected: FAIL
[transaction-deactivation-timing.any.sharedworker.html]
expected: ERROR

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[document-function-blocked.html]
expected: TIMEOUT
[XSL document() function is blocked by CSP]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[xsltprocessor-include-blocked.html]
expected: TIMEOUT
[xsltprocessor-include-blocked]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[layer-cssom-order-reverse.html]
[Delete layer invalidates @font-face]
expected: FAIL

View file

@ -5,3 +5,9 @@
[@font-face override between layers]
expected: [FAIL, PASS]
[@font-face override update with appended sheet 1]
expected: FAIL
[@font-face override update with appended sheet 2]
expected: FAIL

View file

@ -0,0 +1,2 @@
[chrome-bug-439886903-crash.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[downloadable-font-scoped-to-document.html]
expected: FAIL

View file

@ -0,0 +1,12 @@
[cssom.tentative.html]
[serialization of @mixin]
expected: FAIL
[serialization of rule with @apply]
expected: FAIL
[serialization of @mixin with @contents]
expected: FAIL
[serialization of rule with @apply and contents argument]
expected: FAIL

View file

@ -0,0 +1,9 @@
[invalidation.tentative.html]
[invalidation of @mixin from same stylesheet]
expected: FAIL
[invalidation of @mixin from different stylesheet]
expected: FAIL
[invalidation on adding @apply rule]
expected: FAIL

View file

@ -0,0 +1,3 @@
[media-queries.html]
[CSS Mixins: Media Queries and invalidation]
expected: FAIL

View file

@ -0,0 +1,18 @@
[rotate-parsing-computed.html]
[Property rotate value '-0.5 0 0 400grad']
expected: FAIL
[Property rotate value '-1 0 0 400grad']
expected: FAIL
[Property rotate value '0 -0.5 0 400grad']
expected: FAIL
[Property rotate value '0 -1 0 400grad']
expected: FAIL
[Property rotate value '0 0 -0.5 400grad']
expected: FAIL
[Property rotate value '0 0 -1 400grad']
expected: FAIL

View file

@ -1,3 +1,21 @@
[rotate-parsing-valid.html]
[e.style['rotate'\] = "z 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "-0.5 0 0 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "-1 0 0 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "0 -0.5 0 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "0 -1 0 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "0 0 -0.5 400grad" should set the property value]
expected: FAIL
[e.style['rotate'\] = "0 0 -1 400grad" should set the property value]
expected: FAIL

View file

@ -35,9 +35,6 @@
[CSS Values and Units Test: attr 12]
expected: FAIL
[CSS Values and Units Test: attr 16]
expected: FAIL
[CSS Values and Units Test: attr 17]
expected: FAIL
@ -62,9 +59,6 @@
[CSS Values and Units Test: attr 23]
expected: FAIL
[CSS Values and Units Test: attr 14]
expected: FAIL
[CSS Values and Units Test: attr 28]
expected: FAIL
@ -74,18 +68,9 @@
[CSS Values and Units Test: attr 40]
expected: FAIL
[CSS Values and Units Test: attr 41]
expected: FAIL
[CSS Values and Units Test: attr 42]
expected: FAIL
[CSS Values and Units Test: attr 43]
expected: FAIL
[CSS Values and Units Test: attr 44]
expected: FAIL
[CSS Values and Units Test: attr 45]
expected: FAIL
@ -122,9 +107,6 @@
[CSS Values and Units Test: attr 59]
expected: FAIL
[CSS Values and Units Test: attr 60]
expected: FAIL
[CSS Values and Units Test: attr 61]
expected: FAIL
@ -158,9 +140,6 @@
[CSS Values and Units Test: attr 29]
expected: FAIL
[CSS Values and Units Test: attr 32]
expected: FAIL
[CSS Values and Units Test: attr 71]
expected: FAIL
@ -185,15 +164,6 @@
[CSS Values and Units Test: attr 78]
expected: FAIL
[CSS Values and Units Test: attr 15]
expected: FAIL
[CSS Values and Units Test: attr 30]
expected: FAIL
[CSS Values and Units Test: attr 31]
expected: FAIL
[CSS Values and Units Test: attr 33]
expected: FAIL
@ -212,15 +182,6 @@
[CSS Values and Units Test: attr 82]
expected: FAIL
[CSS Values and Units Test: attr 92]
expected: FAIL
[CSS Values and Units Test: attr 93]
expected: FAIL
[CSS Values and Units Test: attr 94]
expected: FAIL
[CSS Values and Units Test: attr 8]
expected: FAIL
@ -239,5 +200,44 @@
[CSS Values and Units Test: attr 83]
expected: FAIL
[CSS Values and Units Test: attr 95]
[CSS Values and Units Test: attr 35]
expected: FAIL
[CSS Values and Units Test: attr 36]
expected: FAIL
[CSS Values and Units Test: attr 38]
expected: FAIL
[CSS Values and Units Test: attr 54]
expected: FAIL
[CSS Values and Units Test: attr 84]
expected: FAIL
[CSS Values and Units Test: attr 85]
expected: FAIL
[CSS Values and Units Test: attr 86]
expected: FAIL
[CSS Values and Units Test: attr 87]
expected: FAIL
[CSS Values and Units Test: attr 88]
expected: FAIL
[CSS Values and Units Test: attr 89]
expected: FAIL
[CSS Values and Units Test: attr 98]
expected: FAIL
[CSS Values and Units Test: attr 99]
expected: FAIL
[CSS Values and Units Test: attr 100]
expected: FAIL
[CSS Values and Units Test: attr 101]
expected: FAIL

View file

@ -0,0 +1,2 @@
[backdrop-filter-inline-positioning.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-empty-element-with-filter-001.html]
expected: FAIL

View file

@ -0,0 +1,30 @@
[parse-heading.html]
[":heading" should be a valid selector]
expected: FAIL
[":heading(2)" should be a valid selector]
expected: FAIL
[":heading(99999)" should be a valid selector]
expected: FAIL
[":heading(0)" should be a valid selector]
expected: FAIL
[":heading(0, 1, 2)" should be a valid selector]
expected: FAIL
[":heading(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)" should be a valid selector]
expected: FAIL
[":heading(-1)" should be a valid selector]
expected: FAIL
["h1:heading" should be a valid selector]
expected: FAIL
["h1:heading(1)" should be a valid selector]
expected: FAIL
["h1:heading(2)" should be a valid selector]
expected: FAIL

View file

@ -30,7 +30,7 @@
expected: ERROR
[AbortSignal.https.any.shadowrealm-in-audioworklet.html]
expected: TIMEOUT
expected: ERROR
[AbortSignal.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR

View file

@ -24,7 +24,7 @@
expected: ERROR
[event.https.any.shadowrealm-in-audioworklet.html]
expected: TIMEOUT
expected: ERROR
[event.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR

View file

@ -64,6 +64,36 @@
[Request interface: new Request('about:blank') must inherit property "duplex" with the proper type]
expected: FAIL
[FetchLaterResult interface: existence and properties of interface object]
expected: FAIL
[FetchLaterResult interface object length]
expected: FAIL
[FetchLaterResult interface object name]
expected: FAIL
[FetchLaterResult interface: existence and properties of interface prototype object]
expected: FAIL
[FetchLaterResult interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[FetchLaterResult interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[FetchLaterResult interface: attribute activated]
expected: FAIL
[Window interface: operation fetchLater(RequestInfo, optional DeferredRequestInit)]
expected: FAIL
[Window interface: window must inherit property "fetchLater(RequestInfo, optional DeferredRequestInit)" with the proper type]
expected: FAIL
[Window interface: calling fetchLater(RequestInfo, optional DeferredRequestInit) on window with too few arguments must throw TypeError]
expected: FAIL
[idlharness.any.serviceworker.html]
expected: ERROR

View file

@ -49,3 +49,6 @@
[sec-fetch-storage-access - Not sent to non-trustworthy same-site destination]
expected: FAIL
[sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination]
expected: FAIL

View file

@ -10,6 +10,3 @@
[load event does not fire on window.open('about:blank?foo')]
expected: FAIL
[load event does not fire on window.open('about:blank')]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[canvas.2d.disconnected.html]
expected: FAIL

View file

@ -1,9 +0,0 @@
[the-anchor-attribute-003.tentative.html]
[::before uses originating element's implicit anchor]
expected: FAIL
[::after uses originating element's implicit anchor]
expected: FAIL
[::backdrop uses originating element's implicit anchor]
expected: FAIL

View file

@ -7107,3 +7107,21 @@
[HTMLTemplateElement interface: document.createElement("template") must inherit property "shadowRootCustomElementRegistry" with the proper type]
expected: FAIL
[HTMLSelectedContentElement interface: existence and properties of interface object]
expected: FAIL
[HTMLSelectedContentElement interface object length]
expected: FAIL
[HTMLSelectedContentElement interface object name]
expected: FAIL
[HTMLSelectedContentElement interface: existence and properties of interface prototype object]
expected: FAIL
[HTMLSelectedContentElement interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[HTMLSelectedContentElement interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL

View file

@ -1,6 +1,7 @@
[document-with-fragment-empty.html]
expected: TIMEOUT
[Autofocus elements in iframed documents with empty fragments should work.]
expected: FAIL
[Autofocus elements in top-level browsing context's documents with empty fragments should work.]
expected: FAIL
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -1,3 +1,4 @@
[iframe_sandbox_popups_escaping-3.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_nonescaping-1.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL

View file

@ -1,4 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -0,0 +1,2 @@
[disabled-003.html]
expected: CRASH

View file

@ -0,0 +1,4 @@
[parent-image-mask.tentative.html]
expected: TIMEOUT
[Permission element is invalid if it has a parent with mask-image.]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[parent-mask.tentative.html]
expected: TIMEOUT
[Permission element is invalid if it has a parent with a mask.]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[077.html]
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
expected: FAIL

View file

@ -1,3 +0,0 @@
[script-src-event-handler.html]
[Speculative parsing, page load: script-src-event-handler]
expected: FAIL

View file

@ -1,3 +1,3 @@
[script-src-nomodule.html]
[script-src-nomodule.tentative.html]
[Speculative parsing, page load: script-src-nomodule]
expected: FAIL

View file

@ -1,3 +0,0 @@
[script-src-unsupported-language.html]
[Speculative parsing, page load: script-src-unsupported-language]
expected: FAIL

View file

@ -1,3 +1,3 @@
[script-src-unsupported-type.html]
[script-src-unsupported-type.tentative.html]
[Speculative parsing, page load: script-src-unsupported-type]
expected: FAIL

View file

@ -8,6 +8,12 @@
[ServiceWorkerRegistration interface: operation getNotifications(optional GetNotificationOptions)]
expected: FAIL
[Notification interface: attribute navigate]
expected: FAIL
[Notification interface: notification must inherit property "navigate" with the proper type]
expected: FAIL
[idlharness.https.any.html]
[ServiceWorkerRegistration interface: operation showNotification(DOMString, optional NotificationOptions)]
@ -16,6 +22,12 @@
[ServiceWorkerRegistration interface: operation getNotifications(optional GetNotificationOptions)]
expected: FAIL
[Notification interface: attribute navigate]
expected: FAIL
[Notification interface: notification must inherit property "navigate" with the proper type]
expected: FAIL
[idlharness.https.any.serviceworker.html]
expected: ERROR

View file

@ -56,9 +56,6 @@
[MIME-blocked-nosniff (script): main]
expected: FAIL
[CORS (xhr): main]
expected: FAIL
[success (xhr): main]
expected: FAIL
@ -74,5 +71,5 @@
[404 (script): main]
expected: FAIL
[CORS (script): main]
[Decode-error (style): main]
expected: FAIL

View file

@ -1,3 +1,6 @@
[svg.html]
[The initiator type for <image> in an <svg> must be 'image']
expected: FAIL
[The initiator type for <use> in an <svg> must be 'other']
expected: FAIL

View file

@ -1,9 +0,0 @@
[document-initiated.html]
[Ensure initiator Attribute matches with Document ResourceID]
expected: TIMEOUT
[initiatorUrl by main html file]
expected: FAIL
[initiatorUrl for resource by document.write()]
expected: FAIL

View file

@ -0,0 +1,42 @@
[document-initiated.html]
[The initiator Url for empty.js?blocking initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for display_paragraph.js initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty.js?async initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty.js?deferred initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty.js?module initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty_style.css?link initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for blue.png?inline-style initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for Ahem.ttf?initiator-html initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for blue.png?using-Img-tag initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty_style.css?inline-script initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for blue.png?inline-script initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for blue.png?inline-script-doc-write initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty_style.css?inline-script-doc-write initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL
[The initiator Url for empty.js?doc-write initiatorUrl from document-initiated must be 'http://web-platform.test:8000/resource-timing/tentative/initiator-url/document-initiated.html']
expected: FAIL

View file

@ -1,4 +1,4 @@
[stylesheet-initiated.html]
expected: TIMEOUT
expected: ERROR
[Ensure initiator Attribute matches with Stylesheet ResourceID]
expected: TIMEOUT

View file

@ -108,6 +108,21 @@
[Window interface: attribute caches]
expected: FAIL
[ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)]
expected: TIMEOUT
[NavigationPreloadManager interface: operation enable()]
expected: TIMEOUT
[NavigationPreloadManager interface: operation disable()]
expected: TIMEOUT
[NavigationPreloadManager interface: operation setHeaderValue(ByteString)]
expected: TIMEOUT
[NavigationPreloadManager interface: operation getState()]
expected: TIMEOUT
[idlharness.https.any.serviceworker.html]
expected: ERROR

View file

@ -0,0 +1,3 @@
[intercepted-referrer.https.html]
[document.referrer for a navigation intercepted by a Service Worker is unchanged and matches the parent URL]
expected: FAIL

View file

@ -29,3 +29,6 @@
[directive "require-trusted-types-for 'invalid'%20'script'" (required-ascii-whitespace)]
expected: NOTRUN
[directive "require-trusted-types-for 'invalid'%0D%20'script'" (required-ascii-whitespace)]
expected: NOTRUN

View file

@ -41,6 +41,15 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com/ignoredpath"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com\\\\?ignoredsearch"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com#ignoredhash"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[urlpattern.any.sharedworker.html]
expected: ERROR
@ -88,6 +97,15 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com/ignoredpath"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com\\\\?ignoredsearch"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com#ignoredhash"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[urlpattern.any.serviceworker.html]
expected: ERROR

View file

@ -44,6 +44,15 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com/ignoredpath"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com\\\\?ignoredsearch"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com#ignoredhash"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[urlpattern.https.any.worker.html]
[Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]]
@ -88,6 +97,15 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com/ignoredpath"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com\\\\?ignoredsearch"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[Pattern: [{"protocol":"http","hostname":"example.com#ignoredhash"}\] Inputs: ["http://example.com/"\]]
expected: FAIL
[urlpattern.https.any.serviceworker.html]
expected: ERROR

View file

@ -10,3 +10,6 @@
[# AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed.]
expected: FAIL
[AudioNodeOptions behavior for ChannelMergerNode]
expected: FAIL

View file

@ -7,3 +7,12 @@
[Executing "test3"]
expected: FAIL
[Compare value setter and setValueAtTime]
expected: FAIL
[Automation effects]
expected: FAIL
[Dezippering of GainNode removed]
expected: FAIL

View file

@ -1,3 +1,6 @@
[waveshaper-limits.html]
[Executing "test"]
expected: FAIL
[WaveShaperNode maps input values outside [-1,1\] according to curve and clamps output correctly]
expected: FAIL

View file

@ -1,3 +1,6 @@
[waveshaper.html]
[Executing "test"]
expected: FAIL
[WaveShaperNode applies non-linear distortion correctly]
expected: FAIL

View file

@ -1,2 +0,0 @@
[render_state_update.https.html]
expected: ERROR

View file

@ -26,14 +26,14 @@ jobs:
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
# Based on https://docs.github.com/en/actions/publishing-packages/publishing-docker-images.
- name: Log in to the Container registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |

View file

@ -0,0 +1,8 @@
import json
def main(request, response):
response_body = {
"registering_origins": ['https://www.' + request.headers.get('host').decode("utf-8")],
}
return (200, [('Content-Type', 'application/json'), ('Set-Cookie', 'well_known_fetched=true; Path=/device-bound-session-credentials')],
json.dumps(response_body))

View file

@ -73,6 +73,21 @@ test(function() {
{start: 7, end: 4, contents: ""}]
],
// Test double start/end values
[
["abcd"],
[{start: 0.5, contents: "abcd"},
{start: 1.5, contents: "cd"},
{start: 2.5, contents: "cd"},
{start: 3.5, contents: ""},
{start: 0, end: 0.5, contents: ""},
{start: 0, end: 1.5, contents: "ab"},
{start: 0, end: 2.5, contents: "ab"},
{start: 0, end: 3.5, contents: "abcd"},
{start: 1.5, end: 2.5, contents: ""},
{start: 1.5, end: 3.5, contents: "cd"}]
],
// Test 3 strings
[
["foo", "bar", "baz"],

View file

@ -0,0 +1,56 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, with a child img inside of the inner, and a containertiming-ignore between the roots</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 1, 'one entry expected for the image, for the inner containertiming');
const entry = entryList.getEntries()[0];
checkContainerEntry(entry, 'div2_ct', 'img_id', beforeRender)
checkRect(entry, [0, 100, 0, 100])
checkContainerSize(entry, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'transparent');
document.body.appendChild(div1);
// Intermediate div with containertiming-ignore blocking propagation to
// the parent containertiming root
const div2 = document.createElement('div');
div2.setAttribute('containertiming-ignore', '');
div1.appendChild(div2);
// Add another div, child of the first, that is also a container root
const div3 = document.createElement('div');
div3.setAttribute('containertiming', 'div2_ct');
div2.appendChild(div3);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div3.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with transparent nesting policy does not get paints from children containertiming roots if an intermediate ignore is set.');
</script>
</body>

View file

@ -0,0 +1,55 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, with a child img inside of the inner, and an intermediate nesting policy that is not used</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 1, 'one entry expected for the image, for the inner containertiming');
const entry = entryList.getEntries()[0];
checkContainerEntry(entry, 'div3_ct', 'img_id', beforeRender)
checkRect(entry, [0, 100, 0, 100])
checkContainerSize(entry, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
document.body.appendChild(div1);
// Add an intermediate div between container timing roots, that sets a
// nesting policy. This should be ignored.
const div2 = document.createElement('div');
div2.setAttribute('containertiming-nesting', 'transparent');
div1.appendChild(div2);
// Add another div, child of the first, that is also a container root
const div3 = document.createElement('div');
div3.setAttribute('containertiming', 'div3_ct');
div2.appendChild(div3);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div3.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with default nesting policy does not get paints from children containertiming roots, even if an intermediate node could set a different nesting policy.');
</script>
</body>

View file

@ -45,7 +45,7 @@ body {
div2.appendChild(img);
beforeRender = performance.now();
};
}, 'A parent containertiming root does not get paints from children containertiming roots.');
}, 'A parent containertiming root with default nesting policy does not get paints from children containertiming roots.');
</script>
</body>

View file

@ -0,0 +1,59 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent gets invalid, then transparent nesting policy, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 2, 'one entry expected for each of the containertiming roots');
const entries = entryList.getEntries();
const entry_div1 = entries.find(e => e.identifier == 'div1_ct');
checkContainerEntry(entry_div1, 'div1_ct', 'img_id', beforeRender)
checkRect(entry_div1, [0, 100, 0, 100])
checkContainerSize(entry_div1, 10000);
const entry_div2 = entries.find(e => e.identifier == 'div2_ct');
checkContainerEntry(entry_div2, 'div2_ct', 'img_id', beforeRender)
checkRect(entry_div2, [0, 100, 0, 100])
checkContainerSize(entry_div2, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root, set invalid nesting, then
// transparent
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'invalid');
document.body.appendChild(div1);
div1.setAttribute('containertiming-nesting', 'transparent');
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root switches from invalid nesting policy to transparent, generating one painting from each container timing root.');
</script>
</body>

View file

@ -0,0 +1,51 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent switching from transparent to invalid nesting policy, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 1, 'one entry expected for the image, for the inner containertiming');
const entry = entryList.getEntries()[0];
checkContainerEntry(entry, 'div2_ct', 'img_id', beforeRender)
checkRect(entry, [0, 100, 0, 100])
checkContainerSize(entry, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'transparent');
document.body.appendChild(div1);
div1.setAttribute('containertiming-nesting', 'invalid');
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root switches from transparent nesting policy to invalid, generating only a paint for the inner container timing.');
</script>
</body>

View file

@ -0,0 +1,58 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent with shadowed mode, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 2, 'for the image, one entry expected for each container timing');
const entries = entryList.getEntries();
const entry_div1 = entries.find(e => e.identifier == 'div1_ct');
checkContainerEntry(entry_div1, 'div1_ct', 'div2_id', beforeRender)
checkRect(entry_div1, [0, 100, 0, 100])
checkContainerSize(entry_div1, 10000);
const entry_div2 = entries.find(e => e.identifier == 'div2_ct');
checkContainerEntry(entry_div2, 'div2_ct', 'img_id', beforeRender)
checkRect(entry_div2, [0, 100, 0, 100])
checkContainerSize(entry_div2, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'shadowed');
document.body.appendChild(div1);
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('id', 'div2_id');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with shadowed nesting policy gets only child containertiming paints without element data.');
</script>
</body>

View file

@ -0,0 +1,59 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent with shadowed mode changed to transparent mode, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 2, 'for the image, one entry expected for each containertiming');
const entries = entryList.getEntries();
const entry_div1 = entries.find(e => e.identifier == 'div1_ct');
checkContainerEntry(entry_div1, 'div1_ct', 'img_id', beforeRender)
checkRect(entry_div1, [0, 100, 0, 100])
checkContainerSize(entry_div1, 10000);
const entry_div2 = entries.find(e => e.identifier == 'div2_ct');
checkContainerEntry(entry_div2, 'div2_ct', 'img_id', beforeRender)
checkRect(entry_div2, [0, 100, 0, 100])
checkContainerSize(entry_div2, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'shadowed');
document.body.appendChild(div1);
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
div1.setAttribute('containertiming-nesting', 'transparent');
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with shadowed then transparent nesting policy gets child containertiming paints with element data.');
</script>
</body>

View file

@ -0,0 +1,54 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent with transparent mode, with a child img inside of the inner, and an intermediate ignore node</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 1, 'only inner containertiming gets events, ignore breaks propagation to parent even if nesting is set to transparent');
const entry = entryList.getEntries()[0];
checkContainerEntry(entry, 'div3_ct', 'img_id', beforeRender)
checkRect(entry, [0, 100, 0, 100])
checkContainerSize(entry, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'transparent');
document.body.appendChild(div1);
const div2 = document.createElement('div');
div2.setAttribute('containertiming-ignore', '');
div1.appendChild(div2);
// Add another div, child of the first, that is also a container root
const div3 = document.createElement('div');
div3.setAttribute('containertiming', 'div3_ct');
div2.appendChild(div3);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div3.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with transparent nesting policy and child containertiming including image, an intermediate ignore blocks paints to parent root.');
</script>
</body>

View file

@ -0,0 +1,57 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent with transparent mode, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 2, 'for the image, one entry expected for each containertiming');
const entries = entryList.getEntries();
const entry_div1 = entries.find(e => e.identifier == 'div1_ct');
checkContainerEntry(entry_div1, 'div1_ct', 'img_id', beforeRender)
checkRect(entry_div1, [0, 100, 0, 100])
checkContainerSize(entry_div1, 10000);
const entry_div2 = entries.find(e => e.identifier == 'div2_ct');
checkContainerEntry(entry_div2, 'div2_ct', 'img_id', beforeRender)
checkRect(entry_div2, [0, 100, 0, 100])
checkContainerSize(entry_div2, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'transparent');
document.body.appendChild(div1);
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with transparent nesting policy gets child containertiming paints with element data.');
</script>
</body>

View file

@ -0,0 +1,60 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Container Timing: two nested containertiming nodes, parent with transparent mode, changed to shadowed mode, with a child img inside of the inner</title>
<body>
<style>
body {
margin: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/container-timing/resources/container-timing-helpers.js"></script>
<script src="/element-timing/resources/element-timing-helpers.js"></script>
<script>
let beforeRender;
async_test(function (t) {
assert_implements(window.PerformanceContainerTiming, "PerformanceContainerTiming is not implemented");
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
assert_equals(entryList.getEntries().length, 2, 'for the image, one entry expected for each container timing');
const entries = entryList.getEntries();
const entry_div1 = entries.find(e => e.identifier == 'div1_ct');
checkContainerEntry(entry_div1, 'div1_ct', 'div2_id', beforeRender)
checkRect(entry_div1, [0, 100, 0, 100])
checkContainerSize(entry_div1, 10000);
const entry_div2 = entries.find(e => e.identifier == 'div2_ct');
checkContainerEntry(entry_div2, 'div2_ct', 'img_id', beforeRender)
checkRect(entry_div2, [0, 100, 0, 100])
checkContainerSize(entry_div2, 10000);
})
);
observer.observe({entryTypes: ['container']});
// Add a div that is the container timing root
const div1 = document.createElement('div');
div1.setAttribute('containertiming', 'div1_ct');
div1.setAttribute('containertiming-nesting', 'transparent');
document.body.appendChild(div1);
// Add another div, child of the first, that is also a container root
const div2 = document.createElement('div');
div2.setAttribute('id', 'div2_id');
div2.setAttribute('containertiming', 'div2_ct');
div1.appendChild(div2);
div1.setAttribute('containertiming-nesting', 'shadowed');
// Add image of width equal to 100 and height equal to 100.
img = document.createElement('img');
img.src = '/container-timing/resources/square100.png';
img.setAttribute('id', 'img_id');
div2.appendChild(img);
beforeRender = performance.now();
}, 'A parent containertiming root with transparent then shadowed nesting policy gets child containertiming paints without element data.');
</script>
</body>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<title>A Report-Only policy with a nonce does not send a report for an allowed link preload</title>
<script nonce="abc" src="/resources/testharness.js"></script>
<script nonce="abc" src="/resources/testharnessreport.js"></script>
</head>
<body>
<script nonce="abc">
var testName = "Report should not be sent for an allowed link preload";
addEventListener("load", () => {
const script = document.createElement("script");
script.nonce = "abc";
script.src = `../support/checkReport.sub.js?reportExists=false&testName=${encodeURIComponent(testName)}`;
document.body.appendChild(script);
});
</script>
</body>
</html>

View file

@ -0,0 +1,4 @@
Set-Cookie: link-preload-report-only-nonce={{$id:uuid()}}; Path=/content-security-policy/reporting
Content-Security-Policy: script-src 'self' 'unsafe-inline'
Content-Security-Policy-Report-Only: script-src 'nonce-abc'; report-uri /reporting/resources/report.py?op=put&reportID={{$id}}
Link: </content-security-policy/support/pass.js>;rel=preload;as=script;nonce=abc

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<title>A Report-Only policy with a nonce does not send a report for an allowed link preload</title>
<script nonce="abc" src="/resources/testharness.js"></script>
<script nonce="abc" src="/resources/testharnessreport.js"></script>
<link nonce="abc" rel="preload" as="script" href="../support/pass.js">
</head>
<body>
<script nonce="abc">
var testName = "Report should not be sent for an allowed link preload";
addEventListener("load", () => {
const script = document.createElement("script");
script.nonce = "abc";
script.src = `../support/checkReport.sub.js?reportExists=false&testName=${encodeURIComponent(testName)}`;
document.body.appendChild(script);
});
</script>
</body>
</html>

View file

@ -0,0 +1,3 @@
Set-Cookie: link-preload-report-only-nonce={{$id:uuid()}}; Path=/content-security-policy/reporting
Content-Security-Policy: script-src 'self' 'unsafe-inline'
Content-Security-Policy-Report-Only: script-src 'nonce-abc'; report-uri /reporting/resources/report.py?op=put&reportID={{$id}}

View file

@ -0,0 +1 @@
// intentionally left blank.

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/content-security-policy/support/testharness-helper.js"></script>
<body>
<script>
async_test(t => {
let iframe = document.createElement("iframe");
iframe.src = "/content-security-policy/xslt/support/xml-with-stylesheet.xml";
document.body.append(iframe);
iframe.contentWindow.addEventListener("securitypolicyviolation", t.step_func_done(e => {
assert_true(e.blockedURI.endsWith("xslt/support/empty.xml"), "Blocked empty.xml request")
}));
}, "XSL document() function is blocked by CSP");
</script>
</body>

View file

@ -0,0 +1,5 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="document('/content-security-policy/xslt/support/empty.xml')//foo" />
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<root/>

View file

@ -0,0 +1,3 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/content-security-policy/xslt/support/document.xsl"?>
<root/>

View file

@ -0,0 +1 @@
Content-Security-Policy: connect-src 'none';

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<script nonce="abc" src="/resources/testharness.js"></script>
<script nonce="abc" src="/resources/testharnessreport.js"></script>
<script nonce="abc" src="/content-security-policy/support/testharness-helper.js"></script>
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'nonce-abc';">
<body>
<script nonce="abc">
async_test(t => {
waitUntilEvent(window, "securitypolicyviolation").then(t.step_func_done(e => {
assert_equals(e.documentURI, document.location.toString());
assert_true(e.blockedURI.endsWith("/support/document.xsl"));
}));
const XSLT_DOC = `
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="/content-security-policy/xslt/support/document.xsl" />
<xsl:template match="/">
<b>test</b>
</xsl:template>
</xsl:stylesheet>`;
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(`<root/>`, "application/xml");
const xsltDoc = parser.parseFromString(XSLT_DOC, "application/xml");
try {
const xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);
xsltProcessor.transformToFragment(xmlDoc, document);
} catch {}
});
</script>
</body>

View file

@ -0,0 +1,92 @@
features:
- name: attr-contents
files:
- content-037.xht
- content-038.xht
- content-039.xht
- content-040.xht
- content-041.xht
- content-042.xht
- content-043.xht
- content-046.xht
- content-047.xht
- content-048.xht
- content-049.xht
- content-050.xht
- content-051.xht
- content-052.xht
- content-053.xht
- content-054.xht
- content-056.xht
- content-057.xht
- content-063.xht
- content-065.xht
- content-066.xht
- content-067.xht
- content-068.xht
- content-070.xht
- content-072.xht
- content-073.xht
- content-075.xht
- content-076.xht
- content-077.xht
- content-078.xht
- content-080.xht
- content-081.xht
- content-082.xht
- content-083.xht
- content-085.xht
- content-086.xht
- content-089.xht
- content-090.xht
- content-091.xht
- content-096.xht
- content-097.xht
- content-099.xht
- content-100.xht
- content-103.xht
- content-105.xht
- content-107.xht
- content-108.xht
- content-109.xht
- content-110.xht
- content-111.xht
- content-112.xht
- content-113.xht
- content-114.xht
- content-115.xht
- content-116.xht
- content-117.xht
- content-118.xht
- content-119.xht
- content-121.xht
- content-122.xht
- content-123.xht
- content-126.xht
- content-127.xht
- content-129.xht
- content-130.xht
- content-131.xht
- content-132.xht
- content-135.xht
- content-136.xht
- content-138.xht
- content-140.xht
- content-141.xht
- content-142.xht
- content-143.xht
- content-144.xht
- content-145.xht
- content-146.xht
- content-147.xht
- content-149.xht
- content-150.xht
- content-151.xht
- content-152.xht
- content-153.xht
- content-155.xht
- content-attr-001.xht
- content-attr-002.xht
- content-attr-case-001.html
- content-attr-case-002.xht
- other-attribute-001.xht

View file

@ -8,7 +8,7 @@
<link rel="reviewer" title="Mihai Țică" href="mailto:mitica@adobe.com">
<link rel="help" href="https://drafts.fxtf.org/compositing-1/#mix-blend-mode">
<meta name="assert" content="Test checks that the element with mix-blend-mode blends with the parent element (both with 3D transform)">
<meta name="fuzzy" content="0-128;0-1000">
<meta name="fuzzy" content="0-180;0-1000">
<link rel="match" href="reference/mix-blend-mode-both-parent-and-blended-with-3D-transform-ref.html">
<style type="text/css">
.parent {

View file

@ -2,7 +2,7 @@
<title>Tests scroll adjustments of element anchored to a sticky-position element</title>
<link rel="author" href="mailto:wangxianzhu@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
<link rel="match" href="reference/anchor-scroll-to-sticky-001-ref.html">
<link rel="match" href="reference/anchor-scroll-to-sticky-003-ref.html">
<style>
body {
margin: 0;

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<style>
body {
margin: 0;
}
div {
width: 100px;
height: 100px;
}
#scroller {
overflow: scroll;
}
#anchor {
height: 20px;
background: orange;
position: relative;
}
#anchored {
position: absolute;
top: 20px;
left: 0;
background: green;
}
</style>
<div id="anchored"></div>
<div id="scroller">
<div style="height: 200px"></div>
<div id="anchor"></div>
<div style="height: 150px"></div>
</div>
<script>
scroller.scrollTop = 200;
</script>

View file

@ -16,6 +16,7 @@ div {
#anchor {
height: 20px;
background: orange;
position: relative;
}
#anchored {
@ -27,12 +28,12 @@ div {
</style>
<div id="anchored"></div>
<div id="scroller">
<div style="height: 250px"></div>
<div id="anchor"></div>
<div style="height: 180px"></div>
</div>
<div id="anchored"></div>
<script>
scroller.scrollTop = 200;

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<style>
div {
width: 100px;
height: 100px;
background-color: black;
}
</style>
<div></div>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<title>Setting 'animation-duration' to an infinite value should not hang</title>
<link rel="author" title="Antoine Quint" href="mailto:graouts@webkit.org">
<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=297596">
<link rel="match" href="animation-duration-infinite-ref.html">
<meta name="assert" content="Setting 'animation-duration' to an infinite value should not hang">
<style>
div {
width: 100px;
height: 100px;
background-color: black;
animation-name: slide;
animation-duration: calc(infinity * 1s);
}
@keyframes slide {
to { margin-left: 100px }
}
</style>
</head>
<body>
<div></div>
</body>
</html>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<meta name="fuzzy" content="1;0-50">
<title>CSS Backgrounds and Borders Test: table cell background-image with local attachment</title>
<!--

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<p>"hahaha" should be seen below.</p>
<div style="width:fit-content; columns:6; gap:0; column-fill:auto; line-height:20px; height:20px;">
h<br>a<br>h<br>a<br>h<br>a<br>
</div>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://issues.chromium.org/issues/435811611">
<link rel="match" href="text-in-nested-multicol-ref.html">
<p>"hahaha" should be seen below.</p>
<div style="columns:3; width:fit-content; column-fill:auto; height:100px; gap:0; line-height:20px; orphans:1; widows:1;">
<div style="display:table;">
<div style="display:table-header-group; break-inside:avoid;">
<div style="columns:2; gap:0; column-fill:auto; height:20px;">
h<br>a<br>
</div>
</div>
<div style="height:200px;"></div>
</div>
</div>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<title>Chrome crash issue 439886903</title>
<link rel="help" href="https://crbug.com/439886903">
<html class="test-wait">
<div id="container" style="container-type:inline-size">
<div id="target"></div>
<object id="svg" data='data:image/svg+xml,<?xml version="1.0"?><svg></svg>'></object>
</div>
<script type="module">
await new Promise(r => svg.addEventListener("load", r, { once: true }));
document.body.offsetTop;
container.style.width = "100px";
target.style.backgroundColor = "red";
document.body.offsetTop;
document.documentElement.classList.remove("test-wait");
</script>

View file

@ -1,7 +1,6 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<meta name="fuzzy" content="1;0-50">
<title>CSS Test: 'contain: layout' on element that overflows and its parent has 'overflow: scroll'</title>

View file

@ -3,7 +3,6 @@
<html>
<head>
<meta charset="utf-8">
<meta name="fuzzy" content="1;0-50">
<title>CSS Test: 'contain: layout' should force all overflow to be ink overflow.</title>
<link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu">
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">

View file

@ -1,4 +1,9 @@
features:
- name: attr-contents
files:
- attr-case-sensitivity-001.html
- attr-case-sensitivity-002.html
- attr-case-sensitivity-003.html
- name: quotes
files:
- quotes-*

View file

@ -30,6 +30,26 @@ test_invalid_value("grid-template-columns", '-5fr repeat(auto-fill, auto)');
test_invalid_value("grid-template-columns", '-10px repeat(auto-fill, min-content)');
test_invalid_value("grid-template-columns", '-20% repeat(auto-fit, max-content)');
test_invalid_value("grid-template-columns", 'repeat(auto-fill, fit-content)');
test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, auto) auto');
test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, auto) min-content');
test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, auto) max-content');
test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, auto) fit-content(200px)');
test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, auto) repeat(5, auto)');
test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, min-content) auto');
test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, min-content) min-content');
test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, min-content) max-content');
test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, min-content) fit-content(200px)');
test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, min-content) repeat(5, min-content)');
test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, max-content) auto');
test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, max-content) min-content');
test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, max-content) max-content');
test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, max-content) fit-content(200px)');
test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, max-content) repeat(5, max-content)');
test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, fit-content(200px)) auto');
test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, fit-content(200px)) min-content');
test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, fit-content(200px)) max-content');
test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) fit-content(200px)');
test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) repeat(5, fit-content(200px))');
</script>
</body>
</html>

View file

@ -30,6 +30,26 @@ test_invalid_value("grid-template-rows", '-10px repeat(auto-fit, auto)');
test_invalid_value("grid-template-rows", '-10px repeat(auto-fill, min-content)');
test_invalid_value("grid-template-rows", '-20% repeat(auto-fit, max-content)');
test_invalid_value("grid-template-rows", 'repeat(auto-fill, fit-content)');
test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, auto) auto');
test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, auto) min-content');
test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, auto) max-content');
test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, auto) fit-content(200px)');
test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, auto) repeat(5, auto)');
test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, min-content) auto');
test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, min-content) min-content');
test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, min-content) max-content');
test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, min-content) fit-content(200px)');
test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, min-content) repeat(5, min-content)');
test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, max-content) auto');
test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, max-content) min-content');
test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, max-content) max-content');
test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, max-content) fit-content(200px)');
test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, max-content) repeat(5, max-content)');
test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, fit-content(200px)) auto');
test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, fit-content(200px)) min-content');
test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, fit-content(200px)) max-content');
test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) fit-content(200px)');
test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) repeat(5, fit-content(200px))');
</script>
</body>
</html>

View file

@ -28,12 +28,10 @@ test_valid_value("grid-template-rows", 'repeat(auto-fit, max-content 100px max-c
test_valid_value("grid-template-rows", 'repeat(auto-fill, minmax(30px, 5fr) [two] max-content)');
test_valid_value("grid-template-rows", 'repeat(auto-fit, [three] max-content [four])');
test_valid_value("grid-template-rows", 'repeat(auto-fill, fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fit, fit-content(200px) 100px fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fill, minmax(30px, 5fr) [two] fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fit, [three] fit-content(200px) [four])');
</script>
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html contenteditable>
<style>
div::first-letter {
float: right;
}
::highlight(test) { background-color: purple; }
</style>
<div><span id="span1">a<span>bc</span></span></div>
<script>
const span1 = document.getElementById("span1");
const text_node = span1.firstChild;
const range = document.createRange();
range.setStart(text_node, 0);
range.setEnd(text_node, 1);
const highlight = new Highlight(range);
CSS.highlights.set("test", highlight);
</script>

Some files were not shown because too many files have changed in this diff Show more