Update web-platform-tests to revision b'3b791e5b10812a4ca4473d93679fc70d1a7f5f88'

This commit is contained in:
WPT Sync Bot 2023-03-02 01:47:05 +00:00
parent 61fe4cf606
commit 17f4d58879
157 changed files with 1609 additions and 430 deletions

View file

@ -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

View file

@ -1,3 +0,0 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -1,6 +1,3 @@
[block-in-inline-hittest-002.html] [block-in-inline-hittest-002.html]
[elementsFromPoint] [elementsFromPoint]
expected: FAIL expected: FAIL
[elementFromPoint]
expected: FAIL

View file

@ -1,6 +1,3 @@
[block-in-inline-hittest-relpos-zindex.html] [block-in-inline-hittest-relpos-zindex.html]
[position: relative; z-index: -1;] [position: relative; z-index: -1;]
expected: FAIL expected: FAIL
[block-in-inline-hittest-relpos-zindex]
expected: FAIL

View file

@ -64,3 +64,15 @@
[Property content value '-webkit-image-set(url('http://web-platform.test/example.png') 192dpi, linear-gradient(black, white) 1x)'] [Property content value '-webkit-image-set(url('http://web-platform.test/example.png') 192dpi, linear-gradient(black, white) 1x)']
expected: FAIL 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

View file

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

View file

@ -0,0 +1,2 @@
[white-space-vs-joiners-002.html]
expected: FAIL

View file

@ -4,90 +4,3 @@
[background-position length-em(em) / values] [background-position length-em(em) / values]
expected: FAIL 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

View file

@ -80,9 +80,6 @@
[ trailing white space (single space)] [ trailing white space (single space)]
expected: FAIL expected: FAIL
[ middle white space (double space) 2]
expected: FAIL
[ trailing white space (double space) 2] [ trailing white space (double space) 2]
expected: FAIL expected: FAIL
@ -95,9 +92,6 @@
[ trailing white space (single space) (Computed Style)] [ trailing white space (single space) (Computed Style)]
expected: FAIL expected: FAIL
[ middle white space (double space) 2 (Computed Style)]
expected: FAIL
[ trailing white space (double space) 2 (Computed Style)] [ trailing white space (double space) 2 (Computed Style)]
expected: FAIL expected: FAIL
@ -110,9 +104,6 @@
[ trailing white space (single space) (Cascading)] [ trailing white space (single space) (Cascading)]
expected: FAIL expected: FAIL
[ middle white space (double space) 2 (Cascading)]
expected: FAIL
[ trailing white space (double space) 2 (Cascading)] [ trailing white space (double space) 2 (Cascading)]
expected: FAIL expected: FAIL

View file

@ -1,3 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,3 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -1,3 +0,0 @@
[elementFromPoint-float-in-table.html]
[float-in-div]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementFromPoint-subpixel.html]
[Hit test top left corner of box]
expected: FAIL

View file

@ -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

View file

@ -146,6 +146,3 @@
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade] [list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
expected: FAIL expected: FAIL
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
expected: TIMEOUT

View file

@ -8,6 +8,12 @@
[ORB should block opaque application/json] [ORB should block opaque application/json]
expected: FAIL 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] [known-mime-type.sub.any.worker.html]
[ORB should block opaque font/ttf] [ORB should block opaque font/ttf]
@ -18,3 +24,9 @@
[ORB should block opaque application/json] [ORB should block opaque application/json]
expected: FAIL expected: FAIL
[ORB should block opaque application/json (non-empty)]
expected: FAIL
[ORB should block opaque application/json (empty)]
expected: FAIL

View file

@ -43,3 +43,6 @@
[public https to local https: failure.] [public https to local https: failure.]
expected: FAIL expected: FAIL
[public to public: success.]
expected: FAIL

View file

@ -1,6 +1,6 @@
[scroll-restoration-fragment-scrolling-cross-origin.html] [scroll-restoration-fragment-scrolling-cross-origin.html]
type: testharness type: testharness
expected: TIMEOUT expected: ERROR
[Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation] [Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,6 +1,7 @@
[consecutive-srcdoc.html] [consecutive-srcdoc.html]
expected: TIMEOUT
[changing srcdoc does a replace navigation since the URL is still about:srcdoc] [changing srcdoc does a replace navigation since the URL is still about:srcdoc]
expected: FAIL expected: FAIL
[changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back] [changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back]
expected: FAIL expected: TIMEOUT

View file

@ -1,4 +1,3 @@
[005.html] [005.html]
expected: TIMEOUT
[Link with onclick navigation and href navigation ] [Link with onclick navigation and href navigation ]
expected: FAIL expected: FAIL

View file

@ -1,9 +1,10 @@
[iframe-src-aboutblank-navigate-immediately.html] [iframe-src-aboutblank-navigate-immediately.html]
expected: TIMEOUT
[Navigating to a different document with window.open] [Navigating to a different document with window.open]
expected: FAIL expected: FAIL
[Navigating to a different document with form submission] [Navigating to a different document with form submission]
expected: FAIL expected: TIMEOUT
[Navigating to a different document with link click] [Navigating to a different document with link click]
expected: FAIL expected: FAIL

View file

@ -1,6 +1,10 @@
[javascript-url-referrer.window.html] [javascript-url-referrer.window.html]
expected: TIMEOUT
[unsafe-url referrer policy used to create the starting page] [unsafe-url referrer policy used to create the starting page]
expected: FAIL expected: FAIL
[origin referrer policy used to create the starting page] [origin referrer policy used to create the starting page]
expected: FAIL expected: FAIL
[no-referrer referrer policy used to create the starting page]
expected: TIMEOUT

View file

@ -1,3 +0,0 @@
[navigation-unload-cross-origin.sub.window.html]
[Cross-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,3 +0,0 @@
[navigation-unload-same-origin.window.html]
[Same-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,3 +0,0 @@
[a-click.html]
[aElement.click() before the load event must NOT replace]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse-during-unload.html]
expected: TIMEOUT
[Traversing the history during unload]
expected: TIMEOUT

View file

@ -1,4 +1,3 @@
[creating_browsing_context_test_01.html] [creating_browsing_context_test_01.html]
expected: TIMEOUT
[first argument: absolute url] [first argument: absolute url]
expected: TIMEOUT expected: FAIL

View file

@ -1,19 +1,15 @@
[supported-elements.html] [supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus] [Contenteditable element should support autofocus]
expected: FAIL expected: FAIL
[Element with tabindex should support autofocus] [Element with tabindex should support autofocus]
expected: TIMEOUT expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped] [Host element with delegatesFocus including no focusable descendants should be skipped]
expected: NOTRUN expected: FAIL
[Area element should support autofocus] [Area element should support autofocus]
expected: NOTRUN expected: FAIL
[Host element with delegatesFocus should support autofocus] [Host element with delegatesFocus should support autofocus]
expected: NOTRUN expected: FAIL
[Non-HTMLElement should not support autofocus]
expected: NOTRUN

View file

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

View file

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

View file

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

View file

@ -175,3 +175,6 @@
[multipart/form-data: backslash in value (formdata event)] [multipart/form-data: backslash in value (formdata event)]
expected: FAIL expected: FAIL
[multipart/form-data: Basic test (formdata event)]
expected: FAIL

View file

@ -172,3 +172,9 @@
[text/plain: Basic test (formdata event)] [text/plain: Basic test (formdata event)]
expected: FAIL expected: FAIL
[text/plain: Basic File test (formdata event)]
expected: FAIL
[text/plain: 0x00 in name (formdata event)]
expected: FAIL

View file

@ -172,3 +172,9 @@
[application/x-www-form-urlencoded: 0x00 in filename (formdata event)] [application/x-www-form-urlencoded: 0x00 in filename (formdata event)]
expected: FAIL 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

View file

@ -1,3 +0,0 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -0,0 +1,3 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -3,6 +3,3 @@
expected: TIMEOUT expected: TIMEOUT
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT 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

View file

@ -1,5 +1,4 @@
[audiocontext-not-fully-active.html] [audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame] [frame in navigated remote-site frame]
expected: FAIL expected: FAIL

View file

@ -1,5 +1,5 @@
[cross-partition.https.tentative.html] [cross-partition.https.tentative.html]
expected: CRASH expected: TIMEOUT
[BroadcastChannel messages aren't received from a cross-partition iframe] [BroadcastChannel messages aren't received from a cross-partition iframe]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -0,0 +1,3 @@
[stylesheet_media_queries.html]
[Media queries within stylesheets]
expected: FAIL

View file

@ -1,3 +0,0 @@
[scrollBy.html]
[Ensure that the window.scrollBy function affects scroll position as expected]
expected: FAIL

View file

@ -30,22 +30,29 @@ backgroundFetchTest((t, bgFetch) => {
return bgFetch.fetch(uniqueId(), 'http://localhost'); return bgFetch.fetch(uniqueId(), 'http://localhost');
}, 'localhost http: fetch should register ok'); }, '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) => { backgroundFetchTest((t, bgFetch) => {
return promise_rejects_js(t, TypeError, 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'); }, 'wss: fetch should reject');
backgroundFetchTest((t, bgFetch) => { backgroundFetchTest((t, bgFetch) => {
return promise_rejects_js(t, TypeError, return promise_rejects_js(t, TypeError,
bgFetch.fetch(uniqueId(), 'file:///')); testBgFetch(bgFetch, 'file:///'));
}, 'file: fetch should reject'); }, 'file: fetch should reject');
backgroundFetchTest((t, bgFetch) => { backgroundFetchTest((t, bgFetch) => {
return promise_rejects_js(t, TypeError, return promise_rejects_js(t, TypeError,
bgFetch.fetch(uniqueId(), 'data:text/plain,foo')); testBgFetch(bgFetch, 'data:text/plain,foo'));
}, 'data: fetch should reject'); }, 'data: fetch should reject');
backgroundFetchTest((t, bgFetch) => { backgroundFetchTest((t, bgFetch) => {
return promise_rejects_js(t, TypeError, return promise_rejects_js(t, TypeError,
bgFetch.fetch(uniqueId(), 'foobar:bazqux')); testBgFetch(bgFetch, 'foobar:bazqux'));
}, 'unknown scheme fetch should reject'); }, 'unknown scheme fetch should reject');

View file

@ -28,8 +28,12 @@ backgroundFetchTest((t, bgFetch) => {
return bgFetch.fetch(uniqueId(), 'https://example.com:8080'); return bgFetch.fetch(uniqueId(), 'https://example.com:8080');
}, 'fetch to non-default non-bad port (8080) should register ok'); }, '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( return promise_rejects_js(
t, TypeError, t, TypeError,
bgFetch.fetch(uniqueId(), 'https://example.com:587')); promise);
}, 'fetch to bad port (SMTP) should reject'); }, 'fetch to bad port (SMTP) should reject');

View file

@ -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>

View file

@ -18,7 +18,7 @@ function load_iframe(iframe, src) {
promise_test(async t => { promise_test(async t => {
let iframe = document.getElementById('blank'); let iframe = document.getElementById('blank');
const src = 'support-iframe.html'; const src = 'resources/support-iframe.html';
iframe = await load_iframe(iframe, src); iframe = await load_iframe(iframe, src);
await iframe.contentWindow.navigator.getBattery(); await iframe.contentWindow.navigator.getBattery();
}, "navigator.getBattery() is allowed in same origin iframe"); }, "navigator.getBattery() is allowed in same origin iframe");

View file

@ -19,7 +19,7 @@ function load_iframe(iframe, src) {
promise_test(async t => { promise_test(async t => {
let iframe = document.getElementById('blank'); let iframe = document.getElementById('blank');
const path = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1); 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); iframe = await load_iframe(iframe, src);
await promise_rejects_dom(t, 'NotAllowedError', iframe.contentWindow.navigator.getBattery()); await promise_rejects_dom(t, 'NotAllowedError', iframe.contentWindow.navigator.getBattery());
}, "throw a 'NotAllowedError' when invoking navigator.getBattery() within cross-origin iframe"); }, "throw a 'NotAllowedError' when invoking navigator.getBattery() within cross-origin iframe");

View file

@ -20,7 +20,7 @@
<div id="log"></div> <div id="log"></div>
<script> <script>
async_test(function (t) { 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) { window.onmessage = t.step_func(function(e) {
assert_array_equals(e.data, [false, false, true]); assert_array_equals(e.data, [false, false, true]);
win.close(); win.close();

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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);
}

View file

@ -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>

View file

@ -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>

View file

@ -34,5 +34,5 @@ def main(request, response):
(b"Content-Type", b"application/json"), (b"Content-Type", b"application/json"),
(b"Set-Cookie", cookie) (b"Set-Cookie", cookie)
] ]
body = b"dummy value" body = b"var dummy='value';"
return headers, body return headers, body

View file

@ -5,7 +5,6 @@ body {
div, p { div, p {
padding: 0; margin: 0; padding: 0; margin: 0;
line-height: 150%; line-height: 150%;
float: left;
} }
p { p {
padding-right: .5em; padding-right: .5em;

View file

@ -10,7 +10,6 @@ ol, ul {
list-style-position: inside; list-style-position: inside;
} }
li, p { li, p {
float: left;
padding: 0; padding: 0;
} }
p { p {

View file

@ -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'))", '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('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)'); 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> </script>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>
&#x200d;This&#x200d;
&#x200d;is&#x200d;
&#x200d;a&#x200d;
&#x200d;simple&#x200d;
&#x200d;test&#x200d;
</p>
</body>

View file

@ -38,7 +38,7 @@ div { box-sizing: border-box; will-change: transform }
::view-transition-group(hidden) { animation-duration: 300s; } ::view-transition-group(hidden) { animation-duration: 300s; }
::view-transition-image-pair(hidden) { visibility: hidden; } ::view-transition-image-pair(hidden) { visibility: hidden; }
::view-transition-group(root) { 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-group(*) { animation-delay: 300s; }
::view-transition-new(*) { animation: unset; opacity: 1; } ::view-transition-new(*) { animation: unset; opacity: 1; }
::view-transition-old(*) { animation: unset; opacity: 0; } ::view-transition-old(*) { animation: unset; opacity: 0; }

View file

@ -39,7 +39,7 @@ div { box-sizing: border-box; will-change: transform }
::view-transition-group(hidden) { animation-duration: 300s; } ::view-transition-group(hidden) { animation-duration: 300s; }
::view-transition-image-pair(hidden) { visibility: hidden; } ::view-transition-image-pair(hidden) { visibility: hidden; }
::view-transition-group(root) { 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-group(*) { animation-duration: 0s; }
::view-transition-new(*) { animation: unset; opacity: 0; } ::view-transition-new(*) { animation: unset; opacity: 0; }
::view-transition-old(*) { animation: unset; opacity: 1; } ::view-transition-old(*) { animation: unset; opacity: 1; }

View file

@ -47,7 +47,7 @@ html::view-transition-group(*) { animation-duration: 0s; }
html::view-transition-new(*) { animation: unset; opacity: 0; } html::view-transition-new(*) { animation: unset; opacity: 0; }
html::view-transition-old(*) { animation: unset; opacity: 1; } html::view-transition-old(*) { animation: unset; opacity: 1; }
html::view-transition-group(root) { display: none; } html::view-transition-group(root) { display: none; }
html::view-transition { background: pink } html::view-transition { width: 100%; height: 100%; background: pink }
</style> </style>

View file

@ -84,7 +84,7 @@ html::view-transition-old(two),
html::view-transition-old(three) { animation: unset; opacity: 1; } html::view-transition-old(three) { animation: unset; opacity: 1; }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -69,7 +69,7 @@ html::view-transition-old(two),
html::view-transition-old(three) { animation: unset; opacity: 1; } html::view-transition-old(three) { animation: unset; opacity: 1; }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -51,7 +51,7 @@ html::view-transition-old(left-element),
html::view-transition-old(right-element) { animation: unset; opacity: 1; } html::view-transition-old(right-element) { animation: unset; opacity: 1; }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -41,7 +41,7 @@ html::view-transition-group(*) { animation-duration: 0s; }
html::view-transition-new(*) { animation: unset; opacity: 0; } html::view-transition-new(*) { animation: unset; opacity: 0; }
html::view-transition-old(*) { animation: unset; opacity: 1; } html::view-transition-old(*) { animation: unset; opacity: 1; }
html::view-transition-group(root) { display: none; } html::view-transition-group(root) { display: none; }
html::view-transition { background: pink } html::view-transition { width: 100%; height: 100%; background: pink }
</style> </style>

View file

@ -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 */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -32,7 +32,7 @@ html::view-transition-new(*) { animation: unset; opacity: 0; }
html::view-transition-old(*) { animation: unset; opacity: 1; } html::view-transition-old(*) { animation: unset; opacity: 1; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=target class=box><div class=inner_overflow>X</div></div> <div id=target class=box><div class=inner_overflow>X</div></div>
<script> <script>

View file

@ -34,7 +34,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=target class=box><div class=inner_overflow>X</div></div> <div id=target class=box><div class=inner_overflow>X</div></div>
<script> <script>

View file

@ -31,7 +31,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=e1 class=box></div> <div id=e1 class=box></div>
<script> <script>

View file

@ -43,7 +43,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=e1 class=box>one</div> <div id=e1 class=box>one</div>
<div id=e2 class=box>two</div> <div id=e2 class=box>two</div>

View file

@ -26,7 +26,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=e1 class=box></div> <div id=e1 class=box></div>
<div id=e2 class=box></div> <div id=e2 class=box></div>

View file

@ -20,7 +20,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<span id=target>This is a span</span> <span id=target>This is a span</span>
<script> <script>

View file

@ -17,7 +17,7 @@ html::view-transition-new(*) { animation: unset; opacity: 1; }
html::view-transition-old(*) { animation: unset; opacity: 0; } html::view-transition-old(*) { animation: unset; opacity: 0; }
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<span id=target>This is a span</span> <span id=target>This is a span</span>
<script> <script>

View file

@ -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 */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -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 */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -47,7 +47,7 @@ html::view-transition-group(target2) {
/* hide the root so we show transition background to ensure we're in a transition */ /* 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-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=target1 class=box></div> <div id=target1 class=box></div>

View file

@ -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-old(shared) { animation: unset; opacity: 1; }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>

View file

@ -57,6 +57,8 @@ body { margin : 0; }
view-transition-name: none; view-transition-name: none;
} }
::view-transition { ::view-transition {
width: 100%;
height: 100%;
background-color: rebeccapurple; background-color: rebeccapurple;
} }

View file

@ -57,7 +57,7 @@ html::view-transition-group(hidden) {
} }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=target><div id=inner></div></div> <div id=target><div id=inner></div></div>

View file

@ -50,7 +50,7 @@ html::view-transition-group(hidden) {
} }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=target>This is text</div> <div id=target>This is text</div>

View file

@ -55,7 +55,7 @@ html::view-transition-new(target-two) {
} }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=one class=target> <div id=one class=target>

View file

@ -55,7 +55,7 @@ html::view-transition-new(target-two) {
} }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div id=one class=target> <div id=one class=target>

View file

@ -46,7 +46,7 @@ html::view-transition-new(target) {
html::view-transition-old(target) { animation: unset; opacity: 0; height: 100%; } html::view-transition-old(target) { animation: unset; opacity: 0; height: 100%; }
html::view-transition-group(root) { animation: unset; opacity: 0; } html::view-transition-group(root) { animation: unset; opacity: 0; }
html::view-transition { background: lightpink; } html::view-transition { width: 100%; height: 100%; background: lightpink; }
</style> </style>
<div class=target> <div class=target>

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