Update web-platform-tests to revision b'8f48f40aab7f7f8a8118dc1a46972d070622be52' (#32271)

This commit is contained in:
Servo WPT Sync 2024-05-12 00:42:20 -04:00 committed by GitHub
parent 2904c32e05
commit 1f6d358cf9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
407 changed files with 12186 additions and 1091 deletions

View file

@ -214,3 +214,21 @@
[e.style['content'\] = "url(\\"https://www.example.com/picture.svg\\") \\"hello\\" / attr(foo)" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / \\"alt text\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / \\"alt text\\" attr(foo) \\"bar\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / attr(foo)" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / \\"alt text\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / \\"alt text\\" attr(foo) \\"bar\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / attr(foo)" should set the property value]
expected: FAIL

View file

@ -0,0 +1,2 @@
[counters-005.html]
expected: FAIL

View file

@ -1,3 +1,3 @@
[overfow-outside-padding.html]
[overflow-outside-padding.html]
[#target did not trigger scroll overflow]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-wrap-nowrap-001.html]
expected: FAIL

View file

@ -1,10 +1,9 @@
[CSSStyleSheet-constructable-baseURL.tentative.html]
[CSSStyleSheet-constructable-baseURL.html]
[Constructing sheet with custom base URL ueses that URL for CSS rules]
expected: FAIL
[Constructing sheet with invalid base URL throws a NotAllowedError]
expected: FAIL
[Constructing sheet with relative URL adds to the constructor document's base URL]
expected: FAIL
[Constructing sheet with invalid base URL throws a NotAllowedError]
expected: FAIL

View file

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

View file

@ -10,3 +10,6 @@
[Upgrade into customized built-in element when definition is added]
expected: FAIL
[Upgrade into autonomous custom element should not inherit from global registry for missing values]
expected: FAIL

View file

@ -1,5 +0,0 @@
[eventsource-request-cancellation.window.any.html]
expected: TIMEOUT
[eventsource-request-cancellation.window.any.worker.html]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[response-arraybuffer-realm.window.html]
[realm of the ArrayBuffer from Response arrayBuffer()]
expected: FAIL

View file

@ -0,0 +1,9 @@
[send-on-deactivate-with-background-sync.tentative.https.window.html]
[fetchLater() does send on page entering BFCache even if BackgroundSync is on.]
expected: FAIL
[fetchLater() with activateAfter=0 sends on page entering BFCache if BackgroundSync is on.]
expected: FAIL
[fetchLater() with activateAfter=1m does send on page entering BFCache even if BackgroundSync is on.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[order-in-bfcache-restore-iframe.html]
expected: TIMEOUT
[pagereveal event in iframe fires and in correct order on restoration from BFCache]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[order-in-new-document-navigation-iframe.html]
[pagereveal event fires and in correct order on new-document navigation in an iframe]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[svg-filter-lh-rlh.html]
expected: FAIL

View file

@ -1,6 +1,6 @@
[Document.currentScript.html]
type: testharness
expected: CRASH
expected: TIMEOUT
[Script script-exec]
expected: NOTRUN

View file

@ -1,4 +1,3 @@
[document-base-url-window-initiator-is-not-opener.https.window.html]
expected: TIMEOUT
[window.open() gets base url from initiator not opener.]
expected: [FAIL, PASS, TIMEOUT]

View file

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

View file

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

View file

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

View file

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

View file

@ -41,3 +41,14 @@
[Test that the base URL of MediaImage is the base URL of entry setting object]
expected: FAIL
[Test that MediaMetadata is read/write]
expected: FAIL
[Test that MediaMetadata.artwork can't be modified]
expected: FAIL
[Test that MediaMetadata.chapterInfo is Frozen]
expected: FAIL
[Test that MediaMetadata.chapterInfo's artwork returns parsed urls]
expected: FAIL

View file

@ -1,4 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

File diff suppressed because it is too large Load diff

View file

@ -214,3 +214,21 @@
[e.style['content'\] = "url(\\"https://www.example.com/picture.svg\\") \\"hello\\" / attr(foo)" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / \\"alt text\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / \\"alt text\\" attr(foo) \\"bar\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") / attr(foo)" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / \\"alt text\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / \\"alt text\\" attr(foo) \\"bar\\"" should set the property value]
expected: FAIL
[e.style['content'\] = "url(\\"picture.svg\\") \\"hello\\" / attr(foo)" should set the property value]
expected: FAIL

View file

@ -0,0 +1,2 @@
[counters-005.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-wrap-nowrap-001.html]
expected: FAIL

View file

@ -1,10 +1,9 @@
[CSSStyleSheet-constructable-baseURL.tentative.html]
[CSSStyleSheet-constructable-baseURL.html]
[Constructing sheet with custom base URL ueses that URL for CSS rules]
expected: FAIL
[Constructing sheet with invalid base URL throws a NotAllowedError]
expected: FAIL
[Constructing sheet with relative URL adds to the constructor document's base URL]
expected: FAIL
[Constructing sheet with invalid base URL throws a NotAllowedError]
expected: FAIL

View file

@ -10,3 +10,6 @@
[Upgrade into customized built-in element when definition is added]
expected: FAIL
[Upgrade into autonomous custom element should not inherit from global registry for missing values]
expected: FAIL

View file

@ -1,5 +0,0 @@
[eventsource-request-cancellation.window.any.html]
expected: TIMEOUT
[eventsource-request-cancellation.window.any.worker.html]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[response-arraybuffer-realm.window.html]
[realm of the ArrayBuffer from Response arrayBuffer()]
expected: FAIL

View file

@ -0,0 +1,9 @@
[send-on-deactivate-with-background-sync.tentative.https.window.html]
[fetchLater() does send on page entering BFCache even if BackgroundSync is on.]
expected: FAIL
[fetchLater() with activateAfter=0 sends on page entering BFCache if BackgroundSync is on.]
expected: FAIL
[fetchLater() with activateAfter=1m does send on page entering BFCache even if BackgroundSync is on.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[order-in-bfcache-restore-iframe.html]
expected: TIMEOUT
[pagereveal event in iframe fires and in correct order on restoration from BFCache]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[order-in-new-document-navigation-iframe.html]
[pagereveal event fires and in correct order on new-document navigation in an iframe]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[svg-filter-lh-rlh.html]
expected: FAIL

View file

@ -1,4 +1,4 @@
[Document.currentScript.html]
expected: CRASH
expected: TIMEOUT
[Script script-svg]
expected: NOTRUN

View file

@ -1,3 +1,4 @@
[document-base-url-window-initiator-is-not-opener.https.window.html]
expected: TIMEOUT
[window.open() gets base url from initiator not opener.]
expected: [FAIL, PASS, TIMEOUT]

View file

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

View file

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

View file

@ -1,3 +1,4 @@
[sandbox-top-navigation-user-activation-sticky.tentative.sub.window.html]
expected: TIMEOUT
[Allow top with user activation + user activation]
expected: FAIL
expected: TIMEOUT

View file

@ -40,3 +40,15 @@
[Test that the base URL of MediaImage is the base URL of entry setting object]
expected: FAIL
[Test that MediaMetadata is read/write]
expected: FAIL
[Test that MediaMetadata.artwork can't be modified]
expected: FAIL
[Test that MediaMetadata.chapterInfo is Frozen]
expected: FAIL
[Test that MediaMetadata.chapterInfo's artwork returns parsed urls]
expected: FAIL

View file

@ -1,4 +1,3 @@
[performance-navigation-timing-iframes-without-attributes.tentative.window.html]
expected: TIMEOUT
[RemoteContextHelper navigation using BFCache]
expected: TIMEOUT
expected: FAIL

View file

@ -1,4 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -103,21 +103,9 @@ jobs:
- template: tools/ci/azure/install_fonts.yml
- template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/color_profile.yml
- template: tools/ci/azure/install_chrome.yml
- template: tools/ci/azure/install_firefox.yml
- template: tools/ci/azure/install_safari.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: |
set -eux -o pipefail
./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_macos_chrome.json --channel dev chrome infrastructure/
condition: succeededOrFailed()
displayName: 'Run tests (Chrome Dev)'
- script: |
set -eux -o pipefail
./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_macos_firefox.json --channel nightly firefox infrastructure/
condition: succeededOrFailed()
displayName: 'Run tests (Firefox Nightly)'
- script: |
set -eux -o pipefail
export SYSTEM_VERSION_COMPAT=0

View file

@ -23,7 +23,7 @@ indexeddb_test(
worker.postMessage('', [buffer]);
assert_equals(array.byteLength, 0);
assert_throws_js(TypeError, () => { store.put('', buffer); });
assert_throws_dom("DataError", () => { store.put('', buffer); });
t.done();
},
'Detached ArrayBuffer'
@ -43,7 +43,7 @@ indexeddb_test(
worker.postMessage('', [array.buffer]);
assert_equals(array.length, 0);
assert_throws_js(TypeError, () => { store.put('', array); });
assert_throws_dom("DataError", () => { store.put('', array); });
t.done();
},
'Detached TypedArray'

View file

@ -0,0 +1,3 @@
features:
- name: compute-pressure
files: "**"

View file

@ -76,7 +76,6 @@ function httpCookieTest(cookie, expectedValue, name, defaultPath = true,
} catch {
if (allowFetchFailure) {
skipAssertions = true;
resolve();
} else {
reject('Failed to fetch /cookies/resources/cookie.py');
}

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<title>Federated Credential Management API network request tests.</title>
<link rel="help" href="https://fedidcg.github.io/FedCM">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<body>
<script type="module">
import {fedcm_test,
request_options_with_mediation_required,
fedcm_get_and_select_first_account} from '../support/fedcm-helper.sub.js';
fedcm_test(async t => {
let options = request_options_with_mediation_required("manifest_check_disclosure_shown_false.json");
options.identity.providers[0].clientId = "0";
options.identity.providers[0].scope = ["non_default_scope"];
const cred = await fedcm_get_and_select_first_account(t, options);
assert_equals(cred.token, "token");
assert_equals(cred.isAutoSelected, false);
}, "We should send disclosure_text_shown=false when custom scopes are passed.");
</script>

View file

@ -0,0 +1,7 @@
{
"accounts_endpoint": "accounts.py",
"client_metadata_endpoint": "client_metadata.py",
"id_assertion_endpoint": "token_check_disclosure_shown_false.py",
"login_url": "login.html"
}

View file

@ -0,0 +1,16 @@
import importlib
error_checker = importlib.import_module("credential-management.support.fedcm.request-params-check")
def main(request, response):
request_error = error_checker.tokenCheck(request)
if (request_error):
return request_error
if request.POST.get(b"disclosure_text_shown") != b"false":
return (560, [], "disclosure_text_shown is not false")
response.headers.set(b"Content-Type", b"application/json")
response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin"))
response.headers.set(b"Access-Control-Allow-Credentials", "true")
return "{\"token\": \"token\"}"

View file

@ -0,0 +1,17 @@
<style>
* {
position: sticky;
border-left: double 488200679.54Q hsla(-39 5% 68% / 7%) !important;
box-shadow: 172vmax 60991vmax 32in 106cm hsl(-57532411.87deg, 70%, 54%);
background-blend-mode: overlay;
background: url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=) local content-box space space 0em / 15438983.37cm auto;
}
</style>
<script>
window.addEventListener("load", () => {
let a = document.createElementNS("http://www.w3.org/1998/Math/MathML", "math")
a.setAttribute("href", "x")
a.autofocus = true
document.documentElement.appendChild(a)
})
</script>

View file

@ -0,0 +1,33 @@
<!doctype html>
<style>
body {
width: 150vw;
height: 150vh;
}
.anchor {
width: 50px;
height: 50px;
background: orange;
}
#anchor1 {
position: absolute;
top: 100px;
left: 350px;
}
#anchor2 {
position:fixed;
right: 0;
bottom: 0;
}
#anchored {
position: absolute;
top: 50px;
left: 350px;
width: 50px;
height: 50px;
background: blue;
}
</style>
<div class="anchor" id="anchor1"></div>
<div class="anchor" id="anchor2"></div>
<div id="anchored"></div>

View file

@ -0,0 +1,57 @@
<!doctype html>
<html class=reftest-wait>
<meta charset="utf-8">
<title>CSS Anchor Positioning Test: @position-try with different default anchors,
switching to fixed-position anchor on scroll and back on another scroll</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-rule">
<link rel="match" href="position-try-switch-from-fixed-anchor-ref.html">
<script src="/common/reftest-wait.js"></script>
<script src="/common/rendering-utils.js"></script>
<style>
body {
width: 150vw;
height: 150vh;
}
.anchor {
width: 50px;
height: 50px;
background: orange;
}
#anchor1 {
anchor-name: --anchor1;
position: absolute;
top: 100px;
left: 350px;
}
#anchor2 {
anchor-name: --anchor2;
position:fixed;
right: 0;
bottom: 0;
}
#anchored {
position-anchor: --anchor1;
inset-area: top;
position-try-options: --fixed;
position: fixed;
width: 50px;
height: 50px;
background: blue;
}
@position-try --fixed {
inset-area: top left;
position-anchor: --anchor2;
}
</style>
<div class="anchor" id="anchor1"></div>
<div class="anchor" id="anchor2"></div>
<div id="anchored"></div>
<script>
waitForAtLeastOneFrame().then(() => {
window.scrollTo(250, 100);
waitForAtLeastOneFrame().then(() => {
window.scrollTo(0, 0);
takeScreenshot();
});
});
</script>

View file

@ -0,0 +1,37 @@
<!doctype html>
<meta charset="utf-8">
<style>
body {
width: 150vw;
height: 150vh;
}
.anchor {
width: 50px;
height: 50px;
background: orange;
}
#anchor1 {
position: absolute;
top: 100px;
left: 350px;
}
#anchor2 {
position:fixed;
right: 0;
bottom: 0;
}
#anchored {
position: fixed;
right: 50px;
bottom: 50px;
width: 50px;
height: 50px;
background: blue;
}
</style>
<div class="anchor" id="anchor1"></div>
<div class="anchor" id="anchor2"></div>
<div id="anchored"></div>
<script>
window.scrollTo(250, 100);
</script>

View file

@ -0,0 +1,53 @@
<!doctype html>
<html class=reftest-wait>
<meta charset="utf-8">
<title>CSS Anchor Positioning Test: @position-try with different default anchors, switching to fixed-position anchor on scroll</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-rule">
<link rel="match" href="position-try-switch-to-fixed-anchor-ref.html">
<script src="/common/reftest-wait.js"></script>
<script src="/common/rendering-utils.js"></script>
<style>
body {
width: 150vw;
height: 150vh;
}
.anchor {
width: 50px;
height: 50px;
background: orange;
}
#anchor1 {
anchor-name: --anchor1;
position: absolute;
top: 100px;
left: 350px;
}
#anchor2 {
anchor-name: --anchor2;
position:fixed;
right: 0;
bottom: 0;
}
#anchored {
position-anchor: --anchor1;
inset-area: top;
position-try-options: --fixed;
position: fixed;
width: 50px;
height: 50px;
background: blue;
}
@position-try --fixed {
inset-area: top left;
position-anchor: --anchor2;
}
</style>
<div class="anchor" id="anchor1"></div>
<div class="anchor" id="anchor2"></div>
<div id="anchored"></div>
<script>
waitForAtLeastOneFrame().then(() => {
window.scrollTo(250, 100);
takeScreenshot();
});
</script>

View file

@ -2,7 +2,6 @@
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#transforms">
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#relative-positioning">
<link rel="match" href="relpos-inline-ref.html">
<style>
body {
margin: 8px;

View file

@ -1,41 +0,0 @@
The tests in this directory are Copyright (c) 2007-2008, The
Mozilla Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of the The Mozilla Foundation nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Alternatively, these tests may be used under the terms of the W3C
Document License at
http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
in which case the provisions of the W3C Document License are
applicable instead of those above.

View file

@ -16,6 +16,9 @@ features:
files:
- lab-*
- lch-*
- name: light-dark
files:
- light-dark-*
- name: oklab
files:
- oklab-*

View file

@ -791,7 +791,6 @@
for (const colorSpace of ["xyz-d50", "xyz-d65"]) {
fuzzy_test_computed_color(`color(from rgb(from color(${colorSpace} 0.99 0.88 0.77) r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);
fuzzy_test_computed_color(`color(from hsl(from color(${colorSpace} 0.99 0.88 0.77) h s l) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);
fuzzy_test_computed_color(`color(from hwb(from color(${colorSpace} 0.99 0.88 0.77) h w b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);
fuzzy_test_computed_color(`color(from lab(from color(${colorSpace} 0.99 0.88 0.77) l a b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);
fuzzy_test_computed_color(`color(from lch(from color(${colorSpace} 0.99 0.88 0.77) l c h) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);
fuzzy_test_computed_color(`color(from oklab(from color(${colorSpace} 0.99 0.88 0.77) l a b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001);

View file

@ -42,7 +42,7 @@ test_valid_value_combinations("content", `counters(counter-name, ".", counter-st
test_valid_value_combinations("content", `counters(counter-name, ".", dECiMaL)`, `counters(counter-name, ".")`);
test_valid_value_combinations("content", `counters(counter-name, ".", DECIMAL)`, `counters(counter-name, ".")`);
test_valid_value_combinations("content", `url("https://www.example.com/picture.svg")`);
test_valid_value_combinations("content", `url("picture.svg")`);
test_valid_value_combinations("content", `"hello"`);
@ -52,7 +52,7 @@ test_valid_value_combinations("content", `counter(counter-name) "potato"`);
test_valid_value_combinations("content", `counters(counter-name, ".") "potato"`);
test_valid_value_combinations("content", `"(" counters(counter-name, ".", counter-style) ")"`);
test_valid_value_combinations("content", `open-quote "hello" "world" close-quote`);
test_valid_value_combinations("content", `url("https://www.example.com/picture.svg") "hello"`);
test_valid_value_combinations("content", `url("picture.svg") "hello"`);
</script>
</body>
</html>

View file

@ -1,7 +1,6 @@
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#intrinsic-sizes">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>

View file

@ -1,7 +1,6 @@
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#intrinsic-sizes">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>

View file

@ -64,6 +64,12 @@ test_shorthand_value('flex', '1 0 max-content', {
'flex-shrink': '0',
'flex-basis': 'max-content'
});
test_shorthand_value('flex', 'auto 1 2', {
'flex-grow': '1',
'flex-shrink': '2',
'flex-basis': 'auto'
});
</script>
</body>
</html>

View file

@ -6,7 +6,19 @@ features:
- palette-values-rule-*
- name: font-synthesis
files:
- font-synthesis-*
- font-synthesis-0*.html
- name: font-synthesis-position
files:
- font-synthesis-position*
- name: font-synthesis-small-caps
files:
- font-synthesis-small-caps*
- name: font-synthesis-style
files:
- font-synthesis-style*
- name: font-synthesis-weight
files:
- font-synthesis-weight*
- name: font-variant-alternates
files:
- alternates-order.html

View file

@ -8,7 +8,21 @@ features:
- font-palette-values-*
- name: font-synthesis
files:
- font-synthesis-*
- font-synthesis-computed.html
- font-synthesis-invalid.html
- font-synthesis-valid.html
- name: font-synthesis-position
files:
- font-synthesis-position*
- name: font-synthesis-small-caps
files:
- font-synthesis-small-caps*
- name: font-synthesis-style
files:
- font-synthesis-style*
- name: font-synthesis-weight
files:
- font-synthesis-weight*
- name: font-variant-alternates
files:
- font-variant-alternates-*

View file

@ -0,0 +1,3 @@
features:
- name: highlight
files: "**"

View file

@ -0,0 +1,4 @@
features:
- name: conic-gradients
files:
- "*conic*"

View file

@ -0,0 +1,3 @@
features:
- name: baseline-source
files: "**"

View file

@ -21,17 +21,17 @@ html,body {
<span>6</span><!-- "6" -->
<span>0</span><!-- "0" -->
<x>
<span>2</span><!-- "2" -->
<span>0.2</span><!-- "0.2" -->
</x>
<span>3</span><!-- "3" -->
<span>0.3</span><!-- "0.3" -->
<x>
<span>0</span><!-- "0" -->
<span>2</span><!-- "2" -->
<span>0.3.0</span><!-- "0.3.0" -->
<span>0.3.2</span><!-- "0.3.2" -->
<x>
<span>2.5</span><!-- "2.5" -->
<span>0.3.2.5</span><!-- "0.3.2.5" -->
</x>
</x>
<span>3</span><!-- "3" -->
<span>0.3.3</span><!-- "0.3.3" -->
</body>
</html>

View file

@ -24,17 +24,17 @@ span::before { content: counters(n, '.'); }
<span style="counter-set: n 6; counter-increment: n 2"></span><!-- "6" -->
<span style="counter-set: n; counter-increment: n 2"></span><!-- "0" -->
<x style="counter-reset: n 9">
<span style="counter-set: n 2"></span><!-- "2" -->
<span style="counter-set: n 2"></span><!-- "0.2" -->
</x>
<span style="counter-increment: n"></span><!-- "3" -->
<span style="counter-increment: n"></span><!-- "0.3" -->
<x style="counter-reset: n 9">
<span style="counter-set: n"></span><!-- "0" -->
<span style="counter-set: n 2"></span><!-- "2" -->
<span style="counter-set: n"></span><!-- "0.3.0" -->
<span style="counter-set: n 2"></span><!-- "0.3.2" -->
<x style="counter-reset: n 1">
<span style="counter-set: n 5"></span><!-- "2.5" -->
<span style="counter-set: n 5"></span><!-- "0.3.2.5" -->
</x>
</x>
<span style="counter-increment: n"></span><!-- "3" -->
<span style="counter-increment: n"></span><!-- "0.3.3" -->
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Lists Ref Test: Implied counter scopes by 'counter-increment'</title>
<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-lists/#propdef-counter-increment">
<style type="text/css">
body { white-space: nowrap; }
</style>
</head>
<body>
<p>The following two lines should be identical:</p>
<div>B 1 1.0 1 1.0</div>
<div>B 1 1.0 1 1.0</div>
</body>
</html>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Lists: Implied counter scopes by 'counter-increment'</title>
<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-lists/#propdef-counter-increment">
<link rel="match" href="counters-005-ref.html">
<style type="text/css">
body { white-space: nowrap; }
.i { counter-increment: c 1; }
.ib:before { counter-increment: c 1; content: "B" }
.r { counter-reset: c 0; }
.u:before { content: counters(c, ".") " "; }
</style>
</head>
<body>
<p>The following two lines should be identical:</p>
<div>
<span class="ib">
<span class="u"></span>
<span class="r">
<span class="u"></span>
</span>
</span>
<span class="i">
<span class="u"></span>
<span class="r">
<span class="u"></span>
</span>
</span>
</div>
<div>B 1 1.0 1 1.0</div>
</body>
</html>

View file

@ -0,0 +1,6 @@
<!doctype html>
<html>
<link rel="help" href="http://crbug.com/339592908">
<div><li></li></div>
<div><li style="display: inline-flex;"></li></div>
</html>

View file

@ -0,0 +1,6 @@
features:
- name: masks
# To match the scope of the feature in web-features, this should only include
# tests for https://drafts.fxtf.org/css-masking-1/#positioned-masks.
files:
- mask-shorthand-subproperties-reset.html

View file

@ -0,0 +1,8 @@
features:
- name: masks
# To match the scope of the feature in web-features, this should only include
# tests for https://drafts.fxtf.org/css-masking-1/#positioned-masks.
files:
- mask-image-interpolation.html
- mask-no-interpolation.html
- mask-position-interpolation.html

View file

@ -0,0 +1,3 @@
features:
- name: masks
files: "**"

View file

@ -0,0 +1,18 @@
<!doctype html>
<title>Change of viewport affecting mask content</title>
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-mask-image">
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#svg-masks">
<link rel="match" href="../clip-path/reference/green-100x100.html">
<div id="container" style="width: 0%">
<svg style="width: 100%">
<mask id="mask">
<rect width="100%" height="100%" fill="white"/>
</mask>
<rect width="100" height="100" fill="red"/>
<rect width="100" height="100" fill="green" mask="url(#mask)"/>
</svg>
</div>
<script>
document.body.offsetTop;
document.getElementById('container').style.width = '100%';
</script>

View file

@ -0,0 +1,10 @@
features:
- name: masks
# To match the scope of the feature in web-features, this should only include
# tests for https://drafts.fxtf.org/css-masking-1/#positioned-masks.
files:
- mask-composite-*
- mask-computed.html
- mask-invalid.html
- mask-position-*
- mask-repeat-*

View file

@ -0,0 +1,30 @@
features:
- name: overflow-shorthand
files:
# This is all overflow-* except overflow-auto-scrollbar-gutter-intrinsic-* and
# overflow-scroll-*. TODO: convert to an exclusion patterns, or rename tests
# to make overflow-* only match the below.
- overflow-abpos-transform.html
- overflow-body-propagation-*
- overflow-canvas.html
- overflow-clip-*
- overflow-codependent-scrollbars.html
- overflow-ellipsis-dynamic-001.html
- overflow-empty-child-box.html
- overflow-hidden-resize-with-stacking-context-child.html
- overflow-img-*
- overflow-img.html
- overflow-inline-block-with-opacity.html
- overflow-inline-transform-relative.html
- overflow-negative-margin-dynamic.html
- overflow-negative-margin.html
- overflow-no-frameset-propagation.html
- overflow-no-interpolation.html
- overflow-overlay.html
- overflow-padding.html
- overflow-recalc-001.html
- overflow-replaced-element-001.html
- overflow-shorthand-001.html
- overflow-video.html
- rounded-overflow-*
- select-size-overflow-001.html

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
@page {
margin: 0;
}
body {
margin: 100px;
background: yellow;
}
</style>
The entire page should be yellow.

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-page-3/#page-properties">
<link rel="match" href="page-box-001-print-ref.html">
<style>
@page {
margin: 0;
background: yellow;
}
body {
margin: 100px;
}
</style>
The entire page should be yellow.

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
@page {
margin: 0;
}
body {
margin: 0;
background: #00f;
}
</style>
<div style="display:grid; height:100vh; background:#f008;">
<div style="margin:8px;">
This page should have a violet-ish background, not red, not blue.
</div>
</div>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-page-3/#page-properties">
<link rel="match" href="page-box-002-print-ref.html">
<style>
@page {
margin: 0;
background: #00f;
}
body {
background: #f008;
}
</style>
This page should have a violet-ish background, not red, not blue.

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
@page {
margin: 0;
}
body {
margin: 0;
background: #00f;
}
</style>
<div style="display:grid; height:100vh; background:#f008;">
<div style="margin:8px;">
This page should have a violet-ish background, not red, not blue.
</div>
</div>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-page-3/#page-properties">
<link rel="match" href="page-box-003-print-ref.html">
<style>
@page {
margin: 0;
background: #00f;
}
body {
background: linear-gradient(#f008, #f008);
}
</style>
This page should have a violet-ish background, not red, not blue.

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
@page {
size: 400px 200px;
margin: 0;
}
body {
margin: 0;
}
.pagebox {
display: flow-root;
}
.pagebox > div {
width: 300px;
background: gray;
}
.pagebox > div > div {
box-sizing: border-box;
border: solid;
width: 250px;
height: 100%;
}
.left {
margin: 50px;
height: 100px;
}
.left > div {
background: hotpink;
}
.left > div::before {
content: "Margins on every side.";
}
.right {
height: 200px;
}
.right > div {
background: cyan;
}
.right > div::before {
content: "No page margins.";
}
.first {
height: 200px;
margin-left: 50px;
}
.first > div {
background: yellow;
}
</style>
<div class="pagebox">
<div class="first">
<div>
Every page should have a colored box as tall as the page area (gray area).<br>
This particular page should have a left-margin.<br>
There should be 7 pages.
</div>
</div>
</div>
<div class="pagebox">
<div class="left"><div></div></div>
</div>
<div class="pagebox">
<div class="right"><div></div></div>
</div>
<div class="pagebox">
<div class="left"><div></div></div>
</div>
<div class="pagebox">
<div class="right"><div></div></div>
</div>
<div class="pagebox">
<div class="left"><div></div></div>
</div>
<div class="pagebox">
<div class="right"><div></div></div>
</div>

View file

@ -0,0 +1,62 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-page-3/#at-page-rule">
<link rel="match" href="page-margin-007-print-ref.html">
<style>
@page {
size: 400px 200px;
margin: 0;
}
@page :first {
margin-left: 50px;
}
@page :left {
margin: 50px;
}
body {
margin: 0;
}
.container {
width: 300px;
background: gray;
}
.container > div {
box-sizing: border-box;
border: solid;
width: 250px;
}
.left {
height: 100px;
background: hotpink;
}
.left::before {
content: "Margins on every side.";
}
.right {
height: 200px;
background: cyan;
}
.right::before {
content: "No page margins.";
}
.first {
height: 200px;
background: yellow;
}
</style>
<div class="container">
<div class="first">
Every page should have a colored box as tall as the page area (gray area).<br>
This particular page should have a left-margin.<br>
There should be 7 pages.
</div>
<div class="left"></div>
<div class="right"></div>
<div class="left"></div>
</div>
<div class="container" style="position:absolute;">
<div class="right"></div>
<div class="left"></div>
<div class="right"></div>
</div>

View file

@ -0,0 +1,20 @@
<!doctype html>
<meta charset=utf8>
<style>
@property --my-registered-property {
syntax: "<color>";
inherits: false;
initial-value: #f0f2f5;
}
.outer {
--unregistered-property: var(--my-registered-property);
}
.inner {
--unregistered-property: #c6cfdb;
}
</style>
<div class="outer">
<div class="inner"></div>
</div>

View file

@ -0,0 +1,4 @@
features:
- name: target-text
files:
- target-text-*

View file

@ -0,0 +1,7 @@
<!doctype html>
<body>
<script>
const PA_SIZE = 10;
window.getComputedStyle(document.body,'\\q' + 'q'.repeat(PA_SIZE));
</script>
</body>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-ruby/#ruby-layout">
<link rel="stylesheet" href="/fonts/ahem.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
body {
font: 20px/1 Ahem;
}
</style>
<body>
<div id=container></div>
<script>
const container = document.querySelector('#container');
test(() => {
container.innerHTML = '<ruby style="position:relative">base<rt>annotation</ruby>';
const rtBefore = document.querySelector('rt').getBoundingClientRect();
document.querySelector('ruby').style.left = '100px';
const rtAfter = document.querySelector('rt').getBoundingClientRect();
assert_equals(rtBefore.x + 100, rtAfter.x);
}, 'position:relative on a ruby should move the annotation together');
test(() => {
container.innerHTML = `<span style="position:relative">
<ruby>base<rt>annotation</ruby></span>`;
const rubyBefore = document.querySelector('ruby').getBoundingClientRect();
const rtBefore = document.querySelector('rt').getBoundingClientRect();
document.querySelector('span').style.left = '100px';
const rubyAfter = document.querySelector('ruby').getBoundingClientRect();
const rtAfter = document.querySelector('rt').getBoundingClientRect();
assert_equals(rubyBefore.x + 100, rubyAfter.x);
assert_equals(rtBefore.x + 100, rtAfter.x);
}, 'position:relative on a ruby parent should move the ruby and the annotation');
test(() => {
container.innerHTML = `b<ruby style="position:relative">base
<rt style="position:relative">annotation</ruby>`;
const rtBefore = document.querySelector('rt').getBoundingClientRect();
document.querySelector('ruby').style.left = '100px';
document.querySelector('rt').style.left = '10px';
document.querySelector('rt').style.top = '-50px';
const rtAfter = document.querySelector('rt').getBoundingClientRect();
assert_equals(rtBefore.x + 110, rtAfter.x);
assert_equals(rtBefore.y - 50, rtAfter.y);
}, 'Accumulate position:relative offsets');
</script>
</body>

View file

@ -0,0 +1,3 @@
<!DOCTYPE html>
<div>foo <ruby style="ruby-position:under">base<rt>annotation</rt></ruby><br>
bar <ruby>base<rt>annotation</rt></ruby></div>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-ruby/#placement">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#first-line-styling">
<link rel="match" href="pseudo-first-line-ref.html">
<style>
div::first-line {
ruby-position: under;
}
</style>
<div>foo <ruby>base<rt>annotation</rt></ruby><br>
bar <ruby>base<rt>annotation</rt></ruby></div>

View file

@ -9,7 +9,8 @@ function checkSnapEventSupport(event_type) {
}
function assertSnapEvent(evt, expected_ids) {
assert_equals(evt.bubbles, false, "snap events don't bubble");
assert_equals(evt.bubbles, evt.target == document,
"snap events don't bubble except when fired at the document");
assert_false(evt.cancelable, "snap events are not cancelable.");
assert_equals(evt.snapTargetBlock, expected_ids.block,
"snap event supplied expected target in block axis");

View file

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> CSS Scroll Snap 2 Test: snapchanged event on the document bubbles</title>
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-2/#snap-events">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/css-scroll-snap-2/resources/common.js"></script>
<script src="/dom/events/scrolling/scroll_support.js"></script>
</head>
<body>
<style>
:root {
margin: 0;
padding: 0;
scroll-snap-type: y mandatory;
}
div {
position: absolute;
margin: 0px;
}
#spacer {
width: 200vw;
height: 200vh;
}
.snap_point {
width: 40vw;
height: 40vh;
scroll-snap-align: start;
}
#snap_point_1 {
left: 0px;
top: 0px;
background-color: red;
}
#snap_point_2 {
top: 40vh;
left: 40vw;
background-color: orange;
}
#snap_point_3 {
left: 80vw;
top: 80vh;
background-color: blue;
}
</style>
<div id="spacer"></div>
<div id="snap_point_1" class="snap_point"></div>
<div id="snap_point_2" class="snap_point"></div>
<div id="snap_point_3" class="snap_point"></div>
<script>
promise_test(async(t) => {
await waitForCompositorCommit();
let snapchanging_promise = waitForSnapEvent(window, "snapchanging");
let snapchanged_promise = waitForSnapEvent(window, "snapchanged");
document.scrollingElement.scrollTo(0, snap_point_2.offsetTop);
let snapchanging_evt = await snapchanging_promise;
let snapchanged_evt = await snapchanged_promise;
assertSnapEvent(snapchanging_evt, { inline: null, block: snap_point_2 });
assertSnapEvent(snapchanged_evt, { inline: null, block: snap_point_2 });
}, "snapchanged bubbles when fired at the document (addEventListener).");
promise_test(async(t) => {
await waitForScrollReset(t, document.scrollingElement);
await waitForCompositorCommit();
let snapchanging_promise = waitForSnapEvent(window, "snapchanging",
/*scroll_happens=*/true,
/*use_onsnap_member=*/true);
let snapchanged_promise = waitForSnapEvent(window, "snapchanged",
/*scroll_happens=*/true,
/*use_onsnap_member=*/true);
document.scrollingElement.scrollTo(0, snap_point_2.offsetTop);
let snapchanging_evt = await snapchanging_promise;
let snapchanged_evt = await snapchanged_promise;
assertSnapEvent(snapchanging_evt, { inline: null, block: snap_point_2 });
assertSnapEvent(snapchanged_evt, { inline: null, block: snap_point_2 });
}, "snapchanged bubbles when fired at the document (onsnapchanged).");
</script>
</body>
</html>

View file

@ -0,0 +1,3 @@
features:
- name: scroll-snap
files: "**"

View file

@ -3,7 +3,6 @@
<link rel="help" href="https://drafts.csswg.org/css-shadow-parts" >
<link rel="help" href="https://drafts.csswg.org/selectors/#matches">
<link href="https://drafts.csswg.org/selectors/#matches" rel="help">
<link rel="match" href="interaction-with-nested-pseudo-class-ref.html">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>

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