Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,5 +1,16 @@
2021-10-28 Chris Dumez <cdu...@apple.com>
+ Resync web-platform-tests/dom from upstream
+ https://bugs.webkit.org/show_bug.cgi?id=232441
+
+ Reviewed by Darin Adler.
+
+ Resync web-platform-tests/dom from upstream 038de3e0ddeaf9e.
+
+ * web-platform-tests/dom/*: Updated.
+
+2021-10-28 Chris Dumez <cdu...@apple.com>
+
Import web-platform-tests/web-locks API tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=232406
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-iterator.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-iterator.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-iterator.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<link rel="help" href=""
-<link rel="help" href=""
+<link rel="help" href=""
<title>HTMLCollection @@iterator Test</title>
<script src=""
<script src=""
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,6 @@
+
+PASS Once listener should be invoked only once
+PASS Once listener should be invoked only once even if the event is nested
+PASS Once listener should be added / removed like normal listeners
+PASS Multiple once listeners should be invoked even if the stopImmediatePropagation is set
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.js (from rev 285009, trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.html) (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.js (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.js 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,96 @@
+// META: title=AddEventListenerOptions.once
+
+"use strict";
+
+test(function() {
+ var invoked_once = false;
+ var invoked_normal = false;
+ function handler_once() {
+ invoked_once = true;
+ }
+ function handler_normal() {
+ invoked_normal = true;
+ }
+
+ const et = new EventTarget();
+ et.addEventListener('test', handler_once, {once: true});
+ et.addEventListener('test', handler_normal);
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_once, true, "Once handler should be invoked");
+ assert_equals(invoked_normal, true, "Normal handler should be invoked");
+
+ invoked_once = false;
+ invoked_normal = false;
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_once, false, "Once handler shouldn't be invoked again");
+ assert_equals(invoked_normal, true, "Normal handler should be invoked again");
+ et.removeEventListener('test', handler_normal);
+}, "Once listener should be invoked only once");
+
+test(function() {
+ const et = new EventTarget();
+ var invoked_count = 0;
+ function handler() {
+ invoked_count++;
+ if (invoked_count == 1)
+ et.dispatchEvent(new Event('test'));
+ }
+ et.addEventListener('test', handler, {once: true});
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_count, 1, "Once handler should only be invoked once");
+
+ invoked_count = 0;
+ function handler2() {
+ invoked_count++;
+ if (invoked_count == 1)
+ et.addEventListener('test', handler2, {once: true});
+ if (invoked_count <= 2)
+ et.dispatchEvent(new Event('test'));
+ }
+ et.addEventListener('test', handler2, {once: true});
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_count, 2, "Once handler should only be invoked once after each adding");
+}, "Once listener should be invoked only once even if the event is nested");
+
+test(function() {
+ var invoked_count = 0;
+ function handler() {
+ invoked_count++;
+ }
+
+ const et = new EventTarget();
+
+ et.addEventListener('test', handler, {once: true});
+ et.addEventListener('test', handler);
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_count, 1, "The handler should only be added once");
+
+ invoked_count = 0;
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_count, 0, "The handler was added as a once listener");
+
+ invoked_count = 0;
+ et.addEventListener('test', handler, {once: true});
+ et.removeEventListener('test', handler);
+ et.dispatchEvent(new Event('test'));
+ assert_equals(invoked_count, 0, "The handler should have been removed");
+}, "Once listener should be added / removed like normal listeners");
+
+test(function() {
+ const et = new EventTarget();
+
+ var invoked_count = 0;
+
+ for (let n = 4; n > 0; n--) {
+ et.addEventListener('test', (e) => {
+ invoked_count++;
+ e.stopImmediatePropagation();
+ }, {once: true});
+ }
+
+ for (let n = 4; n > 0; n--) {
+ et.dispatchEvent(new Event('test'));
+ }
+
+ assert_equals(invoked_count, 4, "The listeners should be invoked");
+}, "Multiple once listeners should be invoked even if the stopImmediatePropagation is set");
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,6 @@
+
+PASS Once listener should be invoked only once
+PASS Once listener should be invoked only once even if the event is nested
+PASS Once listener should be added / removed like normal listeners
+PASS Multiple once listeners should be invoked even if the stopImmediatePropagation is set
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.worker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>AddEventListenerOptions.once</title>
-<link rel="author" title="Xidorn Quan" href=""
-<link rel="help" href=""
-<script src=""
-<script src=""
-<div id="log"></div>
-<script>
-
-test(function() {
- var invoked_once = false;
- var invoked_normal = false;
- function handler_once() {
- invoked_once = true;
- }
- function handler_normal() {
- invoked_normal = true;
- }
-
- document.addEventListener('test', handler_once, {once: true});
- document.addEventListener('test', handler_normal);
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_once, true, "Once handler should be invoked");
- assert_equals(invoked_normal, true, "Normal handler should be invoked");
-
- invoked_once = false;
- invoked_normal = false;
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_once, false, "Once handler shouldn't be invoked again");
- assert_equals(invoked_normal, true, "Normal handler should be invoked again");
- document.removeEventListener('test', handler_normal);
-}, "Once listener should be invoked only once");
-
-test(function() {
- var invoked_count = 0;
- function handler() {
- invoked_count++;
- if (invoked_count == 1)
- document.dispatchEvent(new Event('test'));
- }
- document.addEventListener('test', handler, {once: true});
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_count, 1, "Once handler should only be invoked once");
-
- invoked_count = 0;
- function handler2() {
- invoked_count++;
- if (invoked_count == 1)
- document.addEventListener('test', handler2, {once: true});
- if (invoked_count <= 2)
- document.dispatchEvent(new Event('test'));
- }
- document.addEventListener('test', handler2, {once: true});
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_count, 2, "Once handler should only be invoked once after each adding");
-}, "Once listener should be invoked only once even if the event is nested");
-
-test(function() {
- var invoked_count = 0;
- function handler() {
- invoked_count++;
- }
-
- document.addEventListener('test', handler, {once: true});
- document.addEventListener('test', handler);
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_count, 1, "The handler should only be added once");
-
- invoked_count = 0;
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_count, 0, "The handler was added as a once listener");
-
- invoked_count = 0;
- document.addEventListener('test', handler, {once: true});
- document.removeEventListener('test', handler);
- document.dispatchEvent(new Event('test'));
- assert_equals(invoked_count, 0, "The handler should have been removed");
-}, "Once listener should be added / removed like normal listeners");
-
-test(function() {
- var invoked_count = 0;
-
- for (let n = 4; n > 0; n--) {
- document.addEventListener('test', (e) => {
- invoked_count++;
- e.stopImmediatePropagation();
- }, {once: true});
- }
-
- for (let n = 4; n > 0; n--) {
- document.dispatchEvent(new Event('test'));
- }
-
- assert_equals(invoked_count, 4, "The listeners should be invoked");
-}, "Multiple once listeners should be invoked even if the stopImmediatePropagation is set");
-
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,7 @@
+
+PASS Supports passive option on addEventListener only
+FAIL preventDefault should be ignored if-and-only-if the passive option is true assert_equals: Incorrect defaultPrevented for options: undefined expected (boolean) true but got (undefined) undefined
+PASS returnValue should be ignored if-and-only-if the passive option is true
+FAIL passive behavior of one listener should be unaffected by the presence of other listeners assert_equals: Incorrect defaultPrevented for options: {} expected (boolean) true but got (undefined) undefined
+PASS Equivalence of option values
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.js (from rev 285009, trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.html) (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.js (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.js 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,134 @@
+// META: title=AddEventListenerOptions.passive
+
+test(function() {
+ var supportsPassive = false;
+ var query_options = {
+ get passive() {
+ supportsPassive = true;
+ return false;
+ },
+ get dummy() {
+ assert_unreached("dummy value getter invoked");
+ return false;
+ }
+ };
+
+ const et = new EventTarget();
+ et.addEventListener('test_event', null, query_options);
+ assert_true(supportsPassive, "addEventListener doesn't support the passive option");
+
+ supportsPassive = false;
+ et.removeEventListener('test_event', null, query_options);
+ assert_false(supportsPassive, "removeEventListener supports the passive option when it should not");
+}, "Supports passive option on addEventListener only");
+
+function testPassiveValue(optionsValue, expectedDefaultPrevented) {
+ var defaultPrevented = undefined;
+ var handler = function handler(e) {
+ assert_false(e.defaultPrevented, "Event prematurely marked defaultPrevented");
+ e.preventDefault();
+ defaultPrevented = e.defaultPrevented;
+ }
+ const et = new EventTarget();
+ et.addEventListener('test', handler, optionsValue);
+ var uncanceled = document.body.dispatchEvent(new Event('test', {bubbles: true, cancelable: true}));
+
+ assert_equals(defaultPrevented, expectedDefaultPrevented, "Incorrect defaultPrevented for options: " + JSON.stringify(optionsValue));
+ assert_equals(uncanceled, !expectedDefaultPrevented, "Incorrect return value from dispatchEvent");
+
+ et.removeEventListener('test', handler, optionsValue);
+}
+
+test(function() {
+ testPassiveValue(undefined, true);
+ testPassiveValue({}, true);
+ testPassiveValue({passive: false}, true);
+ testPassiveValue({passive: true}, false);
+ testPassiveValue({passive: 0}, true);
+ testPassiveValue({passive: 1}, false);
+}, "preventDefault should be ignored if-and-only-if the passive option is true");
+
+function testPassiveValueOnReturnValue(test, optionsValue, expectedDefaultPrevented) {
+ var defaultPrevented = undefined;
+ var handler = test.step_func(e => {
+ assert_false(e.defaultPrevented, "Event prematurely marked defaultPrevented");
+ e.returnValue = false;
+ defaultPrevented = e.defaultPrevented;
+ });
+ const et = new EventTarget();
+ et.addEventListener('test', handler, optionsValue);
+ var uncanceled = et.dispatchEvent(new Event('test', {bubbles: true, cancelable: true}));
+
+ assert_equals(defaultPrevented, expectedDefaultPrevented, "Incorrect defaultPrevented for options: " + JSON.stringify(optionsValue));
+ assert_equals(uncanceled, !expectedDefaultPrevented, "Incorrect return value from dispatchEvent");
+
+ et.removeEventListener('test', handler, optionsValue);
+}
+
+async_test(t => {
+ testPassiveValueOnReturnValue(t, undefined, true);
+ testPassiveValueOnReturnValue(t, {}, true);
+ testPassiveValueOnReturnValue(t, {passive: false}, true);
+ testPassiveValueOnReturnValue(t, {passive: true}, false);
+ testPassiveValueOnReturnValue(t, {passive: 0}, true);
+ testPassiveValueOnReturnValue(t, {passive: 1}, false);
+ t.done();
+}, "returnValue should be ignored if-and-only-if the passive option is true");
+
+function testPassiveWithOtherHandlers(optionsValue, expectedDefaultPrevented) {
+ var handlerInvoked1 = false;
+ var dummyHandler1 = function() {
+ handlerInvoked1 = true;
+ };
+ var handlerInvoked2 = false;
+ var dummyHandler2 = function() {
+ handlerInvoked2 = true;
+ };
+
+ const et = new EventTarget();
+ et.addEventListener('test', dummyHandler1, {passive:true});
+ et.addEventListener('test', dummyHandler2);
+
+ testPassiveValue(optionsValue, expectedDefaultPrevented);
+
+ assert_true(handlerInvoked1, "Extra passive handler not invoked");
+ assert_true(handlerInvoked2, "Extra non-passive handler not invoked");
+
+ et.removeEventListener('test', dummyHandler1);
+ et.removeEventListener('test', dummyHandler2);
+}
+
+test(function() {
+ testPassiveWithOtherHandlers({}, true);
+ testPassiveWithOtherHandlers({passive: false}, true);
+ testPassiveWithOtherHandlers({passive: true}, false);
+}, "passive behavior of one listener should be unaffected by the presence of other listeners");
+
+function testOptionEquivalence(optionValue1, optionValue2, expectedEquality) {
+ var invocationCount = 0;
+ var handler = function handler(e) {
+ invocationCount++;
+ }
+ const et = new EventTarget();
+ et.addEventListener('test', handler, optionValue1);
+ et.addEventListener('test', handler, optionValue2);
+ et.dispatchEvent(new Event('test', {bubbles: true}));
+ assert_equals(invocationCount, expectedEquality ? 1 : 2, "equivalence of options " +
+ JSON.stringify(optionValue1) + " and " + JSON.stringify(optionValue2));
+ et.removeEventListener('test', handler, optionValue1);
+ et.removeEventListener('test', handler, optionValue2);
+}
+
+test(function() {
+ // Sanity check options that should be treated as distinct handlers
+ testOptionEquivalence({capture:true}, {capture:false, passive:false}, false);
+ testOptionEquivalence({capture:true}, {passive:true}, false);
+
+ // Option values that should be treated as equivalent
+ testOptionEquivalence({}, {passive:false}, true);
+ testOptionEquivalence({passive:true}, {passive:false}, true);
+ testOptionEquivalence(undefined, {passive:true}, true);
+ testOptionEquivalence({capture: true, passive: false}, {capture: true, passive: true}, true);
+
+}, "Equivalence of option values");
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,7 @@
+
+PASS Supports passive option on addEventListener only
+FAIL preventDefault should be ignored if-and-only-if the passive option is true Can't find variable: document
+PASS returnValue should be ignored if-and-only-if the passive option is true
+FAIL passive behavior of one listener should be unaffected by the presence of other listeners Can't find variable: document
+PASS Equivalence of option values
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.worker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,139 +0,0 @@
-<!DOCTYPE HTML>
-<meta charset="utf-8">
-<title>EventListenerOptions.passive</title>
-<link rel="author" title="Rick Byers" href=""
-<link rel="help" href=""
-<script src=""
-<script src=""
-<div id="log"></div>
-
-<script>
-
-test(function() {
- var supportsPassive = false;
- var query_options = {
- get passive() {
- supportsPassive = true;
- return false;
- },
- get dummy() {
- assert_unreached("dummy value getter invoked");
- return false;
- }
- };
-
- document.addEventListener('test_event', null, query_options);
- assert_true(supportsPassive, "addEventListener doesn't support the passive option");
-
- supportsPassive = false;
- document.removeEventListener('test_event', null, query_options);
- assert_false(supportsPassive, "removeEventListener supports the passive option when it should not");
-}, "Supports passive option on addEventListener only");
-
-function testPassiveValue(optionsValue, expectedDefaultPrevented) {
- var defaultPrevented = undefined;
- var handler = function handler(e) {
- assert_false(e.defaultPrevented, "Event prematurely marked defaultPrevented");
- e.preventDefault();
- defaultPrevented = e.defaultPrevented;
- }
- document.addEventListener('test', handler, optionsValue);
- var uncanceled = document.body.dispatchEvent(new Event('test', {bubbles: true, cancelable: true}));
-
- assert_equals(defaultPrevented, expectedDefaultPrevented, "Incorrect defaultPrevented for options: " + JSON.stringify(optionsValue));
- assert_equals(uncanceled, !expectedDefaultPrevented, "Incorrect return value from dispatchEvent");
-
- document.removeEventListener('test', handler, optionsValue);
-}
-
-test(function() {
- testPassiveValue(undefined, true);
- testPassiveValue({}, true);
- testPassiveValue({passive: false}, true);
- testPassiveValue({passive: true}, false);
- testPassiveValue({passive: 0}, true);
- testPassiveValue({passive: 1}, false);
-}, "preventDefault should be ignored if-and-only-if the passive option is true");
-
-function testPassiveValueOnReturnValue(test, optionsValue, expectedDefaultPrevented) {
- var defaultPrevented = undefined;
- var handler = test.step_func(e => {
- assert_false(e.defaultPrevented, "Event prematurely marked defaultPrevented");
- e.returnValue = false;
- defaultPrevented = e.defaultPrevented;
- });
- document.addEventListener('test', handler, optionsValue);
- var uncanceled = document.body.dispatchEvent(new Event('test', {bubbles: true, cancelable: true}));
-
- assert_equals(defaultPrevented, expectedDefaultPrevented, "Incorrect defaultPrevented for options: " + JSON.stringify(optionsValue));
- assert_equals(uncanceled, !expectedDefaultPrevented, "Incorrect return value from dispatchEvent");
-
- document.removeEventListener('test', handler, optionsValue);
-}
-
-async_test(t => {
- testPassiveValueOnReturnValue(t, undefined, true);
- testPassiveValueOnReturnValue(t, {}, true);
- testPassiveValueOnReturnValue(t, {passive: false}, true);
- testPassiveValueOnReturnValue(t, {passive: true}, false);
- testPassiveValueOnReturnValue(t, {passive: 0}, true);
- testPassiveValueOnReturnValue(t, {passive: 1}, false);
- t.done();
-}, "returnValue should be ignored if-and-only-if the passive option is true");
-
-function testPassiveWithOtherHandlers(optionsValue, expectedDefaultPrevented) {
- var handlerInvoked1 = false;
- var dummyHandler1 = function() {
- handlerInvoked1 = true;
- };
- var handlerInvoked2 = false;
- var dummyHandler2 = function() {
- handlerInvoked2 = true;
- };
-
- document.addEventListener('test', dummyHandler1, {passive:true});
- document.addEventListener('test', dummyHandler2);
-
- testPassiveValue(optionsValue, expectedDefaultPrevented);
-
- assert_true(handlerInvoked1, "Extra passive handler not invoked");
- assert_true(handlerInvoked2, "Extra non-passive handler not invoked");
-
- document.removeEventListener('test', dummyHandler1);
- document.removeEventListener('test', dummyHandler2);
-}
-
-test(function() {
- testPassiveWithOtherHandlers({}, true);
- testPassiveWithOtherHandlers({passive: false}, true);
- testPassiveWithOtherHandlers({passive: true}, false);
-}, "passive behavior of one listener should be unaffected by the presence of other listeners");
-
-function testOptionEquivalence(optionValue1, optionValue2, expectedEquality) {
- var invocationCount = 0;
- var handler = function handler(e) {
- invocationCount++;
- }
- document.addEventListener('test', handler, optionValue1);
- document.addEventListener('test', handler, optionValue2);
- document.body.dispatchEvent(new Event('test', {bubbles: true}));
- assert_equals(invocationCount, expectedEquality ? 1 : 2, "equivalence of options " +
- JSON.stringify(optionValue1) + " and " + JSON.stringify(optionValue2));
- document.removeEventListener('test', handler, optionValue1);
- document.removeEventListener('test', handler, optionValue2);
-}
-
-test(function() {
- // Sanity check options that should be treated as distinct handlers
- testOptionEquivalence({capture:true}, {capture:false, passive:false}, false);
- testOptionEquivalence({capture:true}, {passive:true}, false);
-
- // Option values that should be treated as equivalent
- testOptionEquivalence({}, {passive:false}, true);
- testOptionEquivalence({passive:true}, {passive:false}, true);
- testOptionEquivalence(undefined, {passive:true}, true);
- testOptionEquivalence({capture: true, passive: false}, {capture: true, passive: true}, true);
-
-}, "Equivalence of option values");
-
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+PASS Removing an event listener without explicit capture arg should succeed
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.js (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.js (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.js 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,21 @@
+// META: title=EventTarget's addEventListener + removeEventListener
+
+"use strict";
+
+function listener(evt) {
+ evt.preventDefault();
+ return false;
+}
+
+test(() => {
+ const et = new EventTarget();
+ et.addEventListener("x", listener, false);
+ let event = new Event("x", { cancelable: true });
+ let ret = et.dispatchEvent(event);
+ assert_false(ret);
+
+ et.removeEventListener("x", listener);
+ event = new Event("x", { cancelable: true });
+ ret = et.dispatchEvent(event);
+ assert_true(ret);
+}, "Removing an event listener without explicit capture arg should succeed");
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+PASS Removing an event listener without explicit capture arg should succeed
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.worker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>EventTarget's addEventListener + removeEventListener</title>
-<link rel="author" title="Sebastian Mayr" href=""
-<link rel="help" href=""
-<link rel="help" href=""
-<script src=""
-<script src=""
-<div id="log"></div>
-<script>
-"use strict";
-
-function listener(evt) {
- evt.preventDefault();
- return false;
-}
-
-test(() => {
- document.addEventListener("x", listener, false);
- let event = new Event("x", { cancelable: true });
- let ret = document.dispatchEvent(event);
- assert_false(ret);
-
- document.removeEventListener("x", listener);
- event = new Event("x", { cancelable: true });
- ret = document.dispatchEvent(event);
- assert_true(ret);
-}, "Removing an event listener without explicit capture arg should succeed");
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+PASS Adding a null event listener should succeed
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.js (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.js (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.js 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,9 @@
+// META: title=EventTarget.addEventListener
+
+// Step 1.
+test(function() {
+ const et = new EventTarget();
+ assert_equals(et.addEventListener("x", null, false), undefined);
+ assert_equals(et.addEventListener("x", null, true), undefined);
+ assert_equals(et.addEventListener("x", null), undefined);
+}, "Adding a null event listener should succeed");
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+PASS Adding a null event listener should succeed
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.worker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>EventTarget.addEventListener</title>
-<link rel="author" title="Ms2ger" href=""
-<link rel="help" href=""
-<script src=""
-<script src=""
-<div id="log"></div>
-<script>
-// Step 1.
-test(function() {
- assert_equals(document.addEventListener("x", null, false), undefined);
- assert_equals(document.addEventListener("x", null, true), undefined);
- assert_equals(document.addEventListener("x", null), undefined);
-}, "Adding a null event listener should succeed");
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+PASS removing a null event listener should succeed
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.js (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.js (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.js 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,8 @@
+// META: title=EventTarget.removeEventListener
+
+// Step 1.
+test(function() {
+ assert_equals(document.removeEventListener("x", null, false), undefined);
+ assert_equals(document.removeEventListener("x", null, true), undefined);
+ assert_equals(document.removeEventListener("x", null), undefined);
+}, "removing a null event listener should succeed");
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,3 @@
+
+FAIL removing a null event listener should succeed Can't find variable: document
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.worker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>EventTarget.removeEventListener</title>
-<link rel="author" title="Ms2ger" href=""
-<link rel="help" href=""
-<script src=""
-<script src=""
-<div id="log"></div>
-<script>
-// Step 1.
-test(function() {
- assert_equals(document.removeEventListener("x", null, false), undefined);
- assert_equals(document.removeEventListener("x", null, true), undefined);
- assert_equals(document.removeEventListener("x", null), undefined);
-}, "removing a null event listener should succeed");
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,5 @@
+
+PASS KeyboardEvent.initKeyEvent shouldn't be defined (created by createEvent("KeyboardEvent")
+PASS KeyboardEvent.initKeyEvent shouldn't be defined (created by constructor)
+PASS KeyboardEvent.prototype.initKeyEvent shouldn't be defined
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>KeyEvent.initKeyEvent</title>
+<script src=""
+<script src=""
+<div id="log"></div>
+<script>
+// The legacy KeyEvent.initKeyEvent shouldn't be defined in the wild anymore.
+// https://www.w3.org/TR/1999/WD-DOM-Level-2-19990923/events.html#Events-Event-initKeyEvent
+test(function() {
+ const event = document.createEvent("KeyboardEvent");
+ assert_true(event?.initKeyEvent === undefined);
+}, "KeyboardEvent.initKeyEvent shouldn't be defined (created by createEvent(\"KeyboardEvent\")");
+
+test(function() {
+ const event = new KeyboardEvent("keypress");
+ assert_true(event?.initKeyEvent === undefined);
+}, "KeyboardEvent.initKeyEvent shouldn't be defined (created by constructor)");
+
+test(function() {
+ assert_true(KeyboardEvent.prototype.initKeyEvent === undefined);
+}, "KeyboardEvent.prototype.initKeyEvent shouldn't be defined");
+</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<style>
+
+body { margin: 0; padding: 10px; }
+.space { height: 2000px; }
+
+#scroller {
+ border: 3px solid green;
+ position: absolute;
+ z-index: 0;
+ overflow: auto;
+ padding: 10px;
+ width: 250px;
+ height: 150px;
+}
+
+.ifr {
+ border: 3px solid blue;
+ width: 200px;
+ height: 100px;
+}
+
+</style>
+</head>
+<body>
+<div id=scroller>
+ <iframe srcdoc="SCROLL ME" class=ifr></iframe>
+ <div class=space></div>
+</div>
+<div class=space></div>
+<script>
+
+promise_test(async t => {
+ await new test_driver.Actions().scroll(50, 50, 0, 50).send();
+ assert_equals(scroller.scrollTop, 50);
+}, "Wheel scroll in iframe chains to containing element.");
+
+</script>
+</body>
+</html>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/w3c-import.log (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/w3c-import.log 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/w3c-import.log 2021-10-29 00:21:52 UTC (rev 285010)
@@ -14,6 +14,7 @@
None
------------------------------------------------------------------------
List of files:
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/input-text-scroll-event-when-using-arrow-keys.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-deltas.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-document.html
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log 2021-10-29 00:21:52 UTC (rev 285010)
@@ -14,8 +14,8 @@
None
------------------------------------------------------------------------
List of files:
-/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.html
-/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-once.any.js
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-passive.any.js
/LayoutTests/imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-signal.any.js
/LayoutTests/imported/w3c/web-platform-tests/dom/events/CustomEvent.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-cancelBubble.html
@@ -68,13 +68,14 @@
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-invoke-legacy.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-listener-platform-object.html
-/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.html
-/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-add-remove-listener.any.js
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.any.js
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-constructible.any.js
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html
-/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.any.js
/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-this-of-listener.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/events/KeyEvent-initKeyEvent.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.tentative.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default.tentative.html
/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-disabled-dynamic.html
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -75,4 +75,5 @@
PASS Event should not have this constant: SELECT
PASS Event should not have this constant: CHANGE
PASS Event.prototype should not have this property: getPreventDefault
+PASS Event.prototype should not have this property: path
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html (285009 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -190,6 +190,7 @@
var EventPrototypeRemoved = [
"getPreventDefault",
+ "path"
]
EventPrototypeRemoved.forEach(name => {
test(() => {
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker-expected.txt (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker-expected.txt 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1,208 @@
+
+PASS idl_test setup
+PASS idl_test validation
+PASS Partial interface Window: original interface defined
+PASS Partial interface Window: member names are unique
+PASS Partial interface Document: member names are unique
+PASS Partial interface Document[2]: member names are unique
+PASS Partial interface Window[2]: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
+PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
+PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS Window includes GlobalEventHandlers: member names are unique
+PASS Window includes WindowEventHandlers: member names are unique
+PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
+PASS Event interface: existence and properties of interface object
+PASS Event interface object length
+PASS Event interface object name
+PASS Event interface: existence and properties of interface prototype object
+PASS Event interface: existence and properties of interface prototype object's "constructor" property
+PASS Event interface: existence and properties of interface prototype object's @@unscopables property
+PASS Event interface: attribute type
+PASS Event interface: attribute target
+PASS Event interface: attribute srcElement
+PASS Event interface: attribute currentTarget
+PASS Event interface: operation composedPath()
+PASS Event interface: constant NONE on interface object
+PASS Event interface: constant NONE on interface prototype object
+PASS Event interface: constant CAPTURING_PHASE on interface object
+PASS Event interface: constant CAPTURING_PHASE on interface prototype object
+PASS Event interface: constant AT_TARGET on interface object
+PASS Event interface: constant AT_TARGET on interface prototype object
+PASS Event interface: constant BUBBLING_PHASE on interface object
+PASS Event interface: constant BUBBLING_PHASE on interface prototype object
+PASS Event interface: attribute eventPhase
+PASS Event interface: operation stopPropagation()
+PASS Event interface: attribute cancelBubble
+PASS Event interface: operation stopImmediatePropagation()
+PASS Event interface: attribute bubbles
+PASS Event interface: attribute cancelable
+PASS Event interface: attribute returnValue
+PASS Event interface: operation preventDefault()
+PASS Event interface: attribute defaultPrevented
+PASS Event interface: attribute composed
+PASS Event interface: attribute timeStamp
+PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
+PASS Event must be primary interface of new Event("foo")
+PASS Stringification of new Event("foo")
+PASS Event interface: new Event("foo") must inherit property "type" with the proper type
+PASS Event interface: new Event("foo") must inherit property "target" with the proper type
+PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
+PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
+PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
+PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
+PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
+PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
+PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
+PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
+PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
+PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
+PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
+PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
+PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
+PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
+PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
+PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
+PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
+PASS Event interface: new Event("foo") must have own property "isTrusted"
+PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
+PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
+PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
+PASS CustomEvent interface: existence and properties of interface object
+PASS CustomEvent interface object length
+PASS CustomEvent interface object name
+PASS CustomEvent interface: existence and properties of interface prototype object
+PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS CustomEvent interface: attribute detail
+PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
+PASS CustomEvent must be primary interface of new CustomEvent("foo")
+PASS Stringification of new CustomEvent("foo")
+PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
+PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
+PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
+PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
+PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
+PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
+PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
+PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
+PASS EventTarget interface: existence and properties of interface object
+PASS EventTarget interface object length
+PASS EventTarget interface object name
+PASS EventTarget interface: existence and properties of interface prototype object
+PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
+PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
+PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
+PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
+PASS EventTarget interface: operation dispatchEvent(Event)
+PASS EventTarget must be primary interface of new EventTarget()
+PASS Stringification of new EventTarget()
+PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
+PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
+PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
+PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
+PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
+PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
+PASS EventListener interface: existence and properties of interface object
+PASS AbortController interface: existence and properties of interface object
+PASS AbortController interface object length
+PASS AbortController interface object name
+PASS AbortController interface: existence and properties of interface prototype object
+PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
+PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
+PASS AbortController interface: attribute signal
+PASS AbortController interface: operation abort()
+PASS AbortController must be primary interface of new AbortController()
+PASS Stringification of new AbortController()
+PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
+PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
+PASS AbortSignal interface: existence and properties of interface object
+PASS AbortSignal interface object length
+PASS AbortSignal interface object name
+PASS AbortSignal interface: existence and properties of interface prototype object
+PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
+PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
+PASS AbortSignal interface: operation abort()
+PASS AbortSignal interface: attribute aborted
+PASS AbortSignal interface: attribute onabort
+PASS AbortSignal must be primary interface of new AbortController().signal
+PASS Stringification of new AbortController().signal
+PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
+PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
+PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
+PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
+PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
+PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
+PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
+PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
+PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
+PASS NodeList interface: existence and properties of interface object
+PASS HTMLCollection interface: existence and properties of interface object
+PASS MutationObserver interface: existence and properties of interface object
+PASS MutationRecord interface: existence and properties of interface object
+PASS Node interface: existence and properties of interface object
+PASS Document interface: existence and properties of interface object
+PASS XMLDocument interface: existence and properties of interface object
+PASS DOMImplementation interface: existence and properties of interface object
+PASS DocumentType interface: existence and properties of interface object
+PASS DocumentFragment interface: existence and properties of interface object
+PASS ShadowRoot interface: existence and properties of interface object
+PASS Element interface: existence and properties of interface object
+PASS NamedNodeMap interface: existence and properties of interface object
+PASS Attr interface: existence and properties of interface object
+PASS CharacterData interface: existence and properties of interface object
+PASS Text interface: existence and properties of interface object
+PASS CDATASection interface: existence and properties of interface object
+PASS ProcessingInstruction interface: existence and properties of interface object
+PASS Comment interface: existence and properties of interface object
+PASS AbstractRange interface: existence and properties of interface object
+PASS StaticRange interface: existence and properties of interface object
+PASS Range interface: existence and properties of interface object
+PASS NodeIterator interface: existence and properties of interface object
+PASS TreeWalker interface: existence and properties of interface object
+PASS NodeFilter interface: existence and properties of interface object
+PASS DOMTokenList interface: existence and properties of interface object
+PASS XPathResult interface: existence and properties of interface object
+PASS XPathExpression interface: existence and properties of interface object
+PASS XPathNSResolver interface: existence and properties of interface object
+PASS XPathEvaluator interface: existence and properties of interface object
+PASS XSLTProcessor interface: existence and properties of interface object
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker.html (0 => 285010)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker.html 2021-10-29 00:21:52 UTC (rev 285010)
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (285009 => 285010)
--- trunk/LayoutTests/platform/mac-wk1/TestExpectations 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2021-10-29 00:21:52 UTC (rev 285010)
@@ -353,6 +353,7 @@
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html [ Skip ]
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html [ Skip ]
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html [ Skip ]
+imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/request/destination [ Skip ]
imported/w3c/web-platform-tests/fetch/cross-origin-resource-policy [ Skip ]
imported/w3c/web-platform-tests/fetch/range/sw.https.window.html [ Skip ]
Modified: trunk/LayoutTests/platform/win/TestExpectations (285009 => 285010)
--- trunk/LayoutTests/platform/win/TestExpectations 2021-10-29 00:21:04 UTC (rev 285009)
+++ trunk/LayoutTests/platform/win/TestExpectations 2021-10-29 00:21:52 UTC (rev 285010)
@@ -3725,6 +3725,7 @@
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html [ Skip ]
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html [ Skip ]
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html [ Skip ]
+imported/w3c/web-platform-tests/dom/idlharness.any.serviceworker.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html [ Skip ]