mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision b'8f48f40aab7f7f8a8118dc1a46972d070622be52' (#32271)
This commit is contained in:
parent
2904c32e05
commit
1f6d358cf9
407 changed files with 12186 additions and 1091 deletions
|
@ -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
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[counters-005.html]
|
||||
expected: FAIL
|
|
@ -1,3 +1,3 @@
|
|||
[overfow-outside-padding.html]
|
||||
[overflow-outside-padding.html]
|
||||
[#target did not trigger scroll overflow]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[text-wrap-nowrap-001.html]
|
||||
expected: FAIL
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -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
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[eventsource-request-cancellation.window.any.html]
|
||||
expected: TIMEOUT
|
||||
|
||||
[eventsource-request-cancellation.window.any.worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,3 @@
|
|||
[response-arraybuffer-realm.window.html]
|
||||
[realm of the ArrayBuffer from Response arrayBuffer()]
|
||||
expected: FAIL
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,3 +1,3 @@
|
|||
[traverse_the_history_4.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[svg-filter-lh-rlh.html]
|
||||
expected: FAIL
|
|
@ -1,6 +1,6 @@
|
|||
[Document.currentScript.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Script script-exec]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
|
@ -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
|
@ -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
|
||||
|
|
2
tests/wpt/meta/css/css-lists/counters-005.html.ini
Normal file
2
tests/wpt/meta/css/css-lists/counters-005.html.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[counters-005.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[text-wrap-nowrap-001.html]
|
||||
expected: FAIL
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[eventsource-request-cancellation.window.any.html]
|
||||
expected: TIMEOUT
|
||||
|
||||
[eventsource-request-cancellation.window.any.worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,3 @@
|
|||
[response-arraybuffer-realm.window.html]
|
||||
[realm of the ArrayBuffer from Response arrayBuffer()]
|
||||
expected: FAIL
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[svg-filter-lh-rlh.html]
|
||||
expected: FAIL
|
|
@ -1,4 +1,4 @@
|
|||
[Document.currentScript.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Script script-svg]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
[performance-navigation-timing-iframes-without-attributes.tentative.window.html]
|
||||
expected: TIMEOUT
|
||||
[RemoteContextHelper navigation using BFCache]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
3
tests/wpt/tests/compute-pressure/WEB_FEATURES.yml
Normal file
3
tests/wpt/tests/compute-pressure/WEB_FEATURES.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
features:
|
||||
- name: compute-pressure
|
||||
files: "**"
|
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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>
|
|
@ -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"
|
||||
}
|
||||
|
|
@ -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\"}"
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
|
@ -16,6 +16,9 @@ features:
|
|||
files:
|
||||
- lab-*
|
||||
- lch-*
|
||||
- name: light-dark
|
||||
files:
|
||||
- light-dark-*
|
||||
- name: oklab
|
||||
files:
|
||||
- oklab-*
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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-*
|
||||
|
|
3
tests/wpt/tests/css/css-highlight-api/WEB_FEATURES.yml
Normal file
3
tests/wpt/tests/css/css-highlight-api/WEB_FEATURES.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
features:
|
||||
- name: highlight
|
||||
files: "**"
|
4
tests/wpt/tests/css/css-images/WEB_FEATURES.yml
Normal file
4
tests/wpt/tests/css/css-images/WEB_FEATURES.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
features:
|
||||
- name: conic-gradients
|
||||
files:
|
||||
- "*conic*"
|
|
@ -0,0 +1,3 @@
|
|||
features:
|
||||
- name: baseline-source
|
||||
files: "**"
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
19
tests/wpt/tests/css/css-lists/counters-005-ref.html
Normal file
19
tests/wpt/tests/css/css-lists/counters-005-ref.html
Normal 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>
|
38
tests/wpt/tests/css/css-lists/counters-005.html
Normal file
38
tests/wpt/tests/css/css-lists/counters-005.html
Normal 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>
|
|
@ -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>
|
6
tests/wpt/tests/css/css-masking/WEB_FEATURES.yml
Normal file
6
tests/wpt/tests/css/css-masking/WEB_FEATURES.yml
Normal 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
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
|||
features:
|
||||
- name: masks
|
||||
files: "**"
|
|
@ -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>
|
10
tests/wpt/tests/css/css-masking/parsing/WEB_FEATURES.yml
Normal file
10
tests/wpt/tests/css/css-masking/parsing/WEB_FEATURES.yml
Normal 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-*
|
30
tests/wpt/tests/css/css-overflow/WEB_FEATURES.yml
Normal file
30
tests/wpt/tests/css/css-overflow/WEB_FEATURES.yml
Normal 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
|
12
tests/wpt/tests/css/css-page/page-box-001-print-ref.html
Normal file
12
tests/wpt/tests/css/css-page/page-box-001-print-ref.html
Normal 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.
|
14
tests/wpt/tests/css/css-page/page-box-001-print.html
Normal file
14
tests/wpt/tests/css/css-page/page-box-001-print.html
Normal 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.
|
16
tests/wpt/tests/css/css-page/page-box-002-print-ref.html
Normal file
16
tests/wpt/tests/css/css-page/page-box-002-print-ref.html
Normal 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>
|
14
tests/wpt/tests/css/css-page/page-box-002-print.html
Normal file
14
tests/wpt/tests/css/css-page/page-box-002-print.html
Normal 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.
|
16
tests/wpt/tests/css/css-page/page-box-003-print-ref.html
Normal file
16
tests/wpt/tests/css/css-page/page-box-003-print-ref.html
Normal 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>
|
14
tests/wpt/tests/css/css-page/page-box-003-print.html
Normal file
14
tests/wpt/tests/css/css-page/page-box-003-print.html
Normal 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.
|
78
tests/wpt/tests/css/css-page/page-margin-007-print-ref.html
Normal file
78
tests/wpt/tests/css/css-page/page-margin-007-print-ref.html
Normal 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>
|
62
tests/wpt/tests/css/css-page/page-margin-007-print.html
Normal file
62
tests/wpt/tests/css/css-page/page-margin-007-print.html
Normal 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>
|
|
@ -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>
|
4
tests/wpt/tests/css/css-pseudo/WEB_FEATURES.yml
Normal file
4
tests/wpt/tests/css/css-pseudo/WEB_FEATURES.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
features:
|
||||
- name: target-text
|
||||
files:
|
||||
- target-text-*
|
|
@ -0,0 +1,7 @@
|
|||
<!doctype html>
|
||||
<body>
|
||||
<script>
|
||||
const PA_SIZE = 10;
|
||||
window.getComputedStyle(document.body,'\\q' + 'q'.repeat(PA_SIZE));
|
||||
</script>
|
||||
</body>
|
47
tests/wpt/tests/css/css-ruby/position-relative.html
Normal file
47
tests/wpt/tests/css/css-ruby/position-relative.html
Normal 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>
|
3
tests/wpt/tests/css/css-ruby/pseudo-first-line-ref.html
Normal file
3
tests/wpt/tests/css/css-ruby/pseudo-first-line-ref.html
Normal 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>
|
11
tests/wpt/tests/css/css-ruby/pseudo-first-line.html
Normal file
11
tests/wpt/tests/css/css-ruby/pseudo-first-line.html
Normal 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>
|
|
@ -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");
|
||||
|
|
|
@ -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>
|
3
tests/wpt/tests/css/css-scroll-snap/WEB_FEATURES.yml
Normal file
3
tests/wpt/tests/css/css-scroll-snap/WEB_FEATURES.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
features:
|
||||
- name: scroll-snap
|
||||
files: "**"
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue