diff --git a/PRIVACY.md b/PRIVACY.md index c9a3951..ddc011b 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -48,6 +48,17 @@ The value is: Future-version values are left untouched and refused rather than migrated silently. Invalid and oversized values are ignored. +The named-plan library is a separate opt-in store, `controlcurrent.plans.v1`, +limited to 12 browser plans and 64 KiB. **Save current as a new plan** and +**Duplicate selected** write to this store. Rename and delete affect only the +selected named plan. Plans contain browser choices and a name, never pasted +headers or evidence. No library is created automatically. + +Hand-offs between tools carry browser choices and selected feature IDs in a +bounded URL fragment. The receiving page removes the fragment from its current +address after reading it. Fragments are not sent in HTTP requests. These actions +do not save a plan to either local-storage key. + ## Exports JSON exports are generated locally from the displayed calculation. They contain @@ -158,5 +169,6 @@ no imported policy, decision, evidence or visitor values. ## Deletion -Use **Clear saved profile** in the planner or clear the site's storage in the -browser. There is no application-side server copy. +Use **Delete saved plan** for the current saved profile and remembered result, +and **Delete selected** for individual named plans. Clearing the site's storage +removes both stores. There is no application-side server copy. diff --git a/README.md b/README.md index e26d36a..34ea20f 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,9 @@ checker or certification service. - Import explicit minimums from a local `.browserslistrc` or `package.json`. - Search and filter the result, including a blockers-only view. - Save a browser plan locally or export it as JSON. +- Keep up to 12 named plans locally, with separate rename, duplicate and delete actions. +- Compare two editable browser plans and calculate the minimum increases needed for selected features. +- Transfer calculated minimums directly to the planner without saving them. - Opt in to remembering one result so a later data update can be compared. - Compare an exported result with a newer result from the same source version. - Read exact source versions, package timestamps and local package age beside @@ -79,16 +82,20 @@ checker or certification service. ### Explore the source data -- Read plain-language pages for 30 browser security and privacy features. +- Read plain-language pages for 36 browser security and privacy features. - Compare current browser support in a matrix. - See exact source mappings, qualifications and known data gaps. - Review source changes and pinned Web Platform Tests links. +- Trace support across recorded browser releases and explore deployment dependencies as interactive circuits. +- Read retained results from exact public browser-test runs, with file outcomes separate from subtest totals. +- Inspect exact test selections for individual camera, microphone, geolocation and data-clearing directives, with their own counts and coverage limits. - Validate exported contracts with public draft 2020-12 JSON Schemas. - Find the oldest browser versions that support a selected group of features. ### Review evidence locally - Paste a redacted HTTP response-header snapshot. +- Select or import a browser plan to show compatibility beside each header finding. - Choose or drop a bounded JSON evidence file from an authorised collection. - Review page, header, request, passkey and local resource evidence without executing supplied markup or loading its resources. diff --git a/data/change-events.json b/data/change-events.json index 10489da..15b0fb0 100644 --- a/data/change-events.json +++ b/data/change-events.json @@ -3170,32 +3170,1027 @@ "summary": "Chrome 158 was added to the selected BCD release metadata.", "type": "browser_release_added" }, + { + "after": [ + { + "combination": "all", + "controlId": "content-security-policy", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy"] + }, + { + "combination": "all", + "controlId": "csp-nonces", + "mappingState": "unsupported", + "paths": [] + }, + { + "combination": "all", + "controlId": "csp-hashes", + "mappingState": "unsupported", + "paths": [] + }, + { + "combination": "all", + "controlId": "strict-dynamic", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.strict-dynamic"] + }, + { + "combination": "all", + "controlId": "csp-base-uri", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.base-uri"] + }, + { + "combination": "all", + "controlId": "csp-frame-ancestors", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.frame-ancestors"] + }, + { + "combination": "all", + "controlId": "csp-form-action", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.form-action"] + }, + { + "combination": "all", + "controlId": "csp-upgrade-insecure-requests", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.upgrade-insecure-requests"] + }, + { + "combination": "all", + "controlId": "csp-sandbox", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.sandbox"] + }, + { + "combination": "all", + "controlId": "trusted-types", + "mappingState": "active", + "paths": [ + "api.trustedTypes", + "http.headers.Content-Security-Policy.require-trusted-types-for" + ] + }, + { + "combination": "all", + "controlId": "subresource-integrity", + "mappingState": "active", + "paths": ["html.elements.script.integrity", "html.elements.link.integrity"] + }, + { + "combination": "any", + "controlId": "integrity-policy", + "mappingState": "active", + "paths": ["http.headers.Integrity-Policy", "http.headers.Integrity-Policy-Report-Only"] + }, + { + "combination": "all", + "controlId": "cross-origin-opener-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Opener-Policy"] + }, + { + "combination": "all", + "controlId": "cross-origin-embedder-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Embedder-Policy"] + }, + { + "combination": "all", + "controlId": "cross-origin-resource-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Resource-Policy"] + }, + { + "combination": "all", + "controlId": "coep-credentialless", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Embedder-Policy.credentialless"] + }, + { + "combination": "all", + "controlId": "origin-agent-cluster", + "mappingState": "active", + "paths": ["http.headers.Origin-Agent-Cluster"] + }, + { + "combination": "all", + "controlId": "fetch-metadata", + "mappingState": "active", + "paths": [ + "http.headers.Sec-Fetch-Dest", + "http.headers.Sec-Fetch-Mode", + "http.headers.Sec-Fetch-Site", + "http.headers.Sec-Fetch-User" + ] + }, + { + "combination": "all", + "controlId": "permissions-policy", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy"] + }, + { + "combination": "all", + "controlId": "strict-transport-security", + "mappingState": "active", + "paths": ["http.headers.Strict-Transport-Security"] + }, + { + "combination": "all", + "controlId": "x-content-type-options", + "mappingState": "active", + "paths": ["http.headers.X-Content-Type-Options"] + }, + { + "combination": "all", + "controlId": "clear-site-data", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data"] + }, + { + "combination": "all", + "controlId": "referrer-policy", + "mappingState": "active", + "paths": ["http.headers.Referrer-Policy"] + }, + { + "combination": "all", + "controlId": "samesite-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.SameSite"] + }, + { + "combination": "all", + "controlId": "partitioned-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.Partitioned"] + }, + { + "combination": "all", + "controlId": "httponly-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.HttpOnly"] + }, + { + "combination": "all", + "controlId": "secure-cookie-prefixes", + "mappingState": "active", + "paths": [ + "http.headers.Set-Cookie.host_secure_prefixes", + "http.headers.Set-Cookie.http_host-http_prefixes" + ] + }, + { + "combination": "all", + "controlId": "webauthn-platform-authenticator", + "mappingState": "active", + "paths": ["api.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable_static"] + }, + { + "combination": "all", + "controlId": "webauthn-prf", + "mappingState": "active", + "paths": [ + "api.CredentialsContainer.create.publicKey_option.extensions.prf", + "api.CredentialsContainer.get.publicKey_option.extensions.prf" + ] + }, + { + "combination": "all", + "controlId": "webauthn-conditional-mediation", + "mappingState": "active", + "paths": ["api.PublicKeyCredential.isConditionalMediationAvailable_static"] + }, + { + "combination": "all", + "controlId": "permissions-policy-camera", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.camera"] + }, + { + "combination": "all", + "controlId": "permissions-policy-microphone", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.microphone"] + }, + { + "combination": "all", + "controlId": "permissions-policy-geolocation", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.geolocation"] + }, + { + "combination": "all", + "controlId": "clear-site-data-cache", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.cache"] + }, + { + "combination": "all", + "controlId": "clear-site-data-cookies", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.cookies"] + }, + { + "combination": "all", + "controlId": "clear-site-data-storage", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.storage"] + } + ], + "before": [ + { + "combination": "all", + "controlId": "content-security-policy", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy"] + }, + { + "combination": "all", + "controlId": "csp-nonces", + "mappingState": "unsupported", + "paths": [] + }, + { + "combination": "all", + "controlId": "csp-hashes", + "mappingState": "unsupported", + "paths": [] + }, + { + "combination": "all", + "controlId": "strict-dynamic", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.strict-dynamic"] + }, + { + "combination": "all", + "controlId": "csp-base-uri", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.base-uri"] + }, + { + "combination": "all", + "controlId": "csp-frame-ancestors", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.frame-ancestors"] + }, + { + "combination": "all", + "controlId": "csp-form-action", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.form-action"] + }, + { + "combination": "all", + "controlId": "csp-upgrade-insecure-requests", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.upgrade-insecure-requests"] + }, + { + "combination": "all", + "controlId": "csp-sandbox", + "mappingState": "active", + "paths": ["http.headers.Content-Security-Policy.sandbox"] + }, + { + "combination": "all", + "controlId": "trusted-types", + "mappingState": "active", + "paths": [ + "api.trustedTypes", + "http.headers.Content-Security-Policy.require-trusted-types-for" + ] + }, + { + "combination": "all", + "controlId": "subresource-integrity", + "mappingState": "active", + "paths": ["html.elements.script.integrity", "html.elements.link.integrity"] + }, + { + "combination": "any", + "controlId": "integrity-policy", + "mappingState": "active", + "paths": ["http.headers.Integrity-Policy", "http.headers.Integrity-Policy-Report-Only"] + }, + { + "combination": "all", + "controlId": "cross-origin-opener-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Opener-Policy"] + }, + { + "combination": "all", + "controlId": "cross-origin-embedder-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Embedder-Policy"] + }, + { + "combination": "all", + "controlId": "cross-origin-resource-policy", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Resource-Policy"] + }, + { + "combination": "all", + "controlId": "coep-credentialless", + "mappingState": "active", + "paths": ["http.headers.Cross-Origin-Embedder-Policy.credentialless"] + }, + { + "combination": "all", + "controlId": "origin-agent-cluster", + "mappingState": "active", + "paths": ["http.headers.Origin-Agent-Cluster"] + }, + { + "combination": "all", + "controlId": "fetch-metadata", + "mappingState": "active", + "paths": [ + "http.headers.Sec-Fetch-Dest", + "http.headers.Sec-Fetch-Mode", + "http.headers.Sec-Fetch-Site", + "http.headers.Sec-Fetch-User" + ] + }, + { + "combination": "all", + "controlId": "permissions-policy", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy"] + }, + { + "combination": "all", + "controlId": "strict-transport-security", + "mappingState": "active", + "paths": ["http.headers.Strict-Transport-Security"] + }, + { + "combination": "all", + "controlId": "x-content-type-options", + "mappingState": "active", + "paths": ["http.headers.X-Content-Type-Options"] + }, + { + "combination": "all", + "controlId": "clear-site-data", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data"] + }, + { + "combination": "all", + "controlId": "referrer-policy", + "mappingState": "active", + "paths": ["http.headers.Referrer-Policy"] + }, + { + "combination": "all", + "controlId": "samesite-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.SameSite"] + }, + { + "combination": "all", + "controlId": "partitioned-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.Partitioned"] + }, + { + "combination": "all", + "controlId": "httponly-cookies", + "mappingState": "active", + "paths": ["http.headers.Set-Cookie.HttpOnly"] + }, + { + "combination": "all", + "controlId": "secure-cookie-prefixes", + "mappingState": "active", + "paths": [ + "http.headers.Set-Cookie.host_secure_prefixes", + "http.headers.Set-Cookie.http_host-http_prefixes" + ] + }, + { + "combination": "all", + "controlId": "webauthn-platform-authenticator", + "mappingState": "active", + "paths": ["api.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable_static"] + }, + { + "combination": "all", + "controlId": "webauthn-prf", + "mappingState": "active", + "paths": [ + "api.CredentialsContainer.create.publicKey_option.extensions.prf", + "api.CredentialsContainer.get.publicKey_option.extensions.prf" + ] + }, + { + "combination": "all", + "controlId": "webauthn-conditional-mediation", + "mappingState": "active", + "paths": ["api.PublicKeyCredential.isConditionalMediationAvailable_static"] + } + ], + "id": "0ef2c89b22e868bd1b2ebc5c", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "The control catalogue mapping changed from 2.2.0 to 2.3.0.", + "type": "control_mapping_changed" + }, + { + "after": { + "status": "planned", + "version": "158" + }, + "browser": "chrome_android", + "id": "12126cbf82c39376a5ac7282", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "Chrome Android 158 was added to the selected BCD release metadata.", + "type": "browser_release_added" + }, + { + "after": { + "baseline": [ + { + "featureId": "media-capture", + "name": "Media capture", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/microphone", + "path": "http.headers.Permissions-Policy.microphone", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/mediacapture-main/#permissions-policy-integration"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } + }, + "id": "13b7d4f7f5b6940ed7e1fd84", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Permissions-Policy.microphone", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "The selected BCD path http.headers.Permissions-Policy.microphone was added.", + "type": "selected_path_added" + }, + { + "after": { + "baseline": [ + { + "featureId": "media-capture", + "name": "Media capture", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/camera", + "path": "http.headers.Permissions-Policy.camera", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/mediacapture-main/#permissions-policy-integration"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } + }, + "id": "2c6e71f3d8d01fec77d864c2", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Permissions-Policy.camera", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "The selected BCD path http.headers.Permissions-Policy.camera was added.", + "type": "selected_path_added" + }, + { + "after": { + "status": "planned", + "version": "158" + }, + "browser": "webview_android", + "id": "7b1c5b28c26f7913e25d9c18", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "WebView Android 158 was added to the selected BCD release metadata.", + "type": "browser_release_added" + }, + { + "after": { + "baseline": [ + { + "featureId": "clear-site-data", + "name": "Clearing site data", + "status": false + } + ], + "description": ""cache"", + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Clear-Site-Data#cache", + "path": "http.headers.Clear-Site-Data.cache", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-cache"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ], + "chrome_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ], + "edge": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "79", + "version_last": "126", + "version_removed": "127" + } + ], + "firefox": [ + { + "version_added": "138" + }, + { + "impl_url": "https://bugzil.la/1838506", + "version_added": "63", + "version_last": "93", + "version_removed": "94" + } + ], + "firefox_android": [ + { + "version_added": "138" + }, + { + "impl_url": "https://bugzil.la/1838506", + "version_added": "63", + "version_last": "93", + "version_removed": "94" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "28.0" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "9.0", + "version_last": "27.0", + "version_removed": "28.0" + } + ], + "webview_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ] + } + }, + "id": "8a6c685395a6e5a6a6cdf15a", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Clear-Site-Data.cache", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "The selected BCD path http.headers.Clear-Site-Data.cache was added.", + "type": "selected_path_added" + }, { "after": { - "status": "planned", - "version": "158" + "baseline": [ + { + "featureId": "clear-site-data", + "highDate": "2026-03-18", + "lowDate": "2023-09-18", + "name": "Clearing site data", + "status": "high" + } + ], + "description": ""cookies"", + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Clear-Site-Data#cookies", + "path": "http.headers.Clear-Site-Data.cookies", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-cookies"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "61" + } + ], + "chrome_android": [ + { + "version_added": "61" + } + ], + "edge": [ + { + "version_added": "79" + } + ], + "firefox": [ + { + "version_added": "63" + } + ], + "firefox_android": [ + { + "version_added": "63" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "version_added": "8.0" + } + ], + "webview_android": [ + { + "version_added": "61" + } + ] + } }, - "browser": "chrome_android", - "id": "12126cbf82c39376a5ac7282", + "id": "8bba16426f38a02f9784cfca", "observedInBcdVersion": "8.1.5", "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Clear-Site-Data.cookies", "schemaVersion": 1, "sourceTimestamp": "2026-10-08T12:46:21.707Z", - "summary": "Chrome Android 158 was added to the selected BCD release metadata.", - "type": "browser_release_added" + "summary": "The selected BCD path http.headers.Clear-Site-Data.cookies was added.", + "type": "selected_path_added" }, { "after": { - "status": "planned", - "version": "158" + "baseline": [ + { + "featureId": "geolocation", + "name": "Geolocation API", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/geolocation", + "path": "http.headers.Permissions-Policy.geolocation", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/geolocation/#permissions-policy"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } }, - "browser": "webview_android", - "id": "7b1c5b28c26f7913e25d9c18", + "id": "e8fcbe75a5b387f560615049", "observedInBcdVersion": "8.1.5", "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Permissions-Policy.geolocation", "schemaVersion": 1, "sourceTimestamp": "2026-10-08T12:46:21.707Z", - "summary": "WebView Android 158 was added to the selected BCD release metadata.", - "type": "browser_release_added" + "summary": "The selected BCD path http.headers.Permissions-Policy.geolocation was added.", + "type": "selected_path_added" + }, + { + "after": { + "baseline": [ + { + "featureId": "clear-site-data", + "highDate": "2026-03-18", + "lowDate": "2023-09-18", + "name": "Clearing site data", + "status": "high" + } + ], + "description": ""storage"", + "path": "http.headers.Clear-Site-Data.storage", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-storage"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "61" + } + ], + "chrome_android": [ + { + "version_added": "61" + } + ], + "edge": [ + { + "version_added": "79" + } + ], + "firefox": [ + { + "version_added": "63" + } + ], + "firefox_android": [ + { + "version_added": "63" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "version_added": "8.0" + } + ], + "webview_android": [ + { + "version_added": "61" + } + ] + } + }, + "id": "f5ef8b0d54c81cbc33130bce", + "observedInBcdVersion": "8.1.5", + "observedInWebFeaturesVersion": "3.42.0", + "path": "http.headers.Clear-Site-Data.storage", + "schemaVersion": 1, + "sourceTimestamp": "2026-10-08T12:46:21.707Z", + "summary": "The selected BCD path http.headers.Clear-Site-Data.storage was added.", + "type": "selected_path_added" } ] diff --git a/data/selected-bcd.json b/data/selected-bcd.json index 1d7b8bf..4a62c3d 100644 --- a/data/selected-bcd.json +++ b/data/selected-bcd.json @@ -4983,7 +4983,7 @@ "upstream": "chrome_android" } }, - "catalogueVersion": "2.2.0", + "catalogueVersion": "2.3.0", "controlMappings": [ { "combination": "all", @@ -5178,6 +5178,42 @@ "controlId": "webauthn-conditional-mediation", "mappingState": "active", "paths": ["api.PublicKeyCredential.isConditionalMediationAvailable_static"] + }, + { + "combination": "all", + "controlId": "permissions-policy-camera", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.camera"] + }, + { + "combination": "all", + "controlId": "permissions-policy-microphone", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.microphone"] + }, + { + "combination": "all", + "controlId": "permissions-policy-geolocation", + "mappingState": "active", + "paths": ["http.headers.Permissions-Policy.geolocation"] + }, + { + "combination": "all", + "controlId": "clear-site-data-cache", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.cache"] + }, + { + "combination": "all", + "controlId": "clear-site-data-cookies", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.cookies"] + }, + { + "combination": "all", + "controlId": "clear-site-data-storage", + "mappingState": "active", + "paths": ["http.headers.Clear-Site-Data.storage"] } ], "features": { @@ -5741,6 +5777,309 @@ ] } }, + "http.headers.Clear-Site-Data.cache": { + "baseline": [ + { + "featureId": "clear-site-data", + "name": "Clearing site data", + "status": false + } + ], + "description": ""cache"", + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Clear-Site-Data#cache", + "path": "http.headers.Clear-Site-Data.cache", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-cache"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ], + "chrome_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ], + "edge": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "79", + "version_last": "126", + "version_removed": "127" + } + ], + "firefox": [ + { + "version_added": "138" + }, + { + "impl_url": "https://bugzil.la/1838506", + "version_added": "63", + "version_last": "93", + "version_removed": "94" + } + ], + "firefox_android": [ + { + "version_added": "138" + }, + { + "impl_url": "https://bugzil.la/1838506", + "version_added": "63", + "version_last": "93", + "version_removed": "94" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "28.0" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "9.0", + "version_last": "27.0", + "version_removed": "28.0" + } + ], + "webview_android": [ + { + "notes": [ + "Some requests may still be taken from the cache unless the tab is reloaded or the page is requested in a new tab. See bug 364634040.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "127" + }, + { + "notes": "Setting this value may cause seconds-long hangs. See bug 40233601.", + "partial_implementation": true, + "version_added": "65", + "version_last": "126", + "version_removed": "127" + }, + { + "notes": [ + "Setting this value may prevent a page from fully loading. See bug 41343050.", + "Setting this value may cause seconds-long hangs. See bug 40233601." + ], + "partial_implementation": true, + "version_added": "61", + "version_last": "62", + "version_removed": "63" + } + ] + } + }, + "http.headers.Clear-Site-Data.cookies": { + "baseline": [ + { + "featureId": "clear-site-data", + "highDate": "2026-03-18", + "lowDate": "2023-09-18", + "name": "Clearing site data", + "status": "high" + } + ], + "description": ""cookies"", + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Clear-Site-Data#cookies", + "path": "http.headers.Clear-Site-Data.cookies", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-cookies"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "61" + } + ], + "chrome_android": [ + { + "version_added": "61" + } + ], + "edge": [ + { + "version_added": "79" + } + ], + "firefox": [ + { + "version_added": "63" + } + ], + "firefox_android": [ + { + "version_added": "63" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "version_added": "8.0" + } + ], + "webview_android": [ + { + "version_added": "61" + } + ] + } + }, + "http.headers.Clear-Site-Data.storage": { + "baseline": [ + { + "featureId": "clear-site-data", + "highDate": "2026-03-18", + "lowDate": "2023-09-18", + "name": "Clearing site data", + "status": "high" + } + ], + "description": ""storage"", + "path": "http.headers.Clear-Site-Data.storage", + "sourceFile": "http/headers/Clear-Site-Data.json", + "specUrls": ["https://w3c.github.io/webappsec-clear-site-data/#grammardef-storage"], + "status": { + "deprecated": false, + "experimental": false, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "61" + } + ], + "chrome_android": [ + { + "version_added": "61" + } + ], + "edge": [ + { + "version_added": "79" + } + ], + "firefox": [ + { + "version_added": "63" + } + ], + "firefox_android": [ + { + "version_added": "63" + } + ], + "safari": [ + { + "version_added": "17" + } + ], + "safari_ios": [ + { + "version_added": "17" + } + ], + "samsunginternet_android": [ + { + "version_added": "8.0" + } + ], + "webview_android": [ + { + "version_added": "61" + } + ] + } + }, "http.headers.Content-Security-Policy": { "baseline": [ { @@ -6837,6 +7176,201 @@ ] } }, + "http.headers.Permissions-Policy.camera": { + "baseline": [ + { + "featureId": "media-capture", + "name": "Media capture", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/camera", + "path": "http.headers.Permissions-Policy.camera", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/mediacapture-main/#permissions-policy-integration"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } + }, + "http.headers.Permissions-Policy.geolocation": { + "baseline": [ + { + "featureId": "geolocation", + "name": "Geolocation API", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/geolocation", + "path": "http.headers.Permissions-Policy.geolocation", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/geolocation/#permissions-policy"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } + }, + "http.headers.Permissions-Policy.microphone": { + "baseline": [ + { + "featureId": "media-capture", + "name": "Media capture", + "status": false + } + ], + "mdnUrl": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/microphone", + "path": "http.headers.Permissions-Policy.microphone", + "sourceFile": "http/headers/Permissions-Policy.json", + "specUrls": ["https://w3c.github.io/mediacapture-main/#permissions-policy-integration"], + "status": { + "deprecated": false, + "experimental": true, + "standardTrack": true + }, + "support": { + "chrome": [ + { + "version_added": "88" + } + ], + "chrome_android": [ + { + "version_added": "88" + } + ], + "edge": [ + { + "version_added": "88" + } + ], + "firefox": [ + { + "version_added": false + } + ], + "firefox_android": [ + { + "version_added": false + } + ], + "safari": [ + { + "version_added": false + } + ], + "safari_ios": [ + { + "version_added": false + } + ], + "samsunginternet_android": [ + { + "version_added": "15.0" + } + ], + "webview_android": [ + { + "version_added": "88" + } + ] + } + }, "http.headers.Referrer-Policy": { "baseline": [ { @@ -7708,7 +8242,7 @@ } } }, - "schemaFingerprint": "55e3832ebde9d4644e72e418bfda3bc9f2104f195a589da318a9fad1cde9a403", + "schemaFingerprint": "40f79e0b62093f8aec75a0f6e647bccdc51576157c45ceae6fd12d92d2f6b585", "schemaVersion": 2, "webFeaturesVersion": "3.42.0" } diff --git a/data/source-history.json b/data/source-history.json index 13ae44a..4aeee4e 100644 --- a/data/source-history.json +++ b/data/source-history.json @@ -90,6 +90,19 @@ "pathCount": 36, "schemaFingerprint": "55e3832ebde9d4644e72e418bfda3bc9f2104f195a589da318a9fad1cde9a403", "webFeaturesVersion": "3.42.0" + }, + { + "associatedEventCount": 7, + "baselineAssociationCount": 34, + "bcdTimestamp": "2026-10-08T12:46:21.707Z", + "bcdVersion": "8.1.5", + "browserCount": 9, + "catalogueVersion": "2.3.0", + "controlCount": 36, + "id": "71e40aeb517f86983a272a04", + "pathCount": 42, + "schemaFingerprint": "40f79e0b62093f8aec75a0f6e647bccdc51576157c45ceae6fd12d92d2f6b585", + "webFeaturesVersion": "3.42.0" } ], "schemaVersion": 1 diff --git a/data/wpt-snapshot.json b/data/wpt-snapshot.json new file mode 100644 index 0000000..f0c4834 --- /dev/null +++ b/data/wpt-snapshot.json @@ -0,0 +1,11300 @@ +{ + "reviewedOn": "2026-10-11", + "runs": [ + { + "browser": "firefox", + "browserVersion": "157.0", + "channel": "stable", + "completedAt": "2026-10-06T11:50:28.028Z", + "id": "4877098740350976", + "os": "linux", + "osVersion": "22.04", + "revision": "cc74d2669f5de548e808779877d1d33339ec5115", + "startedAt": "2026-10-06T10:36:34.451Z" + }, + { + "browser": "safari", + "browserVersion": "27.0 (22625.1.29.11.27)", + "channel": "stable", + "completedAt": "2026-10-06T09:13:55.471Z", + "id": "5164107446878208", + "os": "mac", + "osVersion": "27.0", + "revision": "cc74d2669f5de548e808779877d1d33339ec5115", + "startedAt": "2026-10-06T06:14:03.64Z" + }, + { + "browser": "chrome", + "browserVersion": "154.0.8037.92", + "channel": "stable", + "completedAt": "2026-10-06T11:57:16.569Z", + "id": "6218298311311360", + "os": "linux", + "osVersion": "22.04", + "revision": "cc74d2669f5de548e808779877d1d33339ec5115", + "startedAt": "2026-10-06T07:44:01.102Z" + } + ], + "schemaVersion": 1, + "suites": [ + { + "path": "permissions-policy", + "responseSha256": "150245d1d61d5ee8bd787fd2cfb3d5520a0db0965f2af0140d8ba5b382f5489c", + "returnedTests": 161, + "tests": [ + { + "path": "/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/bluetooth-allowed-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/bluetooth-default-permissions-policy.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/bluetooth-disabled-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-click-handler.tentative.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-default-permissions-policy.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-disabled-by-permissions-policy-cross-origin.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-disabled-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-disabled.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-enabled.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-focused-frame-descendant-cross-origin.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-focused-frame-descendant-remote.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-focused-frame-descendant.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 7 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 7 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-setter-policy.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/focus-without-user-activation-target-frame-state-ignored.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/permissions-policy-header-host-wildcard.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/permissions-policy-header-port-wildcard.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/permissions-policy-header-scheme-only.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/private-state-token-redemption-default-permissions-policy.tentative.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/private-state-token-redemption-supported-by-permissions-policy.tentative.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-embed.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-frameset.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.html?urlType=blank", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.html?urlType=blob", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.html?urlType=data", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.html?urlType=srcdoc", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-allowed-object.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-embed.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-frameset.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=blank", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=blob", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=data", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=srcdoc", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-object.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed-subframe.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/unload-disallowed.tentative.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/vertical-scroll-disabled-scrollbar-tentative.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "F", + "total": 0 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "F", + "total": 0 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "F", + "total": 0 + } + ] + }, + { + "path": "/permissions-policy/experimental-features/vertical-scroll-scrollintoview.tentative.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/historical-feature-policy-header.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/historical.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/permissions-policy/idlharness.window.html", + "results": [ + { + "passes": 22, + "runId": "4877098740350976", + "status": "O", + "total": 44 + }, + { + "passes": 22, + "runId": "5164107446878208", + "status": "O", + "total": 44 + }, + { + "passes": 32, + "runId": "6218298311311360", + "status": "O", + "total": 44 + } + ] + }, + { + "path": "/permissions-policy/navigate-to-blob.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/payment-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/payment-allowed-by-permissions-policy-attribute.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/permissions-policy/payment-default-permissions-policy.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/payment-extension-allowed-by-permissions-policy-attribute.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/payment-supported-by-permissions-policy.tentative.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-allowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 78 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 78 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 78 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-allowed-for-self.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 86 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 86 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 86 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-allowed-for-some-override.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 32 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 32 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 32 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-allowed-for-some.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 76 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 76 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 76 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-disallowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 78 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 78 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 78 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-frame-policy-timing.https.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-allowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 7 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 7 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 7 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-allowed-for-malformed-wildcard.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 7 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 7 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 7 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-allowed-for-self.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 5 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 5 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 5 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-allowed-for-some.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 10 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 10 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 10 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-allowed-for-wildcard.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 9 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 9 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 9 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-declined.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 10 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 10 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 10 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-header-policy-disallowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 5 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 5 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 5 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-javascript-url-frame-policy.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-nested-header-policy-allowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 6 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-nested-header-policy-allowed-for-self.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 6 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-nested-header-policy-disallowed-for-all.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 6 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-opaque-origin-history.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/permissions-policy-opaque-origin.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-allowed-by-permissions-policy-attribute.https.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-allowed-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-default-permissions-policy.https.sub.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-disabled-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/permissions-policy/picture-in-picture-supported-by-permissions-policy.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/policy-extends-to-sandbox.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/private-state-token-issue-allowed-by-permissions-policy-attribute.tentative.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/private-state-token-issue-disabled-by-permissions-policy.tentative.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/permissions-policy/private-state-token-issue-enabled-by-permissions-policy.tentative.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/permissions-policy/private-state-token-issue-supported-by-permissions-policy.tentative.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/bluetooth-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/bluetooth-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/camera-potential-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/camera-potential-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/camera-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/camera-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/encrypted-media-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/encrypted-media-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/fullscreen-report-only.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/fullscreen-reporting.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/generic-sensor-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/generic-sensor-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/geolocation-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/geolocation-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "E", + "total": 0 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/microphone-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/microphone-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/midi-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/midi-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/payment-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/payment-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "E", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/picture-in-picture-report-only.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/picture-in-picture-reporting.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/report-only-and-enforce.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/report-only-single-endpoint.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/report-to-multiple-endpoints.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/report-to-single-endpoint.https.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/screen-wake-lock-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/serial-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/reporting/serial-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/permissions-policy/reporting/sync-xhr-report-only.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/sync-xhr-reporting.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/usb-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/usb-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "E", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "E", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/xr-report-only.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/reporting/xr-reporting.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/permissions-policy/speaker-selection-allowed-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/permissions-policy/speaker-selection-disabled-by-permissions-policy.https.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + } + ] + }, + { + "path": "clear-site-data", + "responseSha256": "4dbadd51a6517e6aadc8708bbd8aa45873a7e80719fcf354a491ba4c6d8c63d0", + "returnedTests": 31, + "tests": [ + { + "path": "/clear-site-data/clear-cache-bfcache-partitioning.tentative.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/clear-site-data/clear-cache-bfcache.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/clear-site-data/clear-cache-partitioning.tentative.https.html", + "results": [ + { + "passes": 10, + "runId": "4877098740350976", + "status": "O", + "total": 10 + }, + { + "passes": 7, + "runId": "5164107446878208", + "status": "O", + "total": 10 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 10 + } + ] + }, + { + "path": "/clear-site-data/clear-cache.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 10, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/clear-site-data/executionContexts.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "T", + "total": 2 + } + ] + }, + { + "path": "/clear-site-data/navigation-insecure.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/clear-site-data/navigation.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/clear-site-data/no-cors-fetch-iframe.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/no-cors-fetch-window.https.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "E", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/resource.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/clear-site-data/set-cookie-after-clear-all.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/set-cookie-after-clear-cookies.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/set-cookie-before-clear-all.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/set-cookie-before-clear-cookies.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/clear-site-data/storage.https.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "T", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 10, + "runId": "6218298311311360", + "status": "O", + "total": 10 + } + ] + } + ] + }, + { + "path": "content-security-policy/script-src", + "responseSha256": "4f8181d91982a3086fd0ace7b452d133b5d6293875513de8db5ed1e398b3b1dc", + "returnedTests": 90, + "tests": [ + { + "path": "/content-security-policy/script-src/audioworklet-eval-blocked.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/audioworklet-trusted-types-eval-blocked.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/eval-allowed-in-report-only-mode.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-1.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-3.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-7.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-9.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/utf-8-lone-surrogate.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/hash-always-converted-to-utf-8/utf-8.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/injected-inline-script-allowed.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/injected-inline-script-blocked.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/javascript-window-open-blocked.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/non-nonceable-elements.html", + "results": [ + { + "passes": 10, + "runId": "4877098740350976", + "status": "O", + "total": 10 + }, + { + "passes": 7, + "runId": "5164107446878208", + "status": "O", + "total": 10 + }, + { + "passes": 10, + "runId": "6218298311311360", + "status": "O", + "total": 10 + } + ] + }, + { + "path": "/content-security-policy/script-src/nonce-enforce-blocked.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/nonce-with-trailing-characters-blocked.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_1.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_10_1.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_10.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_2_1.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_2.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_3.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_4_1.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_4_2.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-1_4.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-event-handler-on-inline-script.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-overrides-default-src.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-sri_hash.sub.html", + "results": [ + { + "passes": 12, + "runId": "4877098740350976", + "status": "O", + "total": 12 + }, + { + "passes": 12, + "runId": "5164107446878208", + "status": "O", + "total": 12 + }, + { + "passes": 12, + "runId": "6218298311311360", + "status": "O", + "total": 12 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_eval.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_hashes.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_modulepreload_parser_inserted_module.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_new_function.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_module.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_module_empty_hash.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_module.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html", + "results": [ + { + "passes": 10, + "runId": "4877098740350976", + "status": "O", + "total": 10 + }, + { + "passes": 10, + "runId": "5164107446878208", + "status": "O", + "total": 10 + }, + { + "passes": 10, + "runId": "6218298311311360", + "status": "O", + "total": 10 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_worker-importScripts.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-trusted_types_eval_DedicatedWorker.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "T", + "total": 2 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "E", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/content-security-policy/script-src/script-src-wildcards-disallowed.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-allowed.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-base64url-converts-to-base64.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-basic-blocked-error-event.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-basic-blocked.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-case-insensitive.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-changed-1.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-changed-2.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-default-src.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-ignore-unsafeinline.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scripthash-unicode-normalization.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-allowed.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-changed-1.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-changed-2.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-redirect.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/scriptnonce-specified-source.sub.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/script-url-allowed-by-hash.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 28 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 28 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 28 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/script-url-blocked-report-contains-hash-dedicated-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/script-url-blocked-report-contains-hash-service-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/script-url-blocked-report-contains-hash-shared-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/script-url-blocked-report-contains-hash.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "E", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "E", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/tentative/url-hash-in-header-and-meta.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-data-set-timeout.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-eval-blocked.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-function-function-blocked.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-importscripts.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-script-src.sub.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/content-security-policy/script-src/worker-set-timeout.sub.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + } + ] + }, + { + "path": "html/cross-origin-opener-policy", + "responseSha256": "d116721b6823af4ff8fdaabb5ccb919e7ca9fa51fb11641d0172ca2fe4080a4f", + "returnedTests": 161, + "tests": [ + { + "path": "/html/cross-origin-opener-policy/blob-popup.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-blob-popup.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-navigate-popup.https.html?0-1", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-navigate-popup.https.html?2-3", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-navigate-popup.https.html?4-last", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-redirect.https.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-with-cross-origin.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-with-same-origin.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coep-with-same-site.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-coep-sandbox.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-csp-sandbox.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-navigated-popup.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-noopener-allow-popups.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 9 + }, + { + "passes": 9, + "runId": "5164107446878208", + "status": "O", + "total": 9 + }, + { + "passes": 9, + "runId": "6218298311311360", + "status": "O", + "total": 9 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-popup-opener-navigates.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-same-origin-allow-popups-document-write.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-sandbox-cuts-opener.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-sandbox-redirects-cuts-opener.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/coop-sandbox.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-failures.https.html?1-4", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-failures.https.html?12-last", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-failures.https.html?5-8", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-failures.https.html?9-12", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-repeated.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/header-parsing-successes.https.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?1-2", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?3-4", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?5-6", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?7-8", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?9-last", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?1-2", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?11-12", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?13-14", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?15-16", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?17-last", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?3-4", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?5-6", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?7-8", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/javascript-url.https.html?9-10", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/no-https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-coop-by-sw.https.html?1-4", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-coop-by-sw.https.html?5-last", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-cache.https.html?0-1", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-cache.https.html?2-3", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-cache.https.html?4-5", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-cache.https.html?6-7", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-cache.https.html?8-last", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/popup-with-structured-header.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro_cross-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-focus.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-length.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-named-getter.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "E", + "total": 0 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/access-reporting/reporting-observer.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 4 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "T", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/document-reporting/report-only-four-reports.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/document-reporting/report-to-both_coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-same-origin-allow-popups.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-unsafe-none.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-four-reports.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-from-unsafe-none.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-report-to.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-with-coep-report-only.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-with-coep.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-popup.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-report-to-must-be-string.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-allow-popups-report-to.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-coep-report-to.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "T", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-report-to.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "T", + "total": 7 + }, + { + "passes": 7, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 7, + "runId": "6218298311311360", + "status": "O", + "total": 7 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-unsafe-none-report-to.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/reporting/tentative/access-to-noopener-page-from-no-coop-ro.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/resource-popup.https.html", + "results": [ + { + "passes": 12, + "runId": "4877098740350976", + "status": "O", + "total": 12 + }, + { + "passes": 7, + "runId": "5164107446878208", + "status": "T", + "total": 12 + }, + { + "passes": 12, + "runId": "6218298311311360", + "status": "O", + "total": 12 + } + ] + }, + { + "path": "/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups-restrict-properties.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + } + ] + }, + { + "path": "html/cross-origin-embedder-policy", + "responseSha256": "a569846ac4ba84e7b564f50d81df83f90330ff32c3020bf04fc6b558a931ff2d", + "returnedTests": 104, + "tests": [ + { + "path": "/html/cross-origin-embedder-policy/about-blank-popup.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/blob.https.html", + "results": [ + { + "passes": 9, + "runId": "4877098740350976", + "status": "O", + "total": 9 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "T", + "total": 9 + }, + { + "passes": 9, + "runId": "6218298311311360", + "status": "O", + "total": 9 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cache-storage-reporting-dedicated-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cache-storage-reporting-document.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cache-storage-reporting-service-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/coep-frame-javascript.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/coep-on-response-from-service-worker.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html?dedicated_worker", + "results": [ + { + "passes": 14, + "runId": "4877098740350976", + "status": "O", + "total": 14 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 14 + }, + { + "passes": 14, + "runId": "6218298311311360", + "status": "O", + "total": 14 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html?document", + "results": [ + { + "passes": 14, + "runId": "4877098740350976", + "status": "O", + "total": 14 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 14 + }, + { + "passes": 14, + "runId": "6218298311311360", + "status": "O", + "total": 14 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html?service_worker", + "results": [ + { + "passes": 14, + "runId": "4877098740350976", + "status": "O", + "total": 14 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 14 + }, + { + "passes": 14, + "runId": "6218298311311360", + "status": "O", + "total": 14 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html?shared_worker", + "results": [ + { + "passes": 14, + "runId": "4877098740350976", + "status": "O", + "total": 14 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 14 + }, + { + "passes": 14, + "runId": "6218298311311360", + "status": "O", + "total": 14 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cache.window.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/cross-origin-isolated.window.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html", + "results": [ + { + "passes": 7, + "runId": "4877098740350976", + "status": "O", + "total": 7 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "T", + "total": 7 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/fetch.https.window.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 12, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html?1-4", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html?5-9", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html?9-last", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.html?1-4", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.html?5-last", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 2 + }, + { + "passes": 2, + "runId": "6218298311311360", + "status": "O", + "total": 2 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-redirect.https.window.html?1-4", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-redirect.https.window.html?5-last", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html?1-4", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html?5-9", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html?9-last", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/iframe.window.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/image.https.window.html", + "results": [ + { + "passes": 7, + "runId": "4877098740350976", + "status": "O", + "total": 7 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 7, + "runId": "6218298311311360", + "status": "O", + "total": 7 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/link.https.window.html", + "results": [ + { + "passes": 7, + "runId": "4877098740350976", + "status": "O", + "total": 7 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 7, + "runId": "6218298311311360", + "status": "O", + "total": 7 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/redirect.window.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 2, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "T", + "total": 13 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "T", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/script.https.window.html", + "results": [ + { + "passes": 7, + "runId": "4877098740350976", + "status": "O", + "total": 7 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 7 + }, + { + "passes": 7, + "runId": "6218298311311360", + "status": "O", + "total": 7 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=cross_origin&worker_coep=credentialless&window_coep=credentialless", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=cross_origin&worker_coep=credentialless&window_coep=none", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=cross_origin&worker_coep=none&window_coep=credentialless", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=cross_origin&worker_coep=none&window_coep=none", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=same_origin&worker_coep=credentialless&window_coep=credentialless", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=same_origin&worker_coep=credentialless&window_coep=none", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=same_origin&worker_coep=none&window_coep=credentialless", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html?request_origin=same_origin&worker_coep=none&window_coep=none", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/video.https.window.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/credentialless/websocket.https.window.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cross-origin-isolated-permission-iframe.https.window.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/cross-origin-isolated-permission-worker.https.window.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 15 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 15 + }, + { + "passes": 14, + "runId": "6218298311311360", + "status": "O", + "total": 15 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/data.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "5164107446878208", + "status": "O", + "total": 8 + }, + { + "passes": 8, + "runId": "6218298311311360", + "status": "O", + "total": 8 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/dedicated-worker.https.html", + "results": [ + { + "passes": 11, + "runId": "4877098740350976", + "status": "O", + "total": 14 + }, + { + "passes": 11, + "runId": "5164107446878208", + "status": "O", + "total": 14 + }, + { + "passes": 12, + "runId": "6218298311311360", + "status": "O", + "total": 14 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/header-parsing.https.html", + "results": [ + { + "passes": 15, + "runId": "4877098740350976", + "status": "T", + "total": 25 + }, + { + "passes": 25, + "runId": "5164107446878208", + "status": "O", + "total": 25 + }, + { + "passes": 25, + "runId": "6218298311311360", + "status": "O", + "total": 25 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/iframe-history-none-require-corp.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/javascript.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/meta-http-equiv.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/no-secure-context.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/non-initial-about-blank.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/none-load-from-cache-storage.https.html", + "results": [ + { + "passes": 29, + "runId": "4877098740350976", + "status": "O", + "total": 29 + }, + { + "passes": 29, + "runId": "5164107446878208", + "status": "O", + "total": 29 + }, + { + "passes": 29, + "runId": "6218298311311360", + "status": "O", + "total": 29 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/none-sw-from-none.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/none-sw-from-require-corp.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/none.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.serviceworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.serviceworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.sharedworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.sharedworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-credentialless.tentative.https.any.worker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.serviceworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.serviceworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.sharedworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.sharedworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-require-corp.tentative.https.any.worker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.serviceworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.serviceworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.sharedworker-module.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.sharedworker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reflection-unsafe-none.tentative.https.any.worker.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/report-only-require-corp.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-navigation.https.html", + "results": [ + { + "passes": 14, + "runId": "4877098740350976", + "status": "T", + "total": 30 + }, + { + "passes": 30, + "runId": "5164107446878208", + "status": "O", + "total": 30 + }, + { + "passes": 28, + "runId": "6218298311311360", + "status": "O", + "total": 30 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-report-to-must-be-string.https.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "T", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html", + "results": [ + { + "passes": 2, + "runId": "4877098740350976", + "status": "T", + "total": 26 + }, + { + "passes": 12, + "runId": "5164107446878208", + "status": "T", + "total": 26 + }, + { + "passes": 24, + "runId": "6218298311311360", + "status": "T", + "total": 26 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-to-document-reporting-endpoint.https.window.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html", + "results": [ + { + "passes": 0, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 0, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 0, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "T", + "total": 9 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "T", + "total": 9 + }, + { + "passes": 9, + "runId": "6218298311311360", + "status": "O", + "total": 9 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/reporting-to-worker-owner.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "T", + "total": 9 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "T", + "total": 9 + }, + { + "passes": 9, + "runId": "6218298311311360", + "status": "O", + "total": 9 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-about-blank.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-about-srcdoc.https.html", + "results": [ + { + "passes": 3, + "runId": "4877098740350976", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "5164107446878208", + "status": "O", + "total": 3 + }, + { + "passes": 3, + "runId": "6218298311311360", + "status": "O", + "total": 3 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-cached-images.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html", + "results": [ + { + "passes": 27, + "runId": "4877098740350976", + "status": "O", + "total": 29 + }, + { + "passes": 29, + "runId": "5164107446878208", + "status": "O", + "total": 29 + }, + { + "passes": 29, + "runId": "6218298311311360", + "status": "O", + "total": 29 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 5 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 5 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-sw-from-none.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https.html", + "results": [ + { + "passes": 13, + "runId": "4877098740350976", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "5164107446878208", + "status": "O", + "total": 13 + }, + { + "passes": 13, + "runId": "6218298311311360", + "status": "O", + "total": 13 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-sw.https.html", + "results": [ + { + "passes": 6, + "runId": "4877098740350976", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 6 + }, + { + "passes": 6, + "runId": "6218298311311360", + "status": "O", + "total": 6 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp-worker-script-revalidation.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/require-corp.https.html", + "results": [ + { + "passes": 16, + "runId": "4877098740350976", + "status": "O", + "total": 16 + }, + { + "passes": 16, + "runId": "5164107446878208", + "status": "O", + "total": 16 + }, + { + "passes": 16, + "runId": "6218298311311360", + "status": "O", + "total": 16 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/sandbox.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html", + "results": [ + { + "passes": 4, + "runId": "4877098740350976", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "5164107446878208", + "status": "O", + "total": 4 + }, + { + "passes": 4, + "runId": "6218298311311360", + "status": "O", + "total": 4 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/shared-workers.https.html", + "results": [ + { + "passes": 5, + "runId": "4877098740350976", + "status": "O", + "total": 11 + }, + { + "passes": 6, + "runId": "5164107446878208", + "status": "O", + "total": 11 + }, + { + "passes": 5, + "runId": "6218298311311360", + "status": "O", + "total": 11 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/srcdoc.https.html", + "results": [ + { + "passes": 1, + "runId": "4877098740350976", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "5164107446878208", + "status": "O", + "total": 1 + }, + { + "passes": 1, + "runId": "6218298311311360", + "status": "O", + "total": 1 + } + ] + }, + { + "path": "/html/cross-origin-embedder-policy/worker-inheritance.sub.https.html", + "results": [ + { + "passes": 8, + "runId": "4877098740350976", + "status": "O", + "total": 9 + }, + { + "passes": 5, + "runId": "5164107446878208", + "status": "O", + "total": 9 + }, + { + "passes": 9, + "runId": "6218298311311360", + "status": "O", + "total": 9 + } + ] + } + ] + } + ] +} diff --git a/docs/conformance-evidence.md b/docs/conformance-evidence.md index c284b4c..471293a 100644 --- a/docs/conformance-evidence.md +++ b/docs/conformance-evidence.md @@ -14,7 +14,9 @@ It does not answer: > Is this application configured securely? -## Reviewed source +## Reviewed sources + +The original suite registry uses: - **Repository:** - **Revision:** `af38980d2fcd74af19a226f5f651051cc15940ed` @@ -25,16 +27,61 @@ Pinned source links use the reviewed revision. Links to wpt.fyi are deliberately labelled as current results because the dashboard changes independently of the reviewed registry. +The six directive mappings for camera, microphone, geolocation, cache, cookies +and storage use exact file selections reviewed on 2026-10-11 at revision +`cc74d2669f5de548e808779877d1d33339ec5115`. Each mapping displays its own review date, +revision, selected file links, scope and limitations. The original suite links +retain their earlier review metadata. + +The Permissions Policy selections exercise enforced, report-only and, for +camera, potential-violation reporting. Their outcomes also depend on reporting +support and the relevant API or test automation. They do not isolate basic +directive enforcement. The cache files include wildcard-clearing cases and +tentative partitioning tests. The cookie files test Set-Cookie ordering within +a clearing response; the storage file includes setup checks and selects +backends available in that browser. + +The separate retained snapshot in `data/wpt-snapshot.json` contains five exact +directory prefixes from aligned, stable-labelled runs. Each run records its own +full test-source revision, browser build, operating system, start and completion +times, and public run ID. These revisions are independent of the older suite-link +registry above. Each suite records the SHA-256 of its source API response, the +returned search count, and every result retained after exact-prefix filtering. +The source API's substring matches outside that prefix are excluded explicitly. + +File outcomes and subtest counts are displayed separately. OK describes a +completed harness and does not imply all subtests passed. Pass and Fail can also +describe tests without a harness; zero reported subtests are not a passing test. +Complete runtime flags and a full expected-test inventory are not supplied by +these summaries. The snapshot does not change browser compatibility outcomes. + +Directive pages select only the reviewed exact filenames from this unchanged +snapshot. They show selected, retained and parent-directory counts separately; +subtest totals include every reported subtest in each selected file. No +subtest-level directive pass rate is inferred. Missing files remain visible as +gaps, and missing browser slots retain their No result status. A changed run +revision makes a file selection incomparable until it is reviewed at that +revision. No parent-suite total is substituted. Response fingerprints and API +queries still identify the complete source directory response before selection. + +`npm run wpt:import -- ` validates already +downloaded responses named `wpt-search-0.json` through `wpt-search-4.json` in the +suite order in `src/wpt-snapshot.ts`. It makes no network request. Imports refuse +mixed run metadata, unaligned revisions, old aggregation semantics, duplicate +references and exceeded bounds. Normal builds validate the retained snapshot +without refreshing it. + ## Mapping rule A mapping is retained only when the reviewed repository contains an exact suite -path whose scope materially covers the browser behaviour in the control +path or exact file selection whose scope materially covers the browser behaviour in the control definition. Mappings may identify: - one focused suite, such as `content-security-policy/base-uri`; - several complementary suites, such as CSP hash behaviour for script and style; +- exact files within a broader suite, with their own reviewed source revision; - a broader protocol suite when a feature is tested within it, such as WebAuthn. The registry does not infer a mapping from a related HTTPS, cookie, or browser @@ -70,6 +117,10 @@ The project keeps these claims separate: 5. Application testing evaluates the actual routes, policies, content, and runtime behaviour of a deployment. +Directive conformance mappings do not change the offline assessment's +`not_evaluated` application findings. Checking a supplied application's individual +directives remains a separate capability. + No earlier layer substitutes for the later one. A passing conformance test does not establish that an application deployed a control correctly, selected the right policy, covered every route, or is free from browser defects. diff --git a/docs/data-contract.md b/docs/data-contract.md index 24cfb49..4f10790 100644 --- a/docs/data-contract.md +++ b/docs/data-contract.md @@ -389,5 +389,16 @@ upstream result mirror. Its review metadata contains: Each control has exactly one mapping with a `mapped` or `not_mapped` state, zero to four exact suite paths, a bounded scope statement, and a bounded -limitation. Source links are pinned to the reviewed revision. Dashboard links -are visibly current and do not enter compatibility calculations. +limitation. A suite can select up to four exact test files instead of the whole +directory. File selections carry their own source revision and review date; +older directory mappings retain the original registry metadata. Source links +are pinned to the applicable review. Dashboard links are visibly current and do +not enter compatibility calculations. + +Retained directive results require the selection and all browser runs to share +the exact test-source revision. A mismatch is incomparable. Missing selected +files remain explicit and never cause parent-suite totals to be substituted. +Counts describe whole selected files, including any setup and complementary +subtests; they do not isolate directive-only pass rates or establish application +evidence. Source response digests continue to identify the complete downloaded +directory response before selection. diff --git a/docs/legal-and-licensing.md b/docs/legal-and-licensing.md index ac0fd15..096fb71 100644 --- a/docs/legal-and-licensing.md +++ b/docs/legal-and-licensing.md @@ -42,17 +42,21 @@ Links do not incorporate specification text into the project licence. ## Web Platform Tests -ControlCurrent includes project-authored factual mappings to suite paths in: +ControlCurrent includes project-authored factual mappings to suite paths and +exact file selections in: - **Source:** Web Platform Tests - **Repository:** -- **Reviewed revision:** `af38980d2fcd74af19a226f5f651051cc15940ed` +- **Original suite-link revision:** `af38980d2fcd74af19a226f5f651051cc15940ed` +- **Directive file-selection revision:** `cc74d2669f5de548e808779877d1d33339ec5115` - **Licence:** BSD 3-Clause -The project does not copy WPT source, test bodies, expectations, or wpt.fyi -result data. It retains exact suite paths, pinned source links, current -dashboard links, and original scope and limitation statements. Links do not -incorporate WPT or dashboard content into the project licence. +The project does not copy WPT source, test bodies, expectations or raw logs. +It retains exact suite and file paths, pinned source links, current dashboard links, +and original scope and limitation statements. A bounded projection of public +wpt.fyi result counts, statuses and run metadata identifies each original run +and source-response digest. Neither the source licence nor the project licence +relicenses linked dashboard content or reports from their original producers. ## Client-side HTML parsing diff --git a/e2e/audit-boundaries.spec.ts b/e2e/audit-boundaries.spec.ts index 7fb39d3..190bef1 100644 --- a/e2e/audit-boundaries.spec.ts +++ b/e2e/audit-boundaries.spec.ts @@ -564,10 +564,10 @@ test("planning shows exact bundled timestamps and local source age beside both f page }) => { await page.clock.setFixedTime(new Date("2026-10-10T12:00:00.000Z")); - await page.goto("/planner/"); - const contexts = page.locator(".source-context"); - await expect(contexts).toHaveCount(2); - for (const context of await contexts.all()) { + for (const path of ["/planner/", "/minimums/"]) { + await page.goto(path); + const context = page.locator(".source-context"); + await expect(context).toHaveCount(1); await expect(context.locator("time")).toHaveAttribute( "datetime", selectedSnapshot.bcdTimestamp diff --git a/e2e/design.spec.ts b/e2e/design.spec.ts new file mode 100644 index 0000000..a782292 --- /dev/null +++ b/e2e/design.spec.ts @@ -0,0 +1,240 @@ +import AxeBuilder from "@axe-core/playwright"; +import { expect, test } from "@playwright/test"; +import { readFileSync } from "node:fs"; +import { selectedSnapshotSchema, changeEventSchema } from "../src/contracts"; +import { evaluateProfile } from "../src/evaluate"; +import { BROWSER_IDS } from "../src/browsers"; +import { browserNames, outcomeLabels } from "../src/format"; +import { SECURITY_CONTROLS } from "../src/catalogue"; + +const selectedSnapshot = selectedSnapshotSchema.parse( + JSON.parse(readFileSync(new URL("../data/selected-bcd.json", import.meta.url), "utf8")) as unknown +); +const changeEvents = changeEventSchema + .array() + .parse( + JSON.parse( + readFileSync(new URL("../data/change-events.json", import.meta.url), "utf8") + ) as unknown + ); +const currentProfile = { + schemaVersion: 1 as const, + name: "Current source fixture", + baselines: BROWSER_IDS.map((browser) => { + const release = selectedSnapshot.browsers[browser].releases + .filter((item) => item.status === "current") + .at(-1); + if (!release) throw new Error(`Current release missing: ${browser}`); + return { browser, minimumVersion: release.version }; + }) +}; +const currentEvaluation = evaluateProfile(selectedSnapshot, currentProfile); +test("the support instrument keeps every bundled browser result and explanation @workflow", async ({ + page +}) => { + const externalRequests: string[] = []; + page.on("request", (request) => { + if (new URL(request.url()).hostname !== "127.0.0.1") externalRequests.push(request.url()); + }); + await page.goto("/"); + const selector = page.getByLabel("Choose a protection", { exact: true }); + await expect(selector.locator("option")).toHaveCount(SECURITY_CONTROLS.length); + const outcomes = new Set(); + for (const control of SECURITY_CONTROLS) { + await selector.selectOption(control.id); + const evaluations = currentEvaluation.results[control.id]; + if (!evaluations) throw new Error(`Missing source fixture: ${control.id}`); + await expect(page.locator(".circuit-board h2")).toHaveText(control.name); + await expect(page.locator("#circuit-selection-status")).toContainText(control.shortName); + const terminals = page.locator("[data-circuit-browser]"); + await expect(terminals).toHaveCount(BROWSER_IDS.length); + const readings = await terminals.evaluateAll((buttons) => + buttons.map((button) => ({ + browser: (button as HTMLElement).dataset.circuitBrowser, + name: button.querySelector(".terminal-name > span")?.textContent.trim(), + version: button.querySelector(".terminal-name strong")?.textContent.trim(), + outcome: button.querySelector(".circuit-status > span")?.textContent.trim() + })) + ); + expect(readings).toEqual( + evaluations.map((result) => ({ + browser: result.browser, + name: browserNames[result.browser], + version: result.minimumVersion, + outcome: outcomeLabels[result.outcome] + })) + ); + for (const result of evaluations) outcomes.add(result.outcome); + const result = evaluations.find((item) => item.browser === "firefox"); + if (!result) throw new Error("The Firefox source fixture is missing."); + await page.locator('[data-circuit-browser="firefox"]').click(); + await expect(page.locator('[data-circuit-browser][aria-pressed="true"]')).toHaveCount(1); + await expect(page.locator("[data-reading-heading]")).toHaveText( + `Firefox ${result.minimumVersion} · ${outcomeLabels[result.outcome]}` + ); + await expect(page.locator("[data-reading-body]")).toHaveText(result.explanation); + await expect(page.locator(".circuit-source-link")).toHaveAttribute( + "href", + `/controls/${control.id}/` + ); + } + expect(outcomes.has("unknown")).toBe(true); + expect(outcomes.has("unavailable")).toBe(true); + expect(outcomes.has("available_unqualified")).toBe(true); + expect(externalRequests).toEqual([]); +}); + +test("the protection dial supports keyboard steps, pointer selection and narrow layouts @workflow", async ({ + page +}) => { + await page.goto("/"); + const selector = page.getByLabel("Choose a protection", { exact: true }); + const first = SECURITY_CONTROLS[0]; + const last = SECURITY_CONTROLS.at(-1); + if (!last) throw new Error("The catalogue fixture is empty."); + await selector.selectOption(first.id); + await page.getByRole("button", { name: "Previous protection", exact: true }).focus(); + await page.keyboard.press("Enter"); + await expect(selector).toHaveValue(last.id); + await expect(page.locator("#circuit-dial-number")).toHaveText(String(SECURITY_CONTROLS.length)); + await page.getByRole("button", { name: "Next protection", exact: true }).focus(); + await page.keyboard.press("Space"); + await expect(selector).toHaveValue(first.id); + await expect(page.locator("#circuit-dial-number")).toHaveText("01"); + await page.locator(".dial-tick").nth(5).click(); + await expect(selector).toHaveValue(SECURITY_CONTROLS[5].id); + await page.locator('[data-circuit-browser="safari"]').focus(); + await page.keyboard.press("Enter"); + await expect(page.locator('[data-circuit-browser="safari"]')).toHaveAttribute( + "aria-pressed", + "true" + ); + await selector.selectOption("csp-nonces"); + await expect(page.locator('[data-circuit-browser][aria-pressed="true"]')).toHaveCount(0); + await expect(page.locator("[data-reading-heading]")).toHaveText("Open a browser reading."); + await page.setViewportSize({ width: 320, height: 800 }); + await expect(selector).toBeVisible(); + expect(await page.evaluate(() => document.documentElement.scrollWidth)).toBeLessThanOrEqual(320); + expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]); +}); + +test("both planning tasks remain reachable through the section navigation @workflow", async ({ + page +}) => { + await page.goto("/"); + await page + .getByRole("navigation", { name: "Primary navigation" }) + .getByRole("link", { name: "Plan", exact: true }) + .click(); + await expect(page.locator("#profile-form")).toBeVisible(); + const tabs = page.getByRole("navigation", { name: "Plan pages" }); + await expect(tabs.getByRole("link", { name: "Choose browser versions" })).toHaveAttribute( + "aria-current", + "page" + ); + await tabs.getByRole("link", { name: "Find minimum versions" }).click(); + await expect(page).toHaveURL(/\/minimums\/$/u); + await expect(page.locator("#minimum-form")).toBeVisible(); + await expect( + page + .getByRole("navigation", { name: "Plan pages" }) + .getByRole("link", { name: "Find minimum versions" }) + ).toHaveAttribute("aria-current", "page"); + await page.getByRole("button", { name: "Find oldest versions" }).click(); + await expect(page.locator("#minimum-result-list .result-card")).toHaveCount(4); +}); + +test("the grouped index filters empty groups and reveals all nine browser results with the keyboard", async ({ + page +}) => { + await page.goto("/controls/"); + const groups = page.locator("[data-control-group]"); + const count = await groups.count(); + expect(count).toBeGreaterThan(1); + await page.getByLabel("Search features").fill("clickjacking"); + await expect(page.locator("[data-control-group]:visible")).toHaveCount(1); + const entry = page.locator("[data-control-card]:visible"); + await entry.locator("summary").focus(); + await page.keyboard.press("Enter"); + await expect(entry.locator(".mini-results > span")).toHaveCount(9); + await expect(entry.locator(".mini-results")).toBeVisible(); + await page.getByRole("button", { name: "Clear filters" }).click(); + await expect(page.locator("[data-control-group]:visible")).toHaveCount(count); + await expect(page.locator("[data-control-card]:visible")).toHaveCount(SECURITY_CONTROLS.length); +}); + +test("update-log pagination preserves complete totals, order and keyboard focus", async ({ + page +}) => { + await page.goto("/changes/"); + const pager = page.getByRole("navigation", { name: "Update log pages", exact: true }); + const total = changeEvents.length; + const pages = Math.ceil(total / 20); + await expect(page.locator("[data-event-row]")).toHaveCount(total); + await expect(pager.getByRole("button", { name: "Previous" })).toBeDisabled(); + const summaries: string[] = []; + for (let index = 0; index < pages; index += 1) { + const start = index * 20; + await expect(pager).toContainText( + `Events ${String(start + 1)}–${String(Math.min(start + 20, total))} of ${String(total)}` + ); + await expect(page.locator("[data-event-row]:visible")).toHaveCount(Math.min(20, total - start)); + summaries.push(...(await page.locator("[data-event-row]:visible h3").allTextContents())); + if (index < pages - 1) { + await pager.getByRole("button", { name: "Next" }).click(); + await expect(page.locator("#timeline-heading")).toBeFocused(); + } + } + expect(summaries).toEqual([...changeEvents].reverse().map((item) => item.summary)); + await expect(pager.getByRole("button", { name: "Next" })).toBeDisabled(); + await page + .getByRole("navigation", { name: "Update log pages, bottom", exact: true }) + .getByRole("button", { name: "Previous" }) + .click(); + await expect(pager).toContainText(`Page ${String(pages - 1)} of ${String(pages)}`); + expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]); +}); + +test("navigation, catalogue details and the complete update log work without JavaScript", async ({ + browser, + baseURL +}) => { + if (!baseURL) throw new Error("The controlled browser fixture origin is unavailable."); + const context = await browser.newContext({ + javaScriptEnabled: false, + baseURL, + viewport: { width: 390, height: 844 } + }); + const page = await context.newPage(); + await page.goto("/"); + await expect(page.getByRole("heading", { name: "Find the break." })).toBeVisible(); + await expect(page.locator("[data-circuit-browser]")).toHaveCount(BROWSER_IDS.length); + await expect(page.getByLabel("Choose a protection", { exact: true })).toBeDisabled(); + const fallback = page + .locator(".instrument-input") + .getByRole("link", { name: "feature index", exact: true }); + await expect(fallback).toBeVisible(); + await expect(fallback).toHaveAttribute("href", "/controls/"); + await page.goto("/controls/"); + await expect(page.getByRole("navigation", { name: "Primary navigation" })).toBeVisible(); + await expect(page.locator("[data-control-card]:visible")).toHaveCount(SECURITY_CONTROLS.length); + await page.locator(".control-support summary").first().click(); + await expect(page.locator(".mini-results").first()).toBeVisible(); + await page.goto("/changes/"); + await expect(page.locator("[data-event-row]:visible")).toHaveCount(changeEvents.length); + await expect(page.locator(".event-pagination").first()).toBeHidden(); + await context.close(); +}); + +for (const path of [ + "/minimums/", + "/data/", + "/methodology/", + "/privacy/", + "/controls/trusted-types/" +]) { + test(`reference and planning layout passes accessibility checks: ${path}`, async ({ page }) => { + await page.goto(path); + expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]); + }); +} diff --git a/e2e/planning-enhancements.spec.ts b/e2e/planning-enhancements.spec.ts new file mode 100644 index 0000000..8ed775c --- /dev/null +++ b/e2e/planning-enhancements.spec.ts @@ -0,0 +1,479 @@ +import { expect, test } from "@playwright/test"; +import AxeBuilder from "@axe-core/playwright"; +import { readFile } from "node:fs/promises"; +import { readFileSync } from "node:fs"; +import { selectedSnapshotSchema, type DeploymentProfile } from "../src/contracts"; +import { planFragment } from "../src/plan-transfer"; +import { PLAN_LIBRARY_KEY } from "../src/plan-library"; + +const selectedSnapshot = selectedSnapshotSchema.parse( + JSON.parse(readFileSync(new URL("../data/selected-bcd.json", import.meta.url), "utf8")) as unknown +); + +test("minimum results transfer the complete selected scope without persistence @workflow", async ({ + page +}) => { + await page.goto("/minimums/"); + for (const checkbox of await page.locator('input[name="minimum-control"]').all()) + await checkbox.uncheck(); + for (const checkbox of await page.locator('input[name="minimum-browser"]').all()) + await checkbox.uncheck(); + await page.locator('input[name="minimum-control"][value="referrer-policy"]').check(); + await page.locator('input[name="minimum-browser"][value="chrome"]').check(); + await page.getByRole("button", { name: "Find oldest versions" }).click(); + await expect(page.locator("#minimum-result-list")).toContainText("Version 56"); + await page.getByRole("link", { name: "Use these minimums" }).click(); + await expect(page.locator('select[name="version-chrome"]')).toHaveValue("56"); + await expect(page.locator('input[name="include-chrome"]')).toBeChecked(); + await expect(page.locator('input[name="required-control"]:checked')).toHaveCount(1); + await expect( + page.locator('input[name="required-control"][value="referrer-policy"]') + ).toBeChecked(); + expect(await page.evaluate(() => ({ hash: location.hash, stored: localStorage.length }))).toEqual( + { hash: "", stored: 0 } + ); + await page.goto("/minimums/"); + await page.locator('input[name="minimum-control"][value="csp-nonces"]').check(); + await page.getByRole("button", { name: "Find oldest versions" }).click(); + await expect(page.locator("#use-minimums")).toBeHidden(); + await expect(page.locator("#minimum-transfer-status")).toContainText("every selected browser"); +}); + +test("editable plan comparisons retain complete totals through filtering and export @workflow", async ({ + page +}) => { + await page.goto("/compare/"); + await page.locator('[name="before-version-chrome"]').selectOption("40"); + await page.getByRole("button", { name: "Copy A to B" }).click(); + await expect(page.locator("#live-comparison-totals")).toContainText("0 gained · 0 lost"); + await page.locator('[name="after-version-chrome"]').selectOption("120"); + await expect(page.locator("#live-comparison-totals")).toContainText(/[1-9]\d* gained/u); + const totals = await page.locator("#live-comparison-totals").textContent(); + await page.locator("#comparison-changes-only").uncheck(); + await expect(page.locator("#live-comparison-rows tr:visible")).toHaveCount(108); + await expect(page.locator("#live-comparison-totals")).toHaveText(totals ?? ""); + const downloadPromise = page.waitForEvent("download"); + await page.getByRole("button", { name: "Export comparison JSON" }).click(); + const downloaded = await downloadPromise; + const path = await downloaded.path(); + if (!path) throw new Error("Missing comparison download"); + const output = JSON.parse(await readFile(path, "utf8")) as { + summary: { gained: number }; + events: unknown[]; + }; + expect(output.summary.gained).toBeGreaterThan(0); + expect(output.events.length).toBe(36); + await page.locator('[name="after-include-firefox"]').uncheck(); + await expect(page.locator("#live-comparison-totals")).toContainText("36 scope removals"); + await page.locator('[name="after-name"]').fill("Changed name"); + await expect(page.locator("#live-comparison")).toBeHidden(); +}); + +test("suggested increases preserve browsers and refuse unmapped feature guesses @workflow", async ({ + page +}) => { + await page.goto("/compare/"); + await page.locator('[name="after-version-chrome"]').selectOption("40"); + await page.getByText("Choose required features", { exact: true }).click(); + await page.locator('[name="upgrade-control"][value="referrer-policy"]').check(); + await page.getByRole("button", { name: "Find the required increases" }).click(); + await expect(page.locator("#upgrade-status")).toContainText("Chrome 56"); + await page.getByRole("button", { name: "Apply proposed minimums to B" }).click(); + await expect(page.locator('[name="after-version-chrome"]')).toHaveValue("56"); + await expect(page.locator('[data-plan-side="after"] input[type="checkbox"]:checked')).toHaveCount( + 3 + ); + await page.locator('[name="upgrade-control"][value="csp-nonces"]').check(); + await page.getByRole("button", { name: "Find the required increases" }).click(); + await expect(page.locator("#apply-upgrade")).toBeDisabled(); + await expect(page.locator("#upgrade-status")).toContainText("CSP nonces"); +}); + +test("named plans save, rename, duplicate, export and delete independently @workflow", async ({ + page +}) => { + await page.goto("/planner/"); + expect(await page.evaluate(() => localStorage.length)).toBe(0); + await page.getByRole("button", { name: "Load example", exact: true }).click(); + await page.getByRole("button", { name: "Save current as a new plan" }).click(); + await expect(page.locator("#saved-plan option")).toHaveCount(2); + await page.locator("#saved-plan-name").fill(""); + await page.getByRole("button", { name: "Rename selected" }).click(); + await expect(page.locator("#saved-plan option:checked")).toHaveText( + "" + ); + await page.getByRole("button", { name: "Duplicate selected" }).click(); + await expect(page.locator("#saved-plan option")).toHaveCount(3); + await page.getByRole("button", { name: "Load selected" }).click(); + await expect(page.locator('[name="profile-name"]')).toHaveValue( + " (copy)" + ); + const downloadPromise = page.waitForEvent("download"); + await page.getByRole("button", { name: "Export selected" }).click(); + const downloaded = await downloadPromise; + const path = await downloaded.path(); + if (!path) throw new Error("Missing plan download"); + expect(JSON.parse(await readFile(path, "utf8"))).toMatchObject({ + schemaVersion: 1, + name: " (copy)" + }); + await page.getByRole("button", { name: "Delete selected" }).click(); + await expect(page.locator("#saved-plan option")).toHaveCount(2); + await page.reload(); + await expect(page.locator("#saved-plan option")).toHaveCount(2); + await page.goto("/compare/"); + await expect(page.locator('[data-saved-side="before"] option')).toHaveCount(2); + await page + .locator('[data-saved-side="before"]') + .selectOption({ label: "" }); + await expect(page.locator('[name="before-name"]')).toHaveValue(""); +}); + +for (const side of ["before", "after"]) { + for (const failure of ["deleted", "unavailable release"]) { + test(`saved plan ${failure} on ${side} keeps the load error and invalidates outputs @workflow`, async ({ + page, + context + }) => { + const id = "11111111-1111-4111-8111-111111111111"; + await page.goto("/compare/"); + await page.evaluate( + ({ key, id, version }) => { + localStorage.setItem( + key, + JSON.stringify({ + schemaVersion: 1, + plans: [ + { + id, + profile: { + schemaVersion: 1, + name: "Saved fixture", + baselines: [{ browser: "chrome", minimumVersion: version }] + } + } + ] + }) + ); + }, + { key: PLAN_LIBRARY_KEY, id, version: failure === "deleted" ? "56" : "9999" } + ); + await page.reload(); + await page.locator('[name="after-version-chrome"]').selectOption("40"); + await page.getByText("Choose required features", { exact: true }).click(); + await page.locator('[name="upgrade-control"][value="referrer-policy"]').check(); + await page.getByRole("button", { name: "Find the required increases" }).click(); + await expect(page.locator("#apply-upgrade")).toBeEnabled(); + await expect(page.locator("#live-comparison")).toBeVisible(); + const fields = page.locator("#compare-plans-form input, #compare-plans-form select[name]"); + const before = await fields.evaluateAll((elements) => + elements.map((element) => ({ + value: (element as HTMLInputElement).value, + checked: (element as HTMLInputElement).checked, + disabled: (element as HTMLInputElement).disabled + })) + ); + const saved = page.locator(`[data-saved-side="${side}"]`); + await saved.focus(); + if (failure === "deleted") { + const otherTab = await context.newPage(); + await otherTab.goto("/privacy/"); + await otherTab.evaluate((key) => localStorage.removeItem(key), PLAN_LIBRARY_KEY); + await otherTab.close(); + await expect(saved.locator(`option[value="${id}"]`)).toHaveCount(1); + } + await saved.selectOption(id); + await expect(page.locator("#compare-plans-status")).toContainText( + failure === "deleted" ? "no longer available" : "no selectable chrome 9999 release" + ); + await expect(page.locator("#live-comparison")).toBeHidden(); + await expect(page.locator("#export-plan-comparison")).toBeDisabled(); + await expect(page.locator("#use-plan-a")).not.toHaveAttribute("href"); + await expect(page.locator("#use-plan-b")).not.toHaveAttribute("href"); + await expect(page.locator("#apply-upgrade")).toBeDisabled(); + await expect(page.locator("#upgrade-status")).toBeEmpty(); + expect( + await fields.evaluateAll((elements) => + elements.map((element) => ({ + value: (element as HTMLInputElement).value, + checked: (element as HTMLInputElement).checked, + disabled: (element as HTMLInputElement).disabled + })) + ) + ).toEqual(before); + const downloads: string[] = []; + page.on("download", (download) => downloads.push(download.suggestedFilename())); + await page.locator("#export-plan-comparison").dispatchEvent("click"); + await expect(page.locator("#compare-plans-status")).toContainText( + "Compare the current plans before exporting" + ); + expect(downloads).toEqual([]); + await page.locator('[name="after-version-chrome"]').selectOption("56"); + await expect(page.locator("#live-comparison")).toBeVisible(); + await expect(page.locator("#export-plan-comparison")).toBeEnabled(); + }); + } +} + +test("saved plans update each comparison side independently and allow manual changes @workflow", async ({ + page +}) => { + await page.goto("/compare/"); + await page.evaluate((key) => { + localStorage.setItem( + key, + JSON.stringify({ + schemaVersion: 1, + plans: [ + { + id: "11111111-1111-4111-8111-111111111111", + profile: { + schemaVersion: 1, + name: "Single browser plan", + baselines: [{ browser: "chrome", minimumVersion: "56" }] + } + } + ] + }) + ); + }, PLAN_LIBRARY_KEY); + await page.reload(); + await page.locator('[data-saved-side="before"]').selectOption({ label: "Single browser plan" }); + await expect(page.locator('[name="before-name"]')).toHaveValue("Single browser plan"); + await expect(page.locator('[name="before-version-chrome"]')).toHaveValue("56"); + await expect(page.locator('[data-plan-side="before"] input:checked')).toHaveCount(1); + await expect(page.locator('[name="after-name"]')).toHaveValue("Proposed browser plan"); + await expect(page.locator('[data-plan-side="after"] input:checked')).toHaveCount(3); + await page.locator('[data-saved-side="after"]').selectOption({ label: "Single browser plan" }); + await expect(page.locator("#live-comparison-totals")).toContainText("36 unchanged"); + await expect(page.locator('[name="after-version-chrome"]')).toHaveValue("56"); + await page.locator('[name="after-version-chrome"]').selectOption("40"); + await expect(page.locator("#live-comparison-totals")).toContainText(/[1-9]\d* lost/u); + await expect(page.locator('[name="before-version-chrome"]')).toHaveValue("56"); + await expect(page.locator("#compare-plans-status")).toContainText("Both plans evaluated locally"); + await expect(page.locator("#use-plan-a")).toHaveAttribute("href", /\/planner\/#plan=/u); + await expect(page.locator("#export-plan-comparison")).toBeEnabled(); +}); + +test("inspection separates header declarations from plan compatibility and clears stale results @workflow", async ({ + page +}) => { + const external: string[] = []; + page.on("request", (request) => { + if (new URL(request.url()).hostname !== "127.0.0.1") external.push(request.url()); + }); + const inspectionPlan: DeploymentProfile = { + schemaVersion: 1, + name: "Inspection plan", + baselines: [ + { browser: "chrome", minimumVersion: "120" }, + { browser: "firefox", minimumVersion: "115" } + ] + }; + const fragment = planFragment(selectedSnapshot, inspectionPlan); + await page.goto(`/assess/${fragment}`); + await expect(page.locator("#inspector-plan-status")).toContainText("Inspection plan"); + await page + .locator("#header-block") + .fill("Content-Security-Policy: default-src 'none'\nX-Content-Type-Options: nosniff"); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await expect(page.locator(".inspection-compatibility")).toHaveCount(36); + await expect(page.locator(".inspection-compatibility").first()).toContainText("Chrome 120"); + expect(await page.evaluate(() => ({ hash: location.hash, stored: localStorage.length }))).toEqual( + { hash: "", stored: 0 } + ); + await page.locator("#header-block").fill("X-Content-Type-Options: nosniff"); + await expect(page.locator("#header-results")).toBeHidden(); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await page.getByRole("button", { name: "Clear browser plan" }).click(); + await expect(page.locator("#header-results")).toBeHidden(); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await expect(page.locator(".inspection-compatibility")).toHaveCount(0); + await page.locator("#inspector-plan-file").setInputFiles({ + name: "browser-plan.json", + mimeType: "application/json", + buffer: Buffer.from(JSON.stringify(inspectionPlan)) + }); + await expect(page.locator("#inspector-plan-status")).toContainText("Inspection plan"); + await expect(page.locator("#header-results")).toBeHidden(); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await expect(page.locator(".inspection-compatibility").first()).toContainText("Firefox 115"); + await page.locator("#inspector-plan-file").setInputFiles({ + name: "invalid-plan.json", + mimeType: "application/json", + buffer: Buffer.from(JSON.stringify({ ...inspectionPlan, rawHeaders: "private fixture" })) + }); + await expect(page.locator("#inspector-plan-status")).toContainText("Choose a valid browser plan"); + await expect(page.locator("#header-results")).toBeHidden(); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await expect(page.locator(".inspection-compatibility")).toHaveCount(0); + expect(await page.evaluate(() => localStorage.length)).toBe(0); + await page.evaluate((profile) => { + localStorage.setItem( + "controlcurrent.plans.v1", + JSON.stringify({ + schemaVersion: 1, + plans: [{ id: "11111111-1111-4111-8111-111111111111", profile }] + }) + ); + }, inspectionPlan); + await page.reload(); + await page.locator("#inspector-plan").selectOption({ label: "Inspection plan" }); + await expect(page.locator("#inspector-plan-status")).toContainText("Chrome 120"); + await page.locator("#header-block").fill("X-Content-Type-Options: nosniff"); + await page.getByRole("button", { name: "Review headers", exact: true }).click(); + await expect(page.locator(".inspection-compatibility")).toHaveCount(36); + expect(external).toEqual([]); +}); + +test("release traces keep Safari removal gaps and no-script access @workflow", async ({ + page, + browser +}) => { + await page.goto("/controls/partitioned-cookies/"); + await page.getByLabel("Timeline browser").selectOption("safari"); + const history = page.locator('[data-timeline-browser="safari"]'); + await expect(history).toContainText("No longer supported"); + await expect(history).toContainText("26.2"); + await expect(page.locator("[data-timeline-browser]:visible")).toHaveCount(1); + const context = await browser.newContext({ javaScriptEnabled: false, ignoreHTTPSErrors: true }); + try { + const offline = await context.newPage(); + await offline.goto(page.url()); + await expect(offline.locator("[data-timeline-browser]:visible")).toHaveCount(9); + } finally { + await context.close(); + } +}); + +test("dependency circuits expose alternatives, unresolved data and separate review claims @workflow", async ({ + page +}) => { + await page.goto("/circuits/"); + await expect(page.locator(".dependency-terminal")).toHaveCount(2); + await page.locator("#circuit-alternative").selectOption("alternative"); + await expect(page.locator(".dependency-terminal").nth(1)).toContainText("credentialless"); + await page.locator("#circuit-goal").selectOption("script-loading"); + await page.locator("#circuit-alternative").selectOption("alternative"); + await page.locator(".dependency-terminal").nth(1).click(); + await expect(page.locator("#dependency-detail-title")).toHaveText("CSP hash sources"); + await expect(page.locator(".dependency-terminal").nth(1)).toContainText( + "Not enough browser data" + ); + await page.locator("#dependency-reviews input").first().check(); + await expect(page.locator("#dependency-review-status")).toContainText( + "1 of 4 checks marked reviewed by you" + ); + await page.locator("#circuit-goal").selectOption("logout"); + await expect(page.locator("#dependency-review-status")).toContainText("0 of 4"); + await expect(page.locator(".dependency-terminal")).toHaveCount(3); + await expect(page.locator("#dependency-caveat")).toContainText("separate clearing instructions"); +}); + +test("public test snapshots show exact runs and complete file/subtest totals @workflow", async ({ + page +}) => { + await page.goto("/evidence/"); + await expect(page.locator(".wpt-suite")).toHaveCount(5); + await page + .getByText("Exact browser builds, systems and source revision", { exact: true }) + .click(); + await expect(page.locator(".wpt-run-details")).toContainText("6218298311311360"); + await expect(page.locator(".wpt-run-details")).toContainText( + "cc74d2669f5de548e808779877d1d33339ec5115" + ); + const permissions = page.locator(".wpt-suite").first(); + await expect(permissions.getByRole("columnheader", { name: "File outcomes" })).toBeVisible(); + await expect(page.locator(".wpt-snapshot")).toContainText( + "Pass and Fail can also describe tests without a harness" + ); + await expect(permissions).toContainText("118 test files retained from 161"); + await permissions.getByText("Read all 118 retained file results", { exact: true }).click(); + await expect(permissions.locator(".wpt-file-results tbody tr")).toHaveCount(118); + await expect(permissions).toContainText("Timeout"); +}); + +for (const [id, files, chromeTotals, scope] of [ + ["permissions-policy-camera", 4, "4 / 4", "potential-violation"], + ["permissions-policy-microphone", 2, "2 / 2", "media-test automation"], + ["permissions-policy-geolocation", 2, "1 / 2", "location availability"], + ["clear-site-data-cache", 4, "21 / 29", "tentative partitioning"], + ["clear-site-data-cookies", 2, "2 / 2", "response header ordering"], + ["clear-site-data-storage", 1, "10 / 10", "backends available in that browser"] +] as const) { + test(`directive evidence for ${id} shows exact file totals and scope @workflow`, async ({ + page + }) => { + const externalRequests: string[] = []; + page.on("request", (request) => { + if (new URL(request.url()).hostname !== "127.0.0.1") externalRequests.push(request.url()); + }); + await page.setViewportSize({ width: 320, height: 800 }); + await page.goto(`/controls/${id}/`); + const suite = page.locator(".wpt-suite"); + await expect(suite).toHaveCount(1); + await expect(suite).toContainText( + `${String(files)} of ${String(files)} selected test files have retained results.` + ); + await expect(page.locator(".wpt-selection-scope")).toContainText(scope); + await expect(page.locator(".wpt-selection-scope")).toContainText( + "not isolated directive pass counts or application evidence" + ); + const totals = suite.locator(":scope > .table-wrap tbody tr"); + await expect(totals).toHaveCount(3); + await expect(totals.filter({ hasText: "chrome" })).toContainText(chromeTotals); + await suite + .getByText(`Read all ${String(files)} retained file results`, { exact: true }) + .click(); + await expect(suite.locator(".wpt-file-results tbody tr")).toHaveCount(files); + await suite.getByText("Source-response fingerprint", { exact: true }).click(); + await expect(suite).toContainText("complete downloaded directory response"); + const sources = page.locator("aside").getByRole("link", { name: "reviewed test source" }); + await expect(sources).toHaveCount(files); + for (const link of await sources.all()) + await expect(link).toHaveAttribute( + "href", + /^https:\/\/github\.com\/web-platform-tests\/wpt\/blob\/cc74d2669f5de548e808779877d1d33339ec5115\//u + ); + const dimensions = await page.evaluate(() => ({ + document: document.documentElement.scrollWidth, + viewport: document.documentElement.clientWidth + })); + expect(dimensions.document).toBeLessThanOrEqual(dimensions.viewport); + expect(await page.evaluate(() => localStorage.length)).toBe(0); + expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]); + expect(externalRequests).toEqual([]); + }); +} + +test("new workflows remain usable with blocked storage and narrow layouts @workflow", async ({ + page +}) => { + await page.addInitScript(() => { + Object.defineProperty(window, "localStorage", { + get() { + throw new DOMException("Blocked", "SecurityError"); + } + }); + }); + await page.setViewportSize({ width: 390, height: 844 }); + for (const path of [ + "/planner/", + "/compare/", + "/circuits/", + "/controls/permissions-policy-camera/" + ]) { + await page.goto(path); + expect( + await page.evaluate(() => document.documentElement.scrollWidth <= window.innerWidth) + ).toBe(true); + const result = await new AxeBuilder({ page }).analyze(); + expect(result.violations).toEqual([]); + } + await page.goto("/planner/"); + await page.getByRole("button", { name: "Load example", exact: true }).click(); + await page.getByRole("button", { name: "Save current as a new plan" }).click(); + await expect(page.locator("#library-status")).toContainText("unavailable"); + await page.getByRole("button", { name: "Check support", exact: true }).click(); + await expect(page.locator("#profile-results")).toBeVisible(); +}); diff --git a/e2e/site.spec.ts b/e2e/site.spec.ts index e726c3e..965cafd 100644 --- a/e2e/site.spec.ts +++ b/e2e/site.spec.ts @@ -14,14 +14,19 @@ test("renders real source provenance and makes no external request", async ({ pa await page.goto("/"); await expect( page.getByRole("heading", { - name: "Choose security features your supported browsers can handle" + name: "Find the break." }) ).toBeVisible(); await expect( - page.getByText("MDN browser data", { exact: true }).first().locator("..") + page.locator(".source-strip").getByText("MDN browser data", { exact: true }).locator("..") ).toContainText("8.1.5"); - await expect(page.getByText("Web feature data").locator("..")).toContainText("3.42.0"); - await expect(page.getByText("Server connection").locator("..")).toContainText("none"); + await expect( + page.locator(".source-strip").getByText("Web feature data").locator("..") + ).toContainText("3.42.0"); + await expect(page.locator('meta[http-equiv="Content-Security-Policy"]')).toHaveAttribute( + "content", + /(?:^|;)\s*connect-src 'none'(?:;|$)/u + ); expect(externalRequests).toEqual([]); const violations = await new AxeBuilder({ page }).analyze(); @@ -36,7 +41,7 @@ test("evaluates, stores, clears, and exports a profile locally @workflow", async await expect( page.getByRole("heading", { name: "What your browser choices can support" }) ).toBeVisible(); - await expect(page.locator(".result-card")).toHaveCount(30); + await expect(page.locator(".result-card")).toHaveCount(36); await expect(page.getByRole("heading", { name: /Ready to use/u })).toBeVisible(); await expect(page.getByRole("heading", { name: /Works with known limitations/u })).toBeVisible(); await expect(page.getByRole("heading", { name: /Not enough information/u })).toBeVisible(); @@ -53,9 +58,9 @@ test("evaluates, stores, clears, and exports a profile locally @workflow", async await page.getByLabel("Show blockers only").check(); await expect(page.locator(".result-group--ready")).toBeHidden(); - expect(await page.locator("[data-result-card]:visible").count()).toBeLessThan(30); + expect(await page.locator("[data-result-card]:visible").count()).toBeLessThan(36); await page.getByRole("button", { name: "Clear filters" }).click(); - await expect(page.locator("[data-result-card]:visible")).toHaveCount(30); + await expect(page.locator("[data-result-card]:visible")).toHaveCount(36); await page.getByRole("button", { name: "Save locally" }).click(); await expect @@ -89,7 +94,7 @@ test("evaluates, stores, clears, and exports a profile locally @workflow", async await expect( page.getByRole("heading", { name: "What changed since the earlier result" }) ).toBeVisible(); - await expect(page.locator("#comparison-events .result-card")).toHaveCount(30); + await expect(page.locator("#comparison-events .result-card")).toHaveCount(36); const reportPromise = page.waitForEvent("download"); await page.getByRole("button", { name: "Export readable report" }).click(); @@ -260,7 +265,7 @@ test("calculates minimum browser baselines without a network request", async ({ if (url.hostname !== "127.0.0.1") externalRequests.push(request.url()); }); - await page.goto("/planner/"); + await page.goto("/minimums/"); await page.getByRole("button", { name: "Find oldest versions" }).click(); await expect(page.getByRole("heading", { name: "Minimum browser versions" })).toBeVisible(); @@ -304,11 +309,17 @@ test("wraps long browser-data labels without clipping", async ({ page }) => { await page.goto("/planner/"); await page.getByRole("button", { name: "Load example" }).click(); await page.getByRole("button", { name: "Check support" }).click(); - await page.getByRole("button", { name: "Find oldest versions" }).click(); await expectLabelsInsideBounds(); await page.setViewportSize({ width: 320, height: 800 }); await expectLabelsInsideBounds(); + + await page.goto("/minimums/"); + await page.locator('input[name="minimum-control"][value="csp-nonces"]').check(); + await page.getByRole("button", { name: "Find oldest versions" }).click(); + await expectLabelsInsideBounds(); + await page.setViewportSize({ width: 1280, height: 900 }); + await expectLabelsInsideBounds(); }); test("keeps dense views inside the viewport at 320 pixels @workflow", async ({ page }) => { @@ -319,6 +330,9 @@ test("keeps dense views inside the viewport at 320 pixels @workflow", async ({ p "/glossary/", "/matrix/", "/planner/", + "/minimums/", + "/compare/", + "/circuits/", "/assess/", "/evidence/", "/changes/", @@ -331,12 +345,75 @@ test("keeps dense views inside the viewport at 320 pixels @workflow", async ({ p "/controls/trusted-types/", "/404.html" ]) { - await page.goto(path); - const dimensions = await page.evaluate(() => ({ - clientWidth: document.documentElement.clientWidth, - scrollWidth: document.documentElement.scrollWidth - })); - expect(dimensions.scrollWidth).toBeLessThanOrEqual(dimensions.clientWidth); + await test.step(path, async () => { + await page.goto(path); + const dimensions = await page.evaluate(() => { + const root = document.documentElement; + const describe = (element: Element) => { + const box = element.getBoundingClientRect(); + const style = getComputedStyle(element); + return { + element: `${element.tagName.toLowerCase()}${element.id ? `#${element.id}` : ""}.${Array.from(element.classList).join(".")}`, + left: box.left, + right: box.right, + clientWidth: element.clientWidth, + scrollWidth: element.scrollWidth, + width: style.width, + minWidth: style.minWidth, + display: style.display, + gridTemplateColumns: style.gridTemplateColumns, + flex: style.flex, + overflowX: style.overflowX, + overflowWrap: style.overflowWrap, + fontFamily: style.fontFamily, + fontSize: style.fontSize + }; + }; + const overflow = root.scrollWidth > root.clientWidth; + return { + route: location.pathname, + viewportWidth: innerWidth, + clientWidth: root.clientWidth, + scrollWidth: root.scrollWidth, + overflowing: overflow + ? Array.from(document.querySelectorAll("body *")) + .filter((element) => { + let parent = element.parentElement; + while (parent && parent !== document.body) { + if ( + ["auto", "scroll", "hidden", "clip"].includes( + getComputedStyle(parent).overflowX + ) + ) + return false; + parent = parent.parentElement; + } + const box = element.getBoundingClientRect(); + return ( + box.width > 0 && + (box.right > root.clientWidth || + box.left < 0 || + (element.scrollWidth > element.clientWidth && + getComputedStyle(element).overflowX === "visible")) + ); + }) + .slice(0, 20) + .map((element) => { + const ancestors = []; + let parent = element.parentElement; + while (parent && ancestors.length < 4) { + ancestors.push(describe(parent)); + parent = parent.parentElement; + } + return { ...describe(element), ancestors }; + }) + : [] + }; + }); + expect(dimensions.scrollWidth, JSON.stringify(dimensions, null, 2)).toBeLessThanOrEqual( + dimensions.clientWidth + ); + }); } const matrix = page.locator(".table-wrap"); @@ -349,12 +426,39 @@ test("keeps dense views inside the viewport at 320 pixels @workflow", async ({ p expect(matrixDimensions.scrollWidth).toBeGreaterThan(matrixDimensions.clientWidth); }); +for (const [path, title] of [ + ["/glossary/", "ControlCurrent glossary"], + ["/controls/trusted-types/", "Trusted Types enforcement"] +] as const) { + test(`wraps long headings with a fallback font on ${path} @workflow`, async ({ page }) => { + await page.setViewportSize({ width: 320, height: 800 }); + await page.goto(path); + await page.locator("html").evaluate((element) => { + element.style.setProperty("--display", "Arial, sans-serif"); + }); + const heading = page.locator(".page-header h1"); + await expect(heading).toHaveText(title); + const dimensions = await heading.evaluate((element) => ({ + headingClientWidth: element.clientWidth, + headingScrollWidth: element.scrollWidth, + clientWidth: document.documentElement.clientWidth, + scrollWidth: document.documentElement.scrollWidth + })); + expect(dimensions.headingScrollWidth, JSON.stringify(dimensions)).toBeLessThanOrEqual( + dimensions.headingClientWidth + ); + expect(dimensions.scrollWidth, JSON.stringify(dimensions)).toBeLessThanOrEqual( + dimensions.clientWidth + ); + }); +} + test("stacks homepage actions evenly on mobile", async ({ page }) => { await page.setViewportSize({ width: 390, height: 844 }); await page.goto("/"); - const actions = page.locator(".hero-actions .button"); - await expect(actions).toHaveCount(3); + const actions = page.locator(".bench-actions .button"); + await expect(actions).toHaveCount(2); const boxes = await actions.evaluateAll((elements) => elements.map((element) => { const box = element.getBoundingClientRect(); @@ -365,10 +469,9 @@ test("stacks homepage actions evenly on mobile", async ({ page }) => { expect(new Set(boxes.map((box) => box.x)).size).toBe(1); expect(new Set(boxes.map((box) => box.width)).size).toBe(1); expect(new Set(boxes.map((box) => box.height)).size).toBe(1); - const [first, second, third] = boxes; - if (!first || !second || !third) throw new Error("Expected three homepage actions."); + const [first, second] = boxes; + if (!first || !second) throw new Error("Expected two homepage actions."); expect(first.y).toBeLessThan(second.y); - expect(second.y).toBeLessThan(third.y); }); test("uses a contained mobile navigation menu without horizontal scrolling", async ({ page }) => { @@ -387,7 +490,12 @@ test("uses a contained mobile navigation menu without horizontal scrolling", asy await expect(toggle).toHaveText(/Close/u); await expect(toggle).toHaveAttribute("aria-expanded", "true"); await expect(navigation).toBeVisible(); - await expect(navigation.getByRole("link")).toHaveCount(8); + await expect(navigation.getByRole("link")).toHaveText([ + "01Plan", + "02Inspect", + "03Reference", + "04Sources" + ]); const dimensions = await page.evaluate(() => ({ clientWidth: document.documentElement.clientWidth, @@ -413,12 +521,15 @@ test("shows pinned WPT mappings without fetching result data", async ({ page }) }); await page.goto("/evidence/"); + await expect(page.getByRole("heading", { name: "Public browser tests." })).toBeVisible(); + await expect(page.locator(".evidence-card")).toHaveCount(36); + await expect(page.locator(".evidence-stats").getByText("34", { exact: true })).toBeVisible(); await expect( - page.getByRole("heading", { name: "See the public tests behind browser behaviour" }) - ).toBeVisible(); - await expect(page.locator(".evidence-card")).toHaveCount(30); - await expect(page.getByText("28")).toBeVisible(); - await expect(page.getByText("af38980d")).toBeVisible(); + page.getByText("af38980d2fcd74af19a226f5f651051cc15940ed", { exact: true }) + ).toHaveCount(28); + await expect( + page.getByText("cc74d2669f5de548e808779877d1d33339ec5115", { exact: true }) + ).toHaveCount(9); await expect( page.getByText("No similar test is substituted when an exact link is unavailable.") ).toHaveCount(2); @@ -442,12 +553,12 @@ test("assesses and clears a redacted header snapshot without a network request", await page.getByRole("button", { name: "Review headers" }).click(); await expect(page.getByRole("heading", { name: "Security header results" })).toBeVisible(); - await expect(page.locator(".assurance-card")).toHaveCount(30); + await expect(page.locator(".assurance-card")).toHaveCount(36); await expect(page.getByText("Headers reviewed on this device")).toBeVisible(); await expect(page.getByText("18")).toBeVisible(); expect(externalRequests).toEqual([]); - await page.getByRole("button", { name: "Clear" }).first().click(); + await page.locator("#header-form").getByRole("button", { name: "Clear", exact: true }).click(); await expect(page.getByRole("heading", { name: "Security header results" })).toBeHidden(); await expect(page.getByLabel("HTTP response headers")).toHaveValue(""); expect(await page.evaluate(() => localStorage.length)).toBe(0); @@ -504,7 +615,7 @@ test("reduces a multi-surface evidence bundle without exposing raw inputs @workf "captured 2026-07-20T09:05:00.000Z by example-ci (application_ci)" ); await expect(results.locator("#bundle-source")).toContainText( - "analyser 5.1.0 · catalogue 2.2.0 · BCD 8.1.5" + "analyser 5.1.0 · catalogue 2.3.0 · BCD 8.1.5" ); await expect( results.getByText("Supplied page list · Reviewed application route manifest") @@ -547,6 +658,12 @@ test("shows the reviewed source manifest without inventing review timestamps", a test("publishes third-party licence notices with the static site", async ({ page, request }) => { await page.goto("/data/"); + await expect(page.getByText("Original suite-link revision", { exact: true })).toBeVisible(); + await expect(page.getByText("Directive file-selection revision", { exact: true })).toBeVisible(); + await expect(page.getByRole("link", { name: "View the directive test source" })).toHaveAttribute( + "href", + "https://github.com/web-platform-tests/wpt/tree/cc74d2669f5de548e808779877d1d33339ec5115" + ); const noticeLink = page.getByRole("link", { name: "Read the deployed third-party notices and licence terms" }); @@ -600,17 +717,17 @@ test("filters security features locally without hiding the full static catalogue }); await page.goto("/controls/"); - await expect(page.locator("[data-control-card]")).toHaveCount(30); + await expect(page.locator("[data-control-card]")).toHaveCount(36); await page.getByLabel("Search features").fill("clickjacking"); await expect(page.locator("[data-control-card]:visible")).toHaveCount(1); - await expect(page.getByText("Showing 1 of 30 features.")).toBeVisible(); + await expect(page.getByText("Showing 1 of 36 features.")).toBeVisible(); await page.getByLabel("Security area").selectOption("Authentication"); await expect(page.locator("[data-control-card]:visible")).toHaveCount(0); await expect(page.getByText("No features match those filters.")).toBeVisible(); await page.getByRole("button", { name: "Clear filters" }).click(); - await expect(page.locator("[data-control-card]:visible")).toHaveCount(30); + await expect(page.locator("[data-control-card]:visible")).toHaveCount(36); expect(externalRequests).toEqual([]); const violations = await new AxeBuilder({ page }).include("#main-content").analyze(); diff --git a/examples/evidence-policy.json b/examples/evidence-policy.json index 5089ca6..8ce36c5 100644 --- a/examples/evidence-policy.json +++ b/examples/evidence-policy.json @@ -2,7 +2,7 @@ "schemaVersion": 4, "name": "Release evidence baseline", "expectedAnalyserVersion": "5.1.0", - "expectedCatalogueVersion": "2.2.0", + "expectedCatalogueVersion": "2.3.0", "expectedBcdVersion": "8.1.4", "attestation": { "required": false, diff --git a/package.json b/package.json index 824ebd7..ea29c0c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "schemas:check": "tsx tools/generate-json-schemas.ts --check", "source-review:summary": "tsx tools/source-review-summary.ts", "source-update:preview": "tsx tools/source-update-preview.ts", + "wpt:import": "tsx tools/import-wpt-snapshot.ts", "lint": "eslint src tools tests e2e --max-warnings=0", "format:check": "prettier --check .", "typecheck": "tsc --noEmit -p tsconfig.tools.json", diff --git a/public/favicon.svg b/public/favicon.svg index 68bb07f..c7e170c 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,20 +1 @@ - - ControlCurrent - - - - - + diff --git a/public/logo-reverse.svg b/public/logo-reverse.svg new file mode 100644 index 0000000..e7670de --- /dev/null +++ b/public/logo-reverse.svg @@ -0,0 +1 @@ +ControlCurrentTwo nested C-shaped conductors with open contacts.controlcurrent diff --git a/public/logo.svg b/public/logo.svg index 8527655..a794841 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,56 +1 @@ - - ControlCurrent - - A control ring crossed by a current trace beside the ControlCurrent wordmark. - - - - - - - ControlCurrent - BROWSER SECURITY READINESS - +ControlCurrentTwo nested C-shaped conductors with open contacts.controlcurrent diff --git a/public/og.png b/public/og.png index 80972c0..405e6a7 100644 Binary files a/public/og.png and b/public/og.png differ diff --git a/public/og.svg b/public/og.svg new file mode 100644 index 0000000..decd479 --- /dev/null +++ b/public/og.svg @@ -0,0 +1,25 @@ + +ControlCurrentFind the break. Browser security support, with the gaps left in view. + + + +controlcurrent +BROWSER SECURITY / COMPATIBILITY & EVIDENCE +CC—01 / BROWSER SUPPORT + + +FIND THE +BREAK. + +Browser security support, with the gaps left in view. + + + + + +CC +CONTROL / CURRENT + + +CHOOSE A PROTECTION. READ THE SUPPORT. KEEP THE EXCEPTIONS. + diff --git a/public/third-party-notices.txt b/public/third-party-notices.txt index 01d39c3..b53e83e 100644 --- a/public/third-party-notices.txt +++ b/public/third-party-notices.txt @@ -28,9 +28,12 @@ Copyright web-platform-tests contributors Licensed under the BSD 3-Clause License https://github.com/web-platform-tests/wpt/blob/master/LICENSE.md -ControlCurrent does not redistribute Web Platform Tests source or wpt.fyi -result data. It includes project-authored factual mappings to reviewed suite -paths. +ControlCurrent does not redistribute Web Platform Tests source, test bodies or +raw logs. It includes project-authored mappings to reviewed suite and file paths and a +bounded projection of public wpt.fyi result counts, statuses and run metadata. +Each retained summary identifies the original run, source revision and API +response digest. Test-source licensing does not relicense linked dashboard +content or reports supplied by their original producers. BROWSER-BUNDLED SOFTWARE diff --git a/src/catalogue.ts b/src/catalogue.ts index 990b51a..3f059a4 100644 --- a/src/catalogue.ts +++ b/src/catalogue.ts @@ -1,4 +1,4 @@ -export const CATALOGUE_VERSION = "2.2.0"; +export const CATALOGUE_VERSION = "2.3.0"; export type ControlMappingState = "active" | "unsupported"; export type CombinationRule = "all" | "any"; @@ -25,6 +25,56 @@ export type SecurityControl = { specificationUrls: readonly string[]; }; +export const DIRECTIVE_CONTROLS: readonly SecurityControl[] = [ + ...(["camera", "microphone", "geolocation"] as const).map((directive) => ({ + id: `permissions-policy-${directive}`, + name: `Permissions Policy: ${directive}`, + shortName: `${directive.charAt(0).toUpperCase()}${directive.slice(1)} policy`, + category: "Browser privacy" as const, + summary: `Controls whether this document and its frames may use ${directive}.`, + threatClasses: ["Unexpected capability use", "Over-privileged embedded content"], + doesNotAddress: [ + "Application authorisation", + "User permission decisions", + "Other capabilities" + ], + prerequisites: [ + "An explicit capability and frame allowlist", + "Review of inherited frame restrictions" + ], + fallback: + "Request only necessary capabilities and provide a usable path when access is denied.", + mappingState: "active" as const, + combination: "all" as const, + bcdPaths: [`http.headers.Permissions-Policy.${directive}`], + specificationUrls: ["https://w3c.github.io/webappsec-permissions-policy/"] + })), + ...(["cache", "cookies", "storage"] as const).map((directive) => ({ + id: `clear-site-data-${directive}`, + name: `Clear-Site-Data: ${directive}`, + shortName: `Clear ${directive}`, + category: "Transport and response hardening" as const, + summary: `Requests clearing of browser-held ${directive} in the scope of the response.`, + threatClasses: ["Residual client state after logout or reset"], + doesNotAddress: [ + "Server-side sessions", + "Data outside the directive's scope", + "Confirmation that clearing completed" + ], + prerequisites: [ + "Secure-context delivery", + "A deliberate logout or reset flow", + "Review of effects on related applications" + ], + fallback: + "Invalidate server sessions and explicitly clear application state in the logout flow.", + mappingState: "active" as const, + combination: "all" as const, + bcdPaths: [`http.headers.Clear-Site-Data.${directive}`], + specificationUrls: ["https://w3c.github.io/webappsec-clear-site-data/"] + })) +]; + export const SECURITY_CONTROLS = [ { id: "content-security-policy", @@ -641,7 +691,8 @@ export const SECURITY_CONTROLS = [ combination: "all", bcdPaths: ["api.PublicKeyCredential.isConditionalMediationAvailable_static"], specificationUrls: ["https://w3c.github.io/webauthn/#enum-credentialmediationrequirement"] - } + }, + ...DIRECTIVE_CONTROLS ] as const satisfies readonly SecurityControl[]; export function getControl(controlId: string): SecurityControl | undefined { diff --git a/src/components/BrowserPlanFields.astro b/src/components/BrowserPlanFields.astro new file mode 100644 index 0000000..f546aa5 --- /dev/null +++ b/src/components/BrowserPlanFields.astro @@ -0,0 +1,63 @@ +--- +import { BROWSER_IDS } from "../browsers"; +import { selectedSnapshot } from "../data"; +import { browserNames } from "../format"; +import { recordedReleasedVersions } from "../evaluate"; +interface Props { + side: string; + label: string; +} +const { side, label } = Astro.props; +const defaults: Record = { chrome: "120", firefox: "115", safari: "17" }; +--- + +
+ + {side === "before" ? "Circuit A" : "Circuit B"} + {label} + + + +
+ {BROWSER_IDS.map((browser) => { + const releases = [...(recordedReleasedVersions(selectedSnapshot, browser) ?? [])].reverse(); + const version = side === "before" ? defaults[browser] : releases[0]?.version; + const included = browser in defaults; + return ( +
+ + +
+ ); + })} +
+
diff --git a/src/components/CircuitBoard.astro b/src/components/CircuitBoard.astro new file mode 100644 index 0000000..c3e68c9 --- /dev/null +++ b/src/components/CircuitBoard.astro @@ -0,0 +1,64 @@ +--- +import type { SecurityControl } from "../catalogue"; +import type { ControlEvaluation } from "../contracts"; +import { browserNames, outcomeLabels } from "../format"; +import CircuitStatus from "./CircuitStatus.astro"; +interface Props { + control: SecurityControl; + evaluations: readonly ControlEvaluation[]; +} +const { control, evaluations } = Astro.props; +const base = import.meta.env.BASE_URL.replace(/\/$/u, ""); +--- + +
+
+ Output / {control.category} +

{control.name}

+

{control.summary}

+
+ +
+ {evaluations.map((evaluation, index) => ( + + ))} +
+ + + Source paths & implementation notes + +
diff --git a/src/components/CircuitStatus.astro b/src/components/CircuitStatus.astro new file mode 100644 index 0000000..4da4273 --- /dev/null +++ b/src/components/CircuitStatus.astro @@ -0,0 +1,35 @@ +--- +import type { Outcome } from "../contracts"; +import { outcomeLabels } from "../format"; +interface Props { + outcome: Outcome; +} +const { outcome } = Astro.props; +const open = ["unavailable", "removed"].includes(outcome); +const limited = outcome === "available_with_qualification"; +const unknown = ["unknown", "unsupported_mapping", "source_inconsistent"].includes(outcome); +--- + + + + {outcomeLabels[outcome]} + diff --git a/src/components/ControlCard.astro b/src/components/ControlCard.astro index 0561ae1..eb79add 100644 --- a/src/components/ControlCard.astro +++ b/src/components/ControlCard.astro @@ -39,27 +39,29 @@ const searchText = [ data-search={searchText} data-support-group={supportGroup} > -
- {control.category} +
+

+ + {control.name} + + +

{control.mappingState === "active" - ? `${control.bcdPaths.length} browser data record${control.bcdPaths.length === 1 ? "" : "s"}` + ? `${control.bcdPaths.length} source record${control.bcdPaths.length === 1 ? "" : "s"}` : "Browser data unavailable"}
-

- - {control.name} - - -

{control.summary}

-
- {evaluations.map((evaluation) => ( - - {browserNames[evaluation.browser]} - - - ))} -
+
+ View {evaluations.length} browser results +
+ {evaluations.map((evaluation) => ( + + {browserNames[evaluation.browser]} + + + ))} +
+
diff --git a/src/components/HeaderInspector.astro b/src/components/HeaderInspector.astro index aa5bfcf..ebf434a 100644 --- a/src/components/HeaderInspector.astro +++ b/src/components/HeaderInspector.astro @@ -1,7 +1,11 @@ -
+--- +const base = import.meta.env.BASE_URL.replace(/\/$/u, ""); +--- + +
- Simple check -

Review one set of website response headers

+ One response at a time +

Read the headers

Response headers are instructions a website sends to the browser. Paste a set below and ControlCurrent will look for recognised security settings. It does not visit the URL, save the @@ -10,6 +14,37 @@

+
+

Which browsers does this need to work in?

+

+ Add a browser plan to show compatibility beside each header finding. A recognised declaration + does not prove that a browser enforced it. +

+
+ + +
+
+ + + Create a browser plan + +
+

+ Header review also works without a browser plan. +

+
+