tag works immediately before revoking the URL.]
expected: FAIL
- [Fetching a blob URL immediately before revoking it works in
\ No newline at end of file
+
+ animation.cancel();
+ }, "A running worklet animation should output values at specified local time.");
+
+ promise_test(async t => {
+ await registerConstantLocalTimeAnimator(500);
+ const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 });
+ const animation = new WorkletAnimation('constant_time', effect);
+ animation.play();
+
+ await waitForAnimationFrameWithCondition(_=> {
+ return animation.playState == "running"
+ });
+
+ const prevCurrentTime = animation.currentTime;
+ animation.play();
+ assert_equals(animation.playState, "running");
+ assert_equals(animation.currentTime, prevCurrentTime)
+
+ animation.cancel();
+ }, "Playing a running animation should be a no-op.");
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-interfaces.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-interfaces.https.html
index e0d0977959b..e19c958f975 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-interfaces.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-interfaces.https.html
@@ -1,7 +1,7 @@
Clipboard IDL test
-
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html
index b71b43efe06..706093af613 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html
@@ -1,6 +1,7 @@
Async Clipboard input type validation tests
+
@@ -19,14 +20,22 @@ promise_test(async t => {
assert_equals(blobText.type, 'text/plain');
assert_equals(blobImage.type, 'image/png');
- await navigator.clipboard.write(
+ const clipboardItemInput = new ClipboardItem(
{'text/plain' : blobText, 'image/png' : blobImage});
- const output = await navigator.clipboard.read();
- assert_equals(Object.keys(output).length, 2);
- assert_equals(output['text/plain'].type, 'text/plain');
- assert_equals(output['image/png'].type, 'image/png');
-}, 'Verify write and read clipboard (multiple blobs)');
+ await navigator.clipboard.write([clipboardItemInput]);
+ const clipboardItems = await navigator.clipboard.read();
+
+ assert_equals(clipboardItems.length, 1);
+ const clipboardItem = clipboardItems[0];
+ assert_true(clipboardItem instanceof ClipboardItem);
+
+ assert_equals(clipboardItem.types.length, 2);
+ const blobTextOutput = await clipboardItem.getType('text/plain');
+ const blobImageOutput = await clipboardItem.getType('image/png');
+ assert_equals(blobTextOutput.type, 'text/plain');
+ assert_equals(blobImageOutput.type, 'image/png');
+}, 'Verify write and read clipboard (multiple types)');
Note: This is a manual test because it writes/reads to the shared system
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
index fded721f9bf..b374333ca94 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
@@ -1,19 +1,25 @@
- Async Clipboard write ([text/plain Blob]) -> read ([text/plain Blob]) tests
+ Async Clipboard write ([text/plain ClipboardItem]) ->
+ read ([text/plain ClipboardItem]) tests
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-text-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-text-manual.https.html
index 98ff7c27b66..2d78b2f186e 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-text-manual.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-blobtext-read-text-manual.https.html
@@ -1,21 +1,25 @@
-
Async Clipboard write ([text/plain Blob]) -> readText tests
+
+ Async Clipboard write ([text/plain ClipboardItem]) -> readText tests
+
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html
index 6c326cf8dde..351e74bd745 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html
@@ -1,8 +1,10 @@
- Async Clipboard write [image/png Blob] -> read [image/png Blob] tests
+ Async Clipboard write [image/png ClipboardItem] ->
+ read [image/png ClipboardItem] tests
+
@@ -40,10 +42,15 @@ promise_test(async t => {
const blobInput = await loadBlob('resources/greenbox.png');
assert_equals(blobInput.type, 'image/png');
- await navigator.clipboard.write({'image/png' : blobInput});
- const blobsOutput = await navigator.clipboard.read();
- assert_equals(Object.keys(blobsOutput).length, 1);
- const blobOutput = blobsOutput['image/png'];
+ const clipboardItemInput = new ClipboardItem({'image/png' : blobInput});
+ await navigator.clipboard.write([clipboardItemInput]);
+ const clipboardItems = await navigator.clipboard.read();
+
+ assert_equals(clipboardItems.length, 1);
+ const clipboardItem = clipboardItems[0];
+ assert_true(clipboardItem instanceof ClipboardItem);
+ assert_equals(clipboardItem.types.length, 1);
+ const blobOutput = await clipboardItem.getType('image/png');
assert_equals(blobOutput.type, 'image/png');
document.getElementById('image-on-clipboard').src =
@@ -53,7 +60,7 @@ promise_test(async t => {
const comparableOutput = await getBitmapString(blobOutput);
assert_equals(comparableOutput, comparableInput);
-}, 'Verify write and read clipboard ([image/png Blob])');
+}, 'Verify write and read clipboard [image/png Blob]');
Note: This is a manual test because it writes/reads to the shared system
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-blobtext-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-blobtext-manual.https.html
index ab85a6fc649..4f9fe25bca5 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-blobtext-manual.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-blobtext-manual.https.html
@@ -1,15 +1,21 @@
-
Async Clipboard writeText -> read ([text/plain Blob]) tests
+
+ Async Clipboard writeText -> read ([text/plain ClipboardItem]) tests
+
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https.html
index 25c7edb43f0..48e5adb51d2 100644
--- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https.html
+++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https.html
@@ -1,6 +1,7 @@
Async Clipboard writeText -> readText tests
+
+
+
diff --git a/tests/wpt/web-platform-tests/common/get-host-info.sub.js b/tests/wpt/web-platform-tests/common/get-host-info.sub.js
index 743bec18ec2..595a539f195 100644
--- a/tests/wpt/web-platform-tests/common/get-host-info.sub.js
+++ b/tests/wpt/web-platform-tests/common/get-host-info.sub.js
@@ -3,9 +3,12 @@ function get_host_info() {
var HTTP_PORT = '{{ports[http][0]}}';
var HTTP_PORT2 = '{{ports[http][1]}}';
var HTTPS_PORT = '{{ports[https][0]}}';
+ var PROTOCOL = window.location.protocol;
+ var IS_HTTPS = (PROTOCOL == "https:");
var HTTP_PORT_ELIDED = HTTP_PORT == "80" ? "" : (":" + HTTP_PORT);
var HTTP_PORT2_ELIDED = HTTP_PORT2 == "80" ? "" : (":" + HTTP_PORT2);
var HTTPS_PORT_ELIDED = HTTPS_PORT == "443" ? "" : (":" + HTTPS_PORT);
+ var PORT_ELIDED = IS_HTTPS ? HTTPS_PORT_ELIDED : HTTP_PORT_ELIDED;
var ORIGINAL_HOST = '{{host}}';
var REMOTE_HOST = (ORIGINAL_HOST === 'localhost') ? '127.0.0.1' : ('www1.' + ORIGINAL_HOST);
var OTHER_HOST = '{{domains[www2]}}';
@@ -18,10 +21,12 @@ function get_host_info() {
ORIGINAL_HOST: ORIGINAL_HOST,
REMOTE_HOST: REMOTE_HOST,
+ ORIGIN: PROTOCOL + "//" + ORIGINAL_HOST + PORT_ELIDED,
HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + HTTP_PORT_ELIDED,
HTTPS_ORIGIN: 'https://' + ORIGINAL_HOST + HTTPS_PORT_ELIDED,
HTTPS_ORIGIN_WITH_CREDS: 'https://foo:bar@' + ORIGINAL_HOST + HTTPS_PORT_ELIDED,
HTTP_ORIGIN_WITH_DIFFERENT_PORT: 'http://' + ORIGINAL_HOST + HTTP_PORT2_ELIDED,
+ REMOTE_ORIGIN: PROTOCOL + "//" + REMOTE_HOST + PORT_ELIDED,
HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + HTTP_PORT_ELIDED,
HTTP_NOTSAMESITE_ORIGIN: 'http://' + NOTSAMESITE_HOST + HTTP_PORT_ELIDED,
HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT: 'http://' + REMOTE_HOST + HTTP_PORT2_ELIDED,
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html
new file mode 100644
index 00000000000..7911a1b214c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html
@@ -0,0 +1,22 @@
+
+
+CSS Text level 3 Test: overflow-wrap:break-word and grapheme clusters
+
+
+
+
+
+
+Test passes if there are four identical lines of text below.
+
षि
षि
+षिषि
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html
new file mode 100644
index 00000000000..bd5c9a60d87
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html
@@ -0,0 +1,22 @@
+
+
+CSS Text level 3 Test: overflow-wrap:anywhere and grapheme clusters
+
+
+
+
+
+
+Test passes if there are four identical lines of text below.
+
षि
षि
+षिषि
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html
new file mode 100644
index 00000000000..8047aba133a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html
@@ -0,0 +1,18 @@
+
+
+CSS Text level 3 Test: word-break-keep-all and overflow-wrap:normal
+
+
+
+
+
+
+
+Test passes if there is a column of 文 characters on top of eachother below.
+
文文文文文文文文
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html
new file mode 100644
index 00000000000..5a00d7284b2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html
@@ -0,0 +1,17 @@
+
+
+CSS Text level 3 Test reference
+
+
+
+Test passes if there are four identical lines of text below.
+
षि
+षि
+षि
+षि
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html
new file mode 100644
index 00000000000..f0b41134fa0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html
@@ -0,0 +1,7 @@
+
+
+CSS Text level 3 Test reference
+
+
+Test passes if there is a column of 文 characters on top of eachother below.
+
文
文
文
文
文
文
文
文
diff --git a/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
index 09a8aa7846c..9de84165356 100644
--- a/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
+++ b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
@@ -7,8 +7,8 @@ const ignore_features_for_auxilary_context = ["popups", "scripts"];
// Feature-policies that represent specific sandbox flags.
const sandbox_features = [
- "forms", "modals", "orientation-lock", "pointer-lock", "popups",
- "presentation", "scripts", "top-navigation"];
+ "downloads-without-user-activation", "forms", "modals", "orientation-lock",
+ "pointer-lock", "popups", "presentation", "scripts", "top-navigation"];
// TODO(ekaramad): Figure out different inheritance requirements for different
// policies.
diff --git a/tests/wpt/web-platform-tests/interfaces/wake-lock.idl b/tests/wpt/web-platform-tests/interfaces/wake-lock.idl
index 4c11b695f49..c0d4bc9c239 100644
--- a/tests/wpt/web-platform-tests/interfaces/wake-lock.idl
+++ b/tests/wpt/web-platform-tests/interfaces/wake-lock.idl
@@ -11,16 +11,13 @@ enum WakeLockType { "screen", "system" };
[Constructor(WakeLockType type), SecureContext, Exposed=(DedicatedWorker,Window)]
interface WakeLock : EventTarget {
+ [Exposed=Window] static Promise requestPermission(WakeLockType type);
readonly attribute WakeLockType type;
readonly attribute boolean active;
attribute EventHandler onactivechange;
- Promise request(optional WakeLockRequestOptions options);
+ Promise request();
+ void abort();
static sequence query(optional WakeLockQueryFilter filter);
- [Exposed=Window] static Promise requestPermission(WakeLockType type);
-};
-
-dictionary WakeLockRequestOptions {
- AbortSignal? signal;
};
dictionary WakeLockQueryFilter {
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
index edd7e73fd6f..6a455975946 100644
--- a/tests/wpt/web-platform-tests/interfaces/webxr.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -10,12 +10,18 @@ partial interface Navigator {
[SecureContext, Exposed=Window] interface XR : EventTarget {
// Methods
Promise supportsSessionMode(XRSessionMode mode);
- Promise requestSession(optional XRSessionCreationOptions parameters);
+ Promise requestSession(XRSessionMode mode);
// Events
attribute EventHandler ondevicechange;
};
+enum XRSessionMode {
+ "inline",
+ "immersive-vr",
+ "immersive-ar"
+};
+
enum XREnvironmentBlendMode {
"opaque",
"additive",
@@ -50,19 +56,10 @@ enum XREnvironmentBlendMode {
attribute EventHandler onselectend;
};
-enum XRSessionMode {
- "inline",
- "immersive-vr",
- "immersive-ar"
-};
-
-dictionary XRSessionCreationOptions {
- XRSessionMode mode = "inline";
-};
-
dictionary XRRenderStateInit {
double depthNear;
double depthFar;
+ double inlineVerticalFieldOfView;
XRLayer? baseLayer;
XRPresentationContext? outputContext;
};
@@ -70,6 +67,7 @@ dictionary XRRenderStateInit {
[SecureContext, Exposed=Window] interface XRRenderState {
readonly attribute double depthNear;
readonly attribute double depthFar;
+ readonly attribute double? inlineVerticalFieldOfView;
readonly attribute XRLayer? baseLayer;
readonly attribute XRPresentationContext? outputContext;
};
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html
index 66df88264d1..879962c4776 100644
--- a/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html
@@ -13,7 +13,7 @@
The test passes if the arrow has a leading space of 100px, which is as wide as the black block to the left,
and a trailing space of 200px, which is as wide as the black block to the right.
-
+