mirror of
https://github.com/servo/servo.git
synced 2025-06-24 09:04:33 +01:00
Update web-platform-tests to revision b'3b791e5b10812a4ca4473d93679fc70d1a7f5f88'
This commit is contained in:
parent
61fe4cf606
commit
17f4d58879
157 changed files with 1609 additions and 430 deletions
|
@ -1,4 +0,0 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
File diff suppressed because it is too large
Load diff
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
|
@ -1,6 +1,3 @@
|
|||
[block-in-inline-hittest-002.html]
|
||||
[elementsFromPoint]
|
||||
expected: FAIL
|
||||
|
||||
[elementFromPoint]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[block-in-inline-hittest-relpos-zindex.html]
|
||||
[position: relative; z-index: -1;]
|
||||
expected: FAIL
|
||||
|
||||
[block-in-inline-hittest-relpos-zindex]
|
||||
expected: FAIL
|
||||
|
|
|
@ -64,3 +64,15 @@
|
|||
|
||||
[Property content value '-webkit-image-set(url('http://web-platform.test/example.png') 192dpi, linear-gradient(black, white) 1x)']
|
||||
expected: FAIL
|
||||
|
||||
[Property background-image value 'image-set(url("http://web-platform.test/example.png") type("image/unsupported"))']
|
||||
expected: FAIL
|
||||
|
||||
[Property background-image value '-webkit-image-set(url("http://web-platform.test/example.png") type("image/unsupported"))']
|
||||
expected: FAIL
|
||||
|
||||
[Property background-image value 'image-set(url("http://web-platform.test/example.png") 2x type("image/unsupported"), url("http://web-platform.test/example.png") 1x type("image/unsupported"))']
|
||||
expected: FAIL
|
||||
|
||||
[Property background-image value '-webkit-image-set(url("http://web-platform.test/example.png") 2x type("image/unsupported"), url("http://web-platform.test/example.png") 1x type("image/unsupported"))']
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[text-wrap-balance-002.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[white-space-vs-joiners-002.html]
|
||||
expected: FAIL
|
|
@ -4,90 +4,3 @@
|
|||
|
||||
[background-position length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[height length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[top length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[right length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[bottom length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[left length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length-em(em) / events]
|
||||
expected: FAIL
|
||||
|
|
|
@ -80,9 +80,6 @@
|
|||
[ trailing white space (single space)]
|
||||
expected: FAIL
|
||||
|
||||
[ middle white space (double space) 2]
|
||||
expected: FAIL
|
||||
|
||||
[ trailing white space (double space) 2]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -95,9 +92,6 @@
|
|||
[ trailing white space (single space) (Computed Style)]
|
||||
expected: FAIL
|
||||
|
||||
[ middle white space (double space) 2 (Computed Style)]
|
||||
expected: FAIL
|
||||
|
||||
[ trailing white space (double space) 2 (Computed Style)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -110,9 +104,6 @@
|
|||
[ trailing white space (single space) (Cascading)]
|
||||
expected: FAIL
|
||||
|
||||
[ middle white space (double space) 2 (Cascading)]
|
||||
expected: FAIL
|
||||
|
||||
[ trailing white space (double space) 2 (Cascading)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-float-in-table.html]
|
||||
[float-in-div]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[elementFromPoint-subpixel.html]
|
||||
[Hit test top left corner of box]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
|
@ -146,6 +146,3 @@
|
|||
|
||||
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
|
||||
expected: FAIL
|
||||
|
||||
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -8,6 +8,12 @@
|
|||
[ORB should block opaque application/json]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (non-empty)]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (empty)]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[known-mime-type.sub.any.worker.html]
|
||||
[ORB should block opaque font/ttf]
|
||||
|
@ -18,3 +24,9 @@
|
|||
|
||||
[ORB should block opaque application/json]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (non-empty)]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (empty)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -43,3 +43,6 @@
|
|||
|
||||
[public https to local https: failure.]
|
||||
expected: FAIL
|
||||
|
||||
[public to public: success.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[scroll-restoration-fragment-scrolling-cross-origin.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: ERROR
|
||||
[Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[consecutive-srcdoc.html]
|
||||
expected: TIMEOUT
|
||||
[changing srcdoc does a replace navigation since the URL is still about:srcdoc]
|
||||
expected: FAIL
|
||||
|
||||
[changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
[005.html]
|
||||
expected: TIMEOUT
|
||||
[Link with onclick navigation and href navigation ]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
[iframe-src-aboutblank-navigate-immediately.html]
|
||||
expected: TIMEOUT
|
||||
[Navigating to a different document with window.open]
|
||||
expected: FAIL
|
||||
|
||||
[Navigating to a different document with form submission]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Navigating to a different document with link click]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
[javascript-url-referrer.window.html]
|
||||
expected: TIMEOUT
|
||||
[unsafe-url referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[origin referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[no-referrer referrer policy used to create the starting page]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[navigation-unload-cross-origin.sub.window.html]
|
||||
[Cross-origin navigation started from unload handler must be ignored]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[navigation-unload-same-origin.window.html]
|
||||
[Same-origin navigation started from unload handler must be ignored]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[a-click.html]
|
||||
[aElement.click() before the load event must NOT replace]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[traverse-during-unload.html]
|
||||
expected: TIMEOUT
|
||||
[Traversing the history during unload]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,3 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-1.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
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[sandbox-top-navigation-child-special-cases.tentative.sub.window.html]
|
||||
expected: TIMEOUT
|
||||
[Allow top with user activation + user activation]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -175,3 +175,6 @@
|
|||
|
||||
[multipart/form-data: backslash in value (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[multipart/form-data: Basic test (formdata event)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -172,3 +172,9 @@
|
|||
|
||||
[text/plain: Basic test (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[text/plain: Basic File test (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[text/plain: 0x00 in name (formdata event)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -172,3 +172,9 @@
|
|||
|
||||
[application/x-www-form-urlencoded: 0x00 in filename (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[application/x-www-form-urlencoded: 0x00 in name (normal form)]
|
||||
expected: FAIL
|
||||
|
||||
[application/x-www-form-urlencoded: \\r\\n in filename (formdata event)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
|
@ -3,6 +3,3 @@
|
|||
expected: TIMEOUT
|
||||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[cross-partition.https.tentative.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[BroadcastChannel messages aren't received from a cross-partition iframe]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,3 @@
|
|||
[stylesheet_media_queries.html]
|
||||
[Media queries within stylesheets]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[scrollBy.html]
|
||||
[Ensure that the window.scrollBy function affects scroll position as expected]
|
||||
expected: FAIL
|
|
@ -30,22 +30,29 @@ backgroundFetchTest((t, bgFetch) => {
|
|||
return bgFetch.fetch(uniqueId(), 'http://localhost');
|
||||
}, 'localhost http: fetch should register ok');
|
||||
|
||||
function testBgFetch(bgFetch, url)
|
||||
{
|
||||
return bgFetch.fetch(uniqueId(), url).then(fetch => {
|
||||
return fetch.match(url);
|
||||
}).then(match => match.responseReady);
|
||||
}
|
||||
|
||||
backgroundFetchTest((t, bgFetch) => {
|
||||
return promise_rejects_js(t, TypeError,
|
||||
bgFetch.fetch(uniqueId(), 'wss:127.0.0.1'));
|
||||
testBgFetch(bgFetch, 'wss:127.0.0.1'));
|
||||
}, 'wss: fetch should reject');
|
||||
|
||||
backgroundFetchTest((t, bgFetch) => {
|
||||
return promise_rejects_js(t, TypeError,
|
||||
bgFetch.fetch(uniqueId(), 'file:///'));
|
||||
testBgFetch(bgFetch, 'file:///'));
|
||||
}, 'file: fetch should reject');
|
||||
|
||||
backgroundFetchTest((t, bgFetch) => {
|
||||
return promise_rejects_js(t, TypeError,
|
||||
bgFetch.fetch(uniqueId(), 'data:text/plain,foo'));
|
||||
testBgFetch(bgFetch, 'data:text/plain,foo'));
|
||||
}, 'data: fetch should reject');
|
||||
|
||||
backgroundFetchTest((t, bgFetch) => {
|
||||
return promise_rejects_js(t, TypeError,
|
||||
bgFetch.fetch(uniqueId(), 'foobar:bazqux'));
|
||||
testBgFetch(bgFetch, 'foobar:bazqux'));
|
||||
}, 'unknown scheme fetch should reject');
|
||||
|
|
|
@ -28,8 +28,12 @@ backgroundFetchTest((t, bgFetch) => {
|
|||
return bgFetch.fetch(uniqueId(), 'https://example.com:8080');
|
||||
}, 'fetch to non-default non-bad port (8080) should register ok');
|
||||
|
||||
backgroundFetchTest((t, bgFetch) => {
|
||||
backgroundFetchTest(async (t, bgFetch) => {
|
||||
const promise = bgFetch.fetch(uniqueId(), 'https://example.com:587').then(fetch => {
|
||||
return fetch.match('https://example.com:587');
|
||||
}).then(record => record.responseReady);
|
||||
|
||||
return promise_rejects_js(
|
||||
t, TypeError,
|
||||
bgFetch.fetch(uniqueId(), 'https://example.com:587'));
|
||||
promise);
|
||||
}, 'fetch to bad port (SMTP) should reject');
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.5);
|
||||
const battery = await navigator.getBattery();
|
||||
|
||||
assert_not_equals(battery, undefined);
|
||||
assert_equals(typeof battery.charging, 'boolean');
|
||||
assert_equals(typeof battery.chargingTime, 'number');
|
||||
assert_equals(typeof battery.dischargingTime, 'number');
|
||||
assert_equals(typeof battery.level, 'number');
|
||||
|
||||
mockBatteryMonitor.verifyBatteryStatus(battery);
|
||||
|
||||
assert_equals(typeof battery.onchargingchange, 'object');
|
||||
assert_equals(typeof battery.onchargingtimechange, 'object');
|
||||
assert_equals(typeof battery.ondischargingtimechange, 'object');
|
||||
assert_equals(typeof battery.onlevelchange, 'object');
|
||||
}, 'verify basic getBattery API support');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -18,7 +18,7 @@ function load_iframe(iframe, src) {
|
|||
|
||||
promise_test(async t => {
|
||||
let iframe = document.getElementById('blank');
|
||||
const src = 'support-iframe.html';
|
||||
const src = 'resources/support-iframe.html';
|
||||
iframe = await load_iframe(iframe, src);
|
||||
await iframe.contentWindow.navigator.getBattery();
|
||||
}, "navigator.getBattery() is allowed in same origin iframe");
|
||||
|
|
|
@ -19,7 +19,7 @@ function load_iframe(iframe, src) {
|
|||
promise_test(async t => {
|
||||
let iframe = document.getElementById('blank');
|
||||
const path = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1);
|
||||
const src = 'https://{{domains[www1]}}:{{ports[https][0]}}' + path + 'support-iframe.html';
|
||||
const src = 'https://{{domains[www1]}}:{{ports[https][0]}}' + path + 'resources/support-iframe.html';
|
||||
iframe = await load_iframe(iframe, src);
|
||||
await promise_rejects_dom(t, 'NotAllowedError', iframe.contentWindow.navigator.getBattery());
|
||||
}, "throw a 'NotAllowedError' when invoking navigator.getBattery() within cross-origin iframe");
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div id="log"></div>
|
||||
<script>
|
||||
async_test(function (t) {
|
||||
var win = window.open('support-window-open.html');
|
||||
var win = window.open('resources/support-window-open.html');
|
||||
window.onmessage = t.step_func(function(e) {
|
||||
assert_array_equals(e.data, [false, false, true]);
|
||||
win.close();
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
const promise1 = navigator.getBattery();
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.5);
|
||||
const result1 = await promise1;
|
||||
mockBatteryMonitor.verifyBatteryStatus(result1);
|
||||
const promise2 = navigator.getBattery();
|
||||
assert_equals(promise1, promise2);
|
||||
const result2 = await promise2;
|
||||
mockBatteryMonitor.verifyBatteryStatus(result2);
|
||||
}, 'multiple consecutive invocations of navigator.getBattery()');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
const promise1 = navigator.getBattery();
|
||||
const promise2 = navigator.getBattery();
|
||||
assert_equals(promise1, promise2);
|
||||
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.5);
|
||||
mockBatteryMonitor.verifyBatteryStatus(await promise1);
|
||||
mockBatteryMonitor.verifyBatteryStatus(await promise2);
|
||||
}, 'multiple parallel invocations of navigator.getBattery()');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
function waitForMessage(data) {
|
||||
return new Promise(
|
||||
resolve => {
|
||||
window.addEventListener('message', e => {
|
||||
if (e.data == data) {
|
||||
resolve();
|
||||
}
|
||||
}, {once: true});
|
||||
});
|
||||
}
|
||||
|
||||
promise_test(async t => {
|
||||
const w = window.open('resources/window-postmessage-open-close.html');
|
||||
await waitForMessage('opened');
|
||||
|
||||
const nav = w.navigator;
|
||||
let result = nav.getBattery();
|
||||
assert_equals(typeof result, 'object');
|
||||
assert_equals(result.constructor, w.Promise);
|
||||
|
||||
w.close();
|
||||
await waitForMessage('closed');
|
||||
result = nav.getBattery();
|
||||
assert_equals(result, undefined);
|
||||
}, 'navigator.getBattery() does not operate on a closed window');
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.srcdoc = '<html></html>';
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
const frameNav = iframe.contentWindow.navigator;
|
||||
document.body.removeChild(iframe);
|
||||
|
||||
const battery = await frameNav.getBattery();
|
||||
assert_equals(battery, undefined);
|
||||
}, 'navigator.getBattery() on a detached frame does not leak or crash');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/page-visibility/resources/window_state_context.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.5);
|
||||
const battery = await navigator.getBattery();
|
||||
|
||||
mockBatteryMonitor.verifyBatteryStatus(battery);
|
||||
|
||||
const fail = () => { throw new Error('unexpected levelchange event'); };
|
||||
battery.addEventListener('levelchange', fail);
|
||||
|
||||
const {minimize, restore} = window_state_context(t);
|
||||
await minimize();
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.55);
|
||||
battery.removeEventListener('levelchange', fail);
|
||||
|
||||
const change =
|
||||
new Promise(resolve => battery.addEventListener('levelchange', resolve));
|
||||
await restore();
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.6);
|
||||
await change;
|
||||
|
||||
mockBatteryMonitor.verifyBatteryStatus(battery);
|
||||
}, 'battery status events only fire on visible pages');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
function nextEvent(target, name) {
|
||||
return new Promise(
|
||||
resolve => target.addEventListener(name, resolve, {once: true}));
|
||||
}
|
||||
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, 0.5);
|
||||
const battery = await navigator.getBattery();
|
||||
|
||||
mockBatteryMonitor.verifyBatteryStatus(battery);
|
||||
|
||||
const events = Promise.all([
|
||||
nextEvent(battery, 'chargingchange'),
|
||||
nextEvent(battery, 'chargingtimechange'),
|
||||
nextEvent(battery, 'dischargingtimechange'),
|
||||
nextEvent(battery, 'levelchange'),
|
||||
]);
|
||||
|
||||
t.step_timeout(() => mockBatteryMonitor.setBatteryStatus(true, 11, 22, 0.6));
|
||||
|
||||
await events;
|
||||
mockBatteryMonitor.verifyBatteryStatus(battery);
|
||||
}, 'event listeners fire as specified');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,34 @@
|
|||
'use strict';
|
||||
|
||||
// These tests rely on the User Agent providing an implementation of
|
||||
// platform battery status backends.
|
||||
//
|
||||
// In Chromium-based browsers this implementation is provided by a polyfill
|
||||
// in order to reduce the amount of test-only code shipped to users. To enable
|
||||
// these tests the browser must be run with these options:
|
||||
//
|
||||
// --enable-blink-features=MojoJS,MojoJSTest
|
||||
|
||||
let mockBatteryMonitor = undefined;
|
||||
|
||||
function battery_status_test(func, name, properties) {
|
||||
promise_test(async t => {
|
||||
if (mockBatteryMonitor === undefined) {
|
||||
if (isChromiumBased) {
|
||||
const mocks =
|
||||
await import('/resources/chromium/mock-battery-monitor.js');
|
||||
mockBatteryMonitor = mocks.mockBatteryMonitor;
|
||||
}
|
||||
}
|
||||
assert_implements(
|
||||
mockBatteryMonitor, 'missing mockBatteryMonitor after initialization');
|
||||
|
||||
mockBatteryMonitor.start();
|
||||
|
||||
t.add_cleanup(() => {
|
||||
mockBatteryMonitor.reset();
|
||||
return mockBatteryMonitor.stop();
|
||||
});
|
||||
return func(t, mockBatteryMonitor);
|
||||
}, name, properties);
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- Used when testing access of a closed/detached window's properties -->
|
||||
<html>
|
||||
<body onunload="opener.postMessage('closed', '*');">
|
||||
<script>
|
||||
opener.postMessage("opened", "*");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/test-only-api.js"></script>
|
||||
<script src="resources/battery-status-helpers.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
battery_status_test(async (t, mockBatteryMonitor) => {
|
||||
const levelFullPrecision = 0.556789;
|
||||
const levelRounded = 0.56;
|
||||
|
||||
mockBatteryMonitor.setBatteryStatus(false, 10, 20, levelFullPrecision);
|
||||
|
||||
const battery = await navigator.getBattery();
|
||||
assert_equals(battery.level, levelRounded);
|
||||
}, 'battery level is reported with restricted precision');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -34,5 +34,5 @@ def main(request, response):
|
|||
(b"Content-Type", b"application/json"),
|
||||
(b"Set-Cookie", cookie)
|
||||
]
|
||||
body = b"dummy value"
|
||||
body = b"var dummy='value';"
|
||||
return headers, body
|
||||
|
|
|
@ -5,7 +5,6 @@ body {
|
|||
div, p {
|
||||
padding: 0; margin: 0;
|
||||
line-height: 150%;
|
||||
float: left;
|
||||
}
|
||||
p {
|
||||
padding-right: .5em;
|
||||
|
|
|
@ -10,7 +10,6 @@ ol, ul {
|
|||
list-style-position: inside;
|
||||
}
|
||||
li, p {
|
||||
float: left;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
|
|
|
@ -29,4 +29,8 @@ test_computed_value_variants('background-image', "image-set(url(http://{{host}}/
|
|||
test_computed_value_variants('background-image', "image-set(url(http://{{host}}/example.png) type('image/png'))", 'image-set(url("http://{{host}}/example.png") 1dppx type("image/png"))');
|
||||
test_computed_value_variants('background-image', "image-set(url(http://{{host}}/example.png) type('image/png') 1x)", 'image-set(url("http://{{host}}/example.png") 1dppx type("image/png"))');
|
||||
test_computed_value_variants('content', "image-set(url('http://{{host}}/example.png') 192dpi, linear-gradient(black, white) 1x)", 'image-set(url("http://{{host}}/example.png") 2dppx, linear-gradient(rgb(0, 0, 0), rgb(255, 255, 255)) 1dppx)');
|
||||
|
||||
// Unsupported type should still serialize.
|
||||
test_computed_value_variants('background-image', 'image-set(url("http://{{host}}/example.png") type("image/unsupported"))', 'image-set(url("http://{{host}}/example.png") 1dppx type("image/unsupported"))');
|
||||
test_computed_value_variants('background-image', 'image-set(url("http://{{host}}/example.png") 2x type("image/unsupported"), url("http://{{host}}/example.png") 1x type("image/unsupported"))', 'image-set(url("http://{{host}}/example.png") 2dppx type("image/unsupported"), url("http://{{host}}/example.png") 1dppx type("image/unsupported"))');
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1417514">
|
||||
<div style="columns:3; column-fill:auto; height:64px;">
|
||||
<span>
|
||||
<div style="column-span:all; height:50px;"></div>
|
||||
<div style="height:13px; padding-top:1px;">
|
||||
<div style="columns:2; padding-bottom:5px;">
|
||||
<div style="contain:size; width:1px; height:20px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1417514">
|
||||
<div style="columns:2; column-fill:auto; height:100px;">
|
||||
<span>
|
||||
<div style="column-span:all; height:86px;"></div>
|
||||
<div style="height:13px; padding-top:1px;">
|
||||
<table style="padding-bottom:3px;">
|
||||
<caption style="columns:2;">
|
||||
<div style="contain:size; width:1px; height:20px;"></div>
|
||||
</caption>
|
||||
</table>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1417514">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-fill:auto; gap:0; width:100px; height:100px; background:red;">
|
||||
<span>
|
||||
<div style="column-span:all; height:50px; background:green;"></div>
|
||||
<div style="height:50px; background:green;">
|
||||
<div style="height:120px;"></div>
|
||||
</div>
|
||||
<div style="display:inline-block; vertical-align:top; width:50px; height:50px; background:green;"></div>
|
||||
</span>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1417514">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-fill:auto; gap:0; width:100px; height:100px; background:red;">
|
||||
<div style="height:10px;">
|
||||
<div style="column-span:all; height:50px; background:green;"></div>
|
||||
<div style="height:50px;"></div>
|
||||
<div style="height:50px; background:green;"></div>
|
||||
<div style="height:200px;"></div>
|
||||
</div>
|
||||
<div style="margin-top:-10px; height:50px; background:green;"></div>
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
.container {
|
||||
font-family: Ahem;
|
||||
font-size: 20px;
|
||||
width: 20ch;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
123 567 901 345 789 123
|
||||
</div>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
|
||||
<style>
|
||||
p {
|
||||
width: fit-content;
|
||||
border: 2px solid green;
|
||||
font: 24px monospace;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
for (i = 0x200b; i <= 0x200f; ++i) {
|
||||
txt = "This should have no leading or trailing ["
|
||||
+ i.toString(16)
|
||||
+ "]";
|
||||
p = document.createElement("p");
|
||||
p.textContent = txt;
|
||||
document.body.appendChild(p);
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
|
||||
<title>CSS Text reference</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
|
||||
<style>
|
||||
p {
|
||||
width: min-content;
|
||||
border: 2px solid green;
|
||||
font: 24px monospace;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p>
|
||||
This
|
||||
is
|
||||
a
|
||||
simple
|
||||
test
|
||||
</p>
|
||||
</body>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-text-4/#valdef-text-wrap-balance">
|
||||
<link rel="mismatch" href="reference/text-wrap-balance-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
.container {
|
||||
font-family: Ahem;
|
||||
font-size: 20px;
|
||||
width: 20ch;
|
||||
text-wrap: balance;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
123 567 901 345 789 123
|
||||
</div>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
|
||||
<title>CSS Text Test: join controls do not disrupt white-space processing</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-rules">
|
||||
<!-- NB: The spec doesn't explicitly discuss join controls in this context,
|
||||
but it is self-evident that they should not have any effect on the white-space processing.
|
||||
Their only effect should be on the shaping (if any) of the adjacent characters. -->
|
||||
<link rel="match" href="reference/white-space-vs-joiners-001-ref.html">
|
||||
<meta name="assert" content="The presence of join controls (ZWJ/ZWNJ) at word edges should not affect white-space processing">
|
||||
|
||||
<style>
|
||||
p {
|
||||
width: fit-content;
|
||||
border: 2px solid green;
|
||||
font: 24px monospace;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
for (i = 0x200b; i <= 0x200f; ++i) {
|
||||
txt = " "
|
||||
+ String.fromCharCode(i)
|
||||
+ "This should have no leading or trailing ["
|
||||
+ i.toString(16)
|
||||
+ "]"
|
||||
+ String.fromCharCode(i)
|
||||
+ " ";
|
||||
p = document.createElement("p");
|
||||
p.textContent = txt;
|
||||
document.body.appendChild(p);
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
|
||||
<title>CSS Text Test: join controls do not disrupt white-space processing</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-rules">
|
||||
<!-- NB: The spec doesn't explicitly discuss join controls in this context,
|
||||
but it is self-evident that they should not have any effect on the white-space processing.
|
||||
Their only effect should be on the shaping (if any) of the adjacent characters. -->
|
||||
<link rel="match" href="reference/white-space-vs-joiners-002-ref.html">
|
||||
<meta name="assert" content="The presence of join controls (ZWJ/ZWNJ) at word edges should not affect white-space processing">
|
||||
|
||||
<style>
|
||||
p {
|
||||
width: min-content;
|
||||
border: 2px solid green;
|
||||
font: 24px monospace;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p>
|
||||
‍This‍
|
||||
‍is‍
|
||||
‍a‍
|
||||
‍simple‍
|
||||
‍test‍
|
||||
</p>
|
||||
</body>
|
|
@ -38,7 +38,7 @@ div { box-sizing: border-box; will-change: transform }
|
|||
::view-transition-group(hidden) { animation-duration: 300s; }
|
||||
::view-transition-image-pair(hidden) { visibility: hidden; }
|
||||
::view-transition-group(root) { visibility: hidden; }
|
||||
::view-transition { background: pink; }
|
||||
::view-transition { width: 100%; height: 100%; background: pink; }
|
||||
::view-transition-group(*) { animation-delay: 300s; }
|
||||
::view-transition-new(*) { animation: unset; opacity: 1; }
|
||||
::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
|
|
|
@ -39,7 +39,7 @@ div { box-sizing: border-box; will-change: transform }
|
|||
::view-transition-group(hidden) { animation-duration: 300s; }
|
||||
::view-transition-image-pair(hidden) { visibility: hidden; }
|
||||
::view-transition-group(root) { visibility: hidden; }
|
||||
::view-transition { background: pink; }
|
||||
::view-transition { width: 100%; height: 100%; background: pink; }
|
||||
::view-transition-group(*) { animation-duration: 0s; }
|
||||
::view-transition-new(*) { animation: unset; opacity: 0; }
|
||||
::view-transition-old(*) { animation: unset; opacity: 1; }
|
||||
|
|
|
@ -47,7 +47,7 @@ html::view-transition-group(*) { animation-duration: 0s; }
|
|||
html::view-transition-new(*) { animation: unset; opacity: 0; }
|
||||
html::view-transition-old(*) { animation: unset; opacity: 1; }
|
||||
html::view-transition-group(root) { display: none; }
|
||||
html::view-transition { background: pink }
|
||||
html::view-transition { width: 100%; height: 100%; background: pink }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ html::view-transition-old(two),
|
|||
html::view-transition-old(three) { animation: unset; opacity: 1; }
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ html::view-transition-old(two),
|
|||
html::view-transition-old(three) { animation: unset; opacity: 1; }
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ html::view-transition-old(left-element),
|
|||
html::view-transition-old(right-element) { animation: unset; opacity: 1; }
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ html::view-transition-group(*) { animation-duration: 0s; }
|
|||
html::view-transition-new(*) { animation: unset; opacity: 0; }
|
||||
html::view-transition-old(*) { animation: unset; opacity: 1; }
|
||||
html::view-transition-group(root) { display: none; }
|
||||
html::view-transition { background: pink }
|
||||
html::view-transition { width: 100%; height: 100%; background: pink }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ html::view-transition-old(第三) { animation: unset; opacity: 1; }
|
|||
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ html::view-transition-new(*) { animation: unset; opacity: 0; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 1; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<div id=target class=box><div class=inner_overflow>X</div></div>
|
||||
<script>
|
||||
|
|
|
@ -34,7 +34,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<div id=target class=box><div class=inner_overflow>X</div></div>
|
||||
<script>
|
||||
|
|
|
@ -31,7 +31,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<div id=e1 class=box></div>
|
||||
<script>
|
||||
|
|
|
@ -43,7 +43,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<div id=e1 class=box>one</div>
|
||||
<div id=e2 class=box>two</div>
|
||||
|
|
|
@ -26,7 +26,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<div id=e1 class=box></div>
|
||||
<div id=e2 class=box></div>
|
||||
|
|
|
@ -20,7 +20,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<span id=target>This is a span</span>
|
||||
<script>
|
||||
|
|
|
@ -17,7 +17,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(*) { animation: unset; opacity: 0; }
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
<span id=target>This is a span</span>
|
||||
<script>
|
||||
|
|
|
@ -53,7 +53,7 @@ html::view-transition-old(s3) { animation: unset; opacity: 0; }
|
|||
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ html::view-transition-old(s3) { animation: unset; opacity: 0; }
|
|||
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ html::view-transition-group(target2) {
|
|||
|
||||
/* hide the root so we show transition background to ensure we're in a transition */
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div id=target1 class=box></div>
|
||||
|
|
|
@ -37,7 +37,7 @@ html::view-transition-new(shared) { animation: unset; opacity: 1; }
|
|||
html::view-transition-old(shared) { animation: unset; opacity: 1; }
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ body { margin : 0; }
|
|||
view-transition-name: none;
|
||||
}
|
||||
::view-transition {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rebeccapurple;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ html::view-transition-group(hidden) {
|
|||
}
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div id=target><div id=inner></div></div>
|
||||
|
|
|
@ -50,7 +50,7 @@ html::view-transition-group(hidden) {
|
|||
}
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div id=target>This is text</div>
|
||||
|
|
|
@ -55,7 +55,7 @@ html::view-transition-new(target-two) {
|
|||
}
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div id=one class=target>
|
||||
|
|
|
@ -55,7 +55,7 @@ html::view-transition-new(target-two) {
|
|||
}
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div id=one class=target>
|
||||
|
|
|
@ -46,7 +46,7 @@ html::view-transition-new(target) {
|
|||
html::view-transition-old(target) { animation: unset; opacity: 0; height: 100%; }
|
||||
|
||||
html::view-transition-group(root) { animation: unset; opacity: 0; }
|
||||
html::view-transition { background: lightpink; }
|
||||
html::view-transition { width: 100%; height: 100%; background: lightpink; }
|
||||
</style>
|
||||
|
||||
<div class=target>
|
||||
|
|
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