From ad80d32beb55091856f387d82cc98343a1d60019 Mon Sep 17 00:00:00 2001 From: jgraham Date: Wed, 25 Sep 2019 16:54:12 +0000 Subject: [PATCH 01/75] Bug 1583156 [wpt PR 19218] - Allow the Ahem stylesheet to be loaded from support/ahem.css, a=testonly Automatic update from web-platform-tests Allow the Ahem stylesheet to be loaded from support/ahem.css (#19218) This means that the use of Ahem in the CSS vendor-imports/mozilla directory can be linted, which prevents those tests accidentially including Ahem without the import. It also provides the theoretical ability for other directories to override the Ahem stylesheet without removing all linting, which may be useful. -- wpt-commits: 44002ecbc8839887a462d5844cde97a156cf02a0 wpt-pr: 19218 --- testing/web-platform/tests/lint.whitelist | 5 ----- testing/web-platform/tests/tools/lint/lint.py | 5 ++++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/testing/web-platform/tests/lint.whitelist b/testing/web-platform/tests/lint.whitelist index be87d2786405..d9ea5c17c7cf 100644 --- a/testing/web-platform/tests/lint.whitelist +++ b/testing/web-platform/tests/lint.whitelist @@ -836,11 +836,6 @@ AHEM SYSTEM FONT: acid/acid3/test.html AHEM SYSTEM FONT: resource-timing/resources/all_resource_types.htm AHEM SYSTEM FONT: resource-timing/resources/iframe-reload-TAO.sub.html -# These tests are imported from mozilla-central and can't be modified in WPT. -# They do load Ahem as a web font, but they use their own copy which trips the -# lint rule. Basically false positives. -AHEM SYSTEM FONT: css/vendor-imports/mozilla/mozilla-central-reftests/* - # TODO: The following should be deleted along with the Ahem web font cleanup # PR (https://github.com/web-platform-tests/wpt/pull/18702) AHEM SYSTEM FONT: infrastructure/assumptions/ahem-ref.html diff --git a/testing/web-platform/tests/tools/lint/lint.py b/testing/web-platform/tests/tools/lint/lint.py index 48a275bcf29d..7689c359928d 100644 --- a/testing/web-platform/tests/tools/lint/lint.py +++ b/testing/web-platform/tests/tools/lint/lint.py @@ -681,7 +681,10 @@ def check_script_metadata(repo_root, path, f): ahem_font_re = re.compile(b"font.*:.*ahem", flags=re.IGNORECASE) -ahem_stylesheet_re = re.compile(b"\/fonts\/ahem\.css", flags=re.IGNORECASE) +# Ahem can appear either in the global location or in the support +# directory for legacy Mozilla imports +ahem_stylesheet_re = re.compile(b"\/fonts\/ahem\.css|support\/ahem.css", + flags=re.IGNORECASE) def check_ahem_system_font(repo_root, path, f): From f5e8dfeacedf96c9c4a6a6c12e29e65c4d0c9577 Mon Sep 17 00:00:00 2001 From: Daniel Vogelheim Date: Wed, 25 Sep 2019 16:54:27 +0000 Subject: [PATCH 02/75] Bug 1581869 [wpt PR 19121] - [Trusted Types] De-flake trusted-types-eval-reporting test., a=testonly Automatic update from web-platform-tests [Trusted Types] De-flake trusted-types-eval-reporting test. The WPT test trusted-types-eval-reporting was flaky, usually failing on the first run, but succeeding on the second. This was a real (and potentially serious) bug, where the CSP logic would rely on the V8 eval callback being called, but other parts would blanket-allow eval (and hence suppress the callback) because they didn't check for 'trusted types' condition. Also, minor cleanups for the test. Bug: 739170 Change-Id: I00699b115f0be474c2b6d231dcc8b884868248b7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1807218 Commit-Queue: Daniel Vogelheim Reviewed-by: Mike West Cr-Commit-Position: refs/heads/master@{#698883} -- wpt-commits: 034c163b81d6ae572869a98a80bed5bc8c52336d wpt-pr: 19121 --- ...-types-eval-reporting.tentative.https.html | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/testing/web-platform/tests/trusted-types/trusted-types-eval-reporting.tentative.https.html b/testing/web-platform/tests/trusted-types/trusted-types-eval-reporting.tentative.https.html index 309873cb1f80..4ec5db1adce7 100644 --- a/testing/web-platform/tests/trusted-types/trusted-types-eval-reporting.tentative.https.html +++ b/testing/web-platform/tests/trusted-types/trusted-types-eval-reporting.tentative.https.html @@ -1,8 +1,7 @@ - - + + + + + +
+
+
+ + + From fb6a36d80d1814414500545637de2f9911f76372 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:16:13 +0000 Subject: [PATCH 10/75] Bug 1583038 [wpt PR 19211] - Update wpt metadata, a=testonly wpt-pr: 19211 wpt-type: metadata --- .../meta/css/css-content/inheritance.html.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 testing/web-platform/meta/css/css-content/inheritance.html.ini diff --git a/testing/web-platform/meta/css/css-content/inheritance.html.ini b/testing/web-platform/meta/css/css-content/inheritance.html.ini new file mode 100644 index 000000000000..9e134ed4f35f --- /dev/null +++ b/testing/web-platform/meta/css/css-content/inheritance.html.ini @@ -0,0 +1,13 @@ +[inheritance.html] + [Property bookmark-state does not inherit] + expected: FAIL + + [Property bookmark-state has initial value open] + expected: FAIL + + [Property bookmark-level has initial value none] + expected: FAIL + + [Property bookmark-level does not inherit] + expected: FAIL + From 3370e3b76b4d9f867b32636777db6670ad900831 Mon Sep 17 00:00:00 2001 From: Stefan Zager Date: Wed, 25 Sep 2019 16:55:13 +0000 Subject: [PATCH 11/75] Bug 1582635 [wpt PR 19173] - [IntersectionObserver] If necessary, schedule a frame after delay, a=testonly Automatic update from web-platform-tests [IntersectionObserver] If necessary, schedule a frame after delay If the following sequence happens: - IntersectionObserver sends a notification - Layout is dirtied in a way that should generate a new notification - Lifecyce update runs - IntersectionObserver skips processing due to its 'delay' parameter ... then we need to guarantee that the IntersectionObserver will send the necessary notification after the required delay. If animation frames are being regularly generated, this won't be a problem, because the observer will get a chance to run at the end of every lifecycle update. But if the document goes dormant, and frames are not being regularly generated, then we must force a lifecycle update after enough time has passed, to give the observer a chance to run. Change-Id: I74b63486e5c9b05c662f9e2e6e1c0b4baf00eba5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1812798 Reviewed-by: Chris Harrelson Commit-Queue: Stefan Zager Cr-Commit-Position: refs/heads/master@{#699093} -- wpt-commits: ac95b44dc6369126f8b97ea1308921533dfdd39b wpt-pr: 19173 --- .../intersection-observer/v2/delay-test.html | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/intersection-observer/v2/delay-test.html b/testing/web-platform/tests/intersection-observer/v2/delay-test.html index 231df32c31df..e3906ea2c297 100644 --- a/testing/web-platform/tests/intersection-observer/v2/delay-test.html +++ b/testing/web-platform/tests/intersection-observer/v2/delay-test.html @@ -46,7 +46,7 @@ async_test(t => { // The first notification should be sent without delay. waitForNotification(t, t.step_func(step0)); - function waitForDelay(timerExpiredBeforeLastFrame) { + function waitForDelay(timerExpiredBeforeLastFrame, nextStep) { requestAnimationFrame(t.step_func(() => { if (timerExpiredBeforeLastFrame) { // New notifications should have been generated during the previous @@ -54,11 +54,11 @@ async_test(t => { assert_equals(entries.length, 2); assert_greater_than(entries[1].time - entries[0].time, delay); assert_false(entries[1].isVisible); - t.done(); + nextStep(); } else { // Observer may not have updated yet. Wait for next frame. let timerExpired = performance.now() - entries[0].time >= delay; - waitForDelay(timerExpired); + waitForDelay(timerExpired, nextStep); } })); } @@ -69,7 +69,20 @@ async_test(t => { // This should trigger a notification on the next run. occluder.style.marginTop = "-10px"; // Enter a rAF loop until the delay timer expires. - waitForDelay(false); + waitForDelay(false, step1); + } + + function step1() { + occluder.style.marginTop = "10px"; + // This style invalidation should cause a frame to run before the observer + // can generate a notification (due to delay parameter). Make sure the + // notification will still be generated even if we don't force more frames + // with a rAF loop. + t.step_timeout(() => { + assert_equals(entries.length, 3); + assert_true(entries[0].isVisible); + t.done(); + }, 2 * delay); } }, "'delay' parameter throttles frequency of notifications."); From 55563c9c7dabf00dd4e8caf1df81e74ad7d48074 Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Wed, 25 Sep 2019 16:55:18 +0000 Subject: [PATCH 12/75] Bug 1582128 [wpt PR 19136] - CSS: Avoid serializing [] in grid-template* specified values, a=testonly Automatic update from web-platform-tests CSS: Avoid serializing [] in grid-template* specified values Any empty list of list items can be discarded when parsing grid-template-rows, grid-template-columns, etc. Discussed in https://github.com/w3c/csswg-drafts/issues/4173 Change-Id: I859020aaa78b71d2540d9ec188335f22db3f278a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1810454 Reviewed-by: Oriol Brufau Commit-Queue: Eric Willigers Cr-Commit-Position: refs/heads/master@{#699101} -- wpt-commits: 2478ed1b80bce8204980baf73977bdcc1a609f93 wpt-pr: 19136 --- .../css-grid/parsing/grid-area-shorthand.html | 99 +++++++++++++++++++ .../parsing/grid-auto-columns-invalid.html | 3 +- .../parsing/grid-auto-rows-invalid.html | 1 + .../parsing/grid-template-columns-valid.html | 3 +- .../parsing/grid-template-rows-valid.html | 7 +- .../parsing/grid-template-shorthand.html | 62 ++++++++++++ 6 files changed, 168 insertions(+), 7 deletions(-) create mode 100644 testing/web-platform/tests/css/css-grid/parsing/grid-area-shorthand.html create mode 100644 testing/web-platform/tests/css/css-grid/parsing/grid-template-shorthand.html diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-area-shorthand.html b/testing/web-platform/tests/css/css-grid/parsing/grid-area-shorthand.html new file mode 100644 index 000000000000..9a265502d5c0 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-area-shorthand.html @@ -0,0 +1,99 @@ + + + + +CSS Grid Layout Test: grid-area sets longhands + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-auto-columns-invalid.html b/testing/web-platform/tests/css/css-grid/parsing/grid-auto-columns-invalid.html index 40b6059a7e8b..04e0fadf0df2 100644 --- a/testing/web-platform/tests/css/css-grid/parsing/grid-auto-columns-invalid.html +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-auto-columns-invalid.html @@ -32,7 +32,8 @@ test_invalid_value("grid-auto-columns", "fit-content(1px auto)"); // + test_invalid_value("grid-auto-columns", "2em / 3em"); test_invalid_value("grid-auto-columns", "auto, 10%"); -test_invalid_value("grid-auto-rows", "1px [a] 1px"); +test_invalid_value("grid-auto-columns", "1px [a] 1px"); +test_invalid_value("grid-auto-columns", "[] 1px []"); diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-auto-rows-invalid.html b/testing/web-platform/tests/css/css-grid/parsing/grid-auto-rows-invalid.html index 4111e2563365..1b61479f3c2f 100644 --- a/testing/web-platform/tests/css/css-grid/parsing/grid-auto-rows-invalid.html +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-auto-rows-invalid.html @@ -32,6 +32,7 @@ test_invalid_value("grid-auto-rows", "fit-content(1px auto)"); test_invalid_value("grid-auto-rows", "2em / 3em"); test_invalid_value("grid-auto-rows", "auto, 10%"); test_invalid_value("grid-auto-rows", "1px [a] 1px"); +test_invalid_value("grid-auto-rows", "[] 1px []"); diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-template-columns-valid.html b/testing/web-platform/tests/css/css-grid/parsing/grid-template-columns-valid.html index 85ac76a999aa..6bf2e7bce63c 100644 --- a/testing/web-platform/tests/css/css-grid/parsing/grid-template-columns-valid.html +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-template-columns-valid.html @@ -47,7 +47,7 @@ test_valid_value("grid-template-columns", 'fit-content(calc(30% + 40vw))'); // 'repeat(1, 10px)' in Firefox // '[] 10px' in Safari // '10px' in Edge 18 -test_valid_value("grid-template-columns", 'repeat(1, [] 10px)', ['repeat(1, 10px)', 'repeat(1, [] 10px)']); +test_valid_value("grid-template-columns", 'repeat(1, [] 10px [])', 'repeat(1, 10px)'); // 'repeat(1, [one two] 20%)' in Blink, Firefox // '[one two] 20%' in Safari, Edge 18 @@ -61,6 +61,7 @@ test_valid_value("grid-template-columns", 'repeat(2, fit-content(20%) [three fou // = [ ? [ | ] ]+ ? test_valid_value("grid-template-columns", 'min-content repeat(5, minmax(10px, auto))'); +test_valid_value("grid-template-columns", '[] 150px [] 1fr []', '150px 1fr'); // = repeat( [ auto-fill | auto-fit ] , [ ? ]+ ? ) test_valid_value("grid-template-columns", 'repeat(auto-fill, 10px)'); diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-template-rows-valid.html b/testing/web-platform/tests/css/css-grid/parsing/grid-template-rows-valid.html index ec8d64f79bac..2d3a1ed8045c 100644 --- a/testing/web-platform/tests/css/css-grid/parsing/grid-template-rows-valid.html +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-template-rows-valid.html @@ -43,11 +43,7 @@ test_valid_value("grid-template-rows", 'fit-content(calc(30% + 40vw))'); // = repeat( [ ] , [ ? ]+ ? ) -// 'repeat(1, [] 10px)' in Blink -// 'repeat(1, 10px)' in Firefox -// '[] 10px' in Safari -// '10px' in Edge 18 -test_valid_value("grid-template-rows", 'repeat(1, [] 10px)', ['repeat(1, 10px)', 'repeat(1, [] 10px)']); +test_valid_value("grid-template-rows", 'repeat(1, [] 10px [])', 'repeat(1, 10px)'); // 'repeat(1, [one two] 20%)' in Blink, Firefox // '[one two] 20%' in Safari, Edge 18 @@ -61,6 +57,7 @@ test_valid_value("grid-template-rows", 'repeat(2, fit-content(20%) [three four] // = [ ? [ | ] ]+ ? test_valid_value("grid-template-rows", 'min-content repeat(5, minmax(10px, auto))'); +test_valid_value("grid-template-rows", '[] 150px [] 1fr []', '150px 1fr'); // = repeat( [ auto-fill | auto-fit ] , [ ? ]+ ? ) test_valid_value("grid-template-rows", 'repeat(auto-fill, 10px)'); diff --git a/testing/web-platform/tests/css/css-grid/parsing/grid-template-shorthand.html b/testing/web-platform/tests/css/css-grid/parsing/grid-template-shorthand.html new file mode 100644 index 000000000000..b9165359a725 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/parsing/grid-template-shorthand.html @@ -0,0 +1,62 @@ + + + + +CSS Grid Layout Test: grid-template sets longhands + + + + + + + + + + From f12be88e618dde9b44248c72b8e5573367be4fec Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:22:48 +0000 Subject: [PATCH 13/75] Bug 1582128 [wpt PR 19136] - Update wpt metadata, a=testonly wpt-pr: 19136 wpt-type: metadata --- .../meta/css/css-grid/parsing/grid-area-shorthand.html.ini | 4 ++++ .../css/css-grid/parsing/grid-template-shorthand.html.ini | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini create mode 100644 testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini new file mode 100644 index 000000000000..4082849ae5d7 --- /dev/null +++ b/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini @@ -0,0 +1,4 @@ +[grid-area-shorthand.html] + [CSS Grid Layout Test: grid-area sets longhands] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini new file mode 100644 index 000000000000..b074e9d16c68 --- /dev/null +++ b/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini @@ -0,0 +1,4 @@ +[grid-template-shorthand.html] + [CSS Grid Layout Test: grid-template sets longhands] + expected: FAIL + From 68feb53600cf52af7360568df621cc6af5d1e992 Mon Sep 17 00:00:00 2001 From: Adrienne Walker Date: Wed, 25 Sep 2019 16:55:26 +0000 Subject: [PATCH 14/75] Bug 1582808 [wpt PR 19191] - Change IDBTransaction durability bool to an enum, a=testonly Automatic update from web-platform-tests Change IDBTransaction durability bool to an enum ... per discussion at TPAC. Naming still needs bikeshedding, but updating the plumbing to reflect the latest thinking. This experimental option is behind the RuntimeEnabledFeatures::IDBRelaxedDurabilityEnabled flag. Bug: 965883 Change-Id: Ied85fbe6fc106871e9c5d501eccababf5c96c293 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1814221 Commit-Queue: enne Reviewed-by: Daniel Cheng Reviewed-by: Joshua Bell Reviewed-by: Victor Costan Cr-Commit-Position: refs/heads/master@{#699109} -- wpt-commits: ddc8371a3872735db4c20003536477bfe9ba39c3 wpt-pr: 19191 --- .../transaction-relaxed-durability.tentative.any.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/testing/web-platform/tests/IndexedDB/transaction-relaxed-durability.tentative.any.js b/testing/web-platform/tests/IndexedDB/transaction-relaxed-durability.tentative.any.js index c6a6f37ba9e0..2ba96ec08edd 100644 --- a/testing/web-platform/tests/IndexedDB/transaction-relaxed-durability.tentative.any.js +++ b/testing/web-platform/tests/IndexedDB/transaction-relaxed-durability.tentative.any.js @@ -12,8 +12,9 @@ let cases = [ undefined, {}, - {relaxedDurability: false}, - {relaxedDurability: true}, + {durability: "default"}, + {durability: "relaxed"}, + {durability: "strict"}, ]; for (let i = 0; i < cases.length; ++i) { From 273a398320e265d71a758d5b793cc83c96a1181c Mon Sep 17 00:00:00 2001 From: Boris Chiou Date: Wed, 25 Sep 2019 16:55:31 +0000 Subject: [PATCH 15/75] Bug 1583410 [wpt PR 19239] - [web-animations] Reject "float" in the keyframe-like object., a=testonly Automatic update from web-platform-tests [web-animations] Reject "float" in the keyframe-like object. Add `float` into gNonAnimatableProps so make sure it should be rejected. This has been discussed in https://github.com/w3c/csswg-drafts/issues/4331. -- wpt-commits: 936469d6b8c40a84dcd18c506f46ea0c0e308f83 wpt-pr: 19239 --- .../KeyframeEffect/processing-a-keyframes-argument-001.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testing/web-platform/tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html b/testing/web-platform/tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html index 5c9ec84e8db7..5bd0ae2b1edb 100644 --- a/testing/web-platform/tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html +++ b/testing/web-platform/tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html @@ -45,6 +45,8 @@ const gNonAnimatableProps = [ 'unsupportedProperty', + 'float', // We use the string "cssFloat" to represent "float" property, and + // so reject "float" in the keyframe-like object. 'font-size', // Supported property that uses dashes ]; From 29b7026ef29f911583f13ed38e6c4bcef31fb422 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Wed, 25 Sep 2019 16:55:36 +0000 Subject: [PATCH 16/75] Bug 1583420 [wpt PR 17572] - HTML: is a thing, a=testonly Automatic update from web-platform-tests HTML: is a thing See https://github.com/whatwg/html/issues/4717. -- wpt-commits: 1b9a2c62e02b05aa1810ff56406828cf9f3bba96 wpt-pr: 17572 --- .../tables/table-column-width-ref.html | 2 ++ .../tables/table-column-width.html | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width-ref.html create mode 100644 testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width.html diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width-ref.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width-ref.html new file mode 100644 index 000000000000..1eb7c00d2141 --- /dev/null +++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width-ref.html @@ -0,0 +1,2 @@ + +
Text
diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width.html new file mode 100644 index 000000000000..6358e14a3926 --- /dev/null +++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/tables/table-column-width.html @@ -0,0 +1,10 @@ + + + + + + +
+ From 11a5d68b61276f0d9ff5c312e7a9cead0da6cfa4 Mon Sep 17 00:00:00 2001 From: youennf Date: Wed, 25 Sep 2019 16:55:41 +0000 Subject: [PATCH 17/75] Bug 1583102 [wpt PR 19215] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=202098, a=testonly Automatic update from web-platform-tests WebKit export of https://bugs.webkit.org/show_bug.cgi?id=202098 (#19215) -- wpt-commits: c801088a6c2ad0838c79ef5143377798d5b31aba wpt-pr: 19215 --- .../xhr/xmlhttprequest-sync-default-feature-policy.sub.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html b/testing/web-platform/tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html index 5ad5557700d7..ab5b78b77c66 100644 --- a/testing/web-platform/tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html +++ b/testing/web-platform/tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html @@ -9,7 +9,7 @@ diff --git a/testing/web-platform/tests/IndexedDB/fire-upgradeneeded-event-exception.html b/testing/web-platform/tests/IndexedDB/fire-upgradeneeded-event-exception.html index 5db452ebafe6..1a8163a58b15 100644 --- a/testing/web-platform/tests/IndexedDB/fire-upgradeneeded-event-exception.html +++ b/testing/web-platform/tests/IndexedDB/fire-upgradeneeded-event-exception.html @@ -15,48 +15,55 @@ function fire_upgradeneeded_event_test(func, description) { del.onerror = t.unreached_func('deleteDatabase should succeed'); const open = indexedDB.open(dbname, 1); open.onsuccess = t.unreached_func('open should fail'); + let tx; + open.addEventListener('upgradeneeded', () => { + tx = open.transaction; + }); func(t, open); + open.addEventListener('error', t.step_func_done(() => { + assert_equals(tx.error.name, 'AbortError'); + })); }, description); } fire_upgradeneeded_event_test((t, open) => { - let tx; open.onupgradeneeded = () => { - tx = open.transaction; throw Error(); }; - open.onerror = t.step_func_done(() => { - assert_equals(tx.error.name, 'AbortError'); - }); }, 'Exception in upgradeneeded handler'); fire_upgradeneeded_event_test((t, open) => { - let tx; open.addEventListener('upgradeneeded', () => { - tx = open.transaction; throw Error(); }); - open.onerror = t.step_func_done(() => { - assert_equals(tx.error.name, 'AbortError'); - }); }, 'Exception in upgradeneeded listener'); fire_upgradeneeded_event_test((t, open) => { - let tx; + open.addEventListener('upgradeneeded', { + get handleEvent() { + throw new Error(); + }, + }); +}, 'Exception in upgradeneeded "handleEvent" lookup'); + +fire_upgradeneeded_event_test((t, open) => { + open.addEventListener('upgradeneeded', { + get handleEvent() { + return 10; + }, + }); +}, 'Exception in upgradeneeded due to non-callable "handleEvent"'); + +fire_upgradeneeded_event_test((t, open) => { open.addEventListener('upgradeneeded', () => { // No-op. }); open.addEventListener('upgradeneeded', () => { - tx = open.transaction; throw Error(); }); - open.onerror = t.step_func_done(() => { - assert_equals(tx.error.name, 'AbortError'); - }); }, 'Exception in second upgradeneeded listener'); fire_upgradeneeded_event_test((t, open) => { - let tx; let second_listener_called = false; open.addEventListener('upgradeneeded', () => { open.result.createObjectStore('s'); @@ -64,14 +71,12 @@ fire_upgradeneeded_event_test((t, open) => { }); open.addEventListener('upgradeneeded', t.step_func(() => { second_listener_called = true; - tx = open.transaction; - assert_true(is_transaction_active(tx, 's'), + assert_true(is_transaction_active(open.transaction, 's'), 'Transaction should be active until dispatch completes'); })); - open.onerror = t.step_func_done(() => { + open.addEventListener('error', t.step_func(() => { assert_true(second_listener_called); - assert_equals(tx.error.name, 'AbortError'); - }); + })); }, 'Exception in first upgradeneeded listener, tx active in second'); From b5614c20c1e2bf3a9ddfb71a6478d947ddebc3d0 Mon Sep 17 00:00:00 2001 From: Blink WPT Bot Date: Wed, 25 Sep 2019 16:55:58 +0000 Subject: [PATCH 20/75] Bug 1581944 [wpt PR 19124] - cleanup WPT css-transitions timing-function parsing tests, a=testonly Automatic update from web-platform-tests cleanup WPT css-transitions timing-function parsing tests Move all such tests into parsing. Eliminate duplicate tests and manual versions of automated tests. Change-Id: I0ef507a1832c9ce113ed1a855653af7fd22bb0b0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1809508 Commit-Queue: George Steel Auto-Submit: George Steel Reviewed-by: Stephen McGruer Cr-Commit-Position: refs/heads/master@{#699042} -- wpt-commits: 31bb563a5db023ebb20168f3a446295e1110b9fd wpt-pr: 19124 --- .../transition-timing-function-computed.html | 5 +- .../transition-timing-function-invalid.html | 11 +++ .../transition-timing-function-valid.html | 3 + .../transition-timing-function-001.html | 94 ------------------- .../transition-timing-function-007.html | 40 -------- .../transition-timing-function-008.html | 40 -------- .../transition-timing-function-009.html | 40 -------- .../transition-timing-function-011.html | 41 -------- .../transition-timing-function-012.html | 41 -------- .../transition-timing-function-013.html | 41 -------- 10 files changed, 18 insertions(+), 338 deletions(-) delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-001.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-007.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-008.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-009.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-011.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-012.html delete mode 100644 testing/web-platform/tests/css/css-transitions/transition-timing-function-013.html diff --git a/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-computed.html b/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-computed.html index 9834dfdbf0dd..fa03b2295b9c 100644 --- a/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-computed.html +++ b/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-computed.html @@ -13,6 +13,8 @@
diff --git a/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-valid.html b/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-valid.html index 2e2c1827bfbe..5402fdac195b 100644 --- a/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-valid.html +++ b/testing/web-platform/tests/css/css-transitions/parsing/transition-timing-function-valid.html @@ -22,6 +22,9 @@ test_valid_value("transition-timing-function", "cubic-bezier(0.1, 0.2, 0.8, 0.9) test_valid_value("transition-timing-function", "cubic-bezier(0, -2, 1, 3)"); test_valid_value("transition-timing-function", "cubic-bezier(0, 0.7, 1, 1.3)"); +test_valid_value("transition-timing-function", "step-start", "steps(1, start)"); +test_valid_value("transition-timing-function", "step-end", "steps(1)"); +test_valid_value("transition-timing-function", "steps(4)"); test_valid_value("transition-timing-function", "steps(4, start)"); test_valid_value("transition-timing-function", "steps(2, end)", "steps(2)"); test_valid_value("transition-timing-function", "steps(2, jump-start)"); diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-001.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-001.html deleted file mode 100644 index 4c9598f3919b..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-001.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - CSS Transitions Test: Parsing transition-timing-function - - - - - - - - - - - - - -
- -
-
-
- - - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-007.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-007.html deleted file mode 100644 index 72ffbf6a1302..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-007.html +++ /dev/null @@ -1,40 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - 'step-end' equivalent to 'steps(1, end)' - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-008.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-008.html deleted file mode 100644 index 2e20f7ee5f2a..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-008.html +++ /dev/null @@ -1,40 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - 'step-start' equivalent to 'steps(1, start)' - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-009.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-009.html deleted file mode 100644 index a3e2f1a6bd22..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-009.html +++ /dev/null @@ -1,40 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - ease(initial value) - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-011.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-011.html deleted file mode 100644 index 5d0f5a25b25a..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-011.html +++ /dev/null @@ -1,41 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - steps(the second parameter default 'end') - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-012.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-012.html deleted file mode 100644 index f3bc812217e4..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-012.html +++ /dev/null @@ -1,41 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - steps(-2) - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - diff --git a/testing/web-platform/tests/css/css-transitions/transition-timing-function-013.html b/testing/web-platform/tests/css/css-transitions/transition-timing-function-013.html deleted file mode 100644 index 5d89c45e0245..000000000000 --- a/testing/web-platform/tests/css/css-transitions/transition-timing-function-013.html +++ /dev/null @@ -1,41 +0,0 @@ - - -CSS Transitions Test: transition-timing-function - steps(0) - - - - - - - -

Click the 'Start' button. Test passes if the width growth of blue square is equivalent to the yellow square.

-
-
- - - From 1b8a98a01917d792e4190ef74c3f2d8379c7dbe9 Mon Sep 17 00:00:00 2001 From: Xiaocheng Hu Date: Wed, 25 Sep 2019 16:56:03 +0000 Subject: [PATCH 21/75] Bug 1583354 [wpt PR 19232] - Implement CSS clamp(), a=testonly Automatic update from web-platform-tests Implement CSS clamp() This patch implements CSS clamp() as a combination of min() and max() according to how it's defined: https://www.w3.org/TR/css-values-4/#calc-notation Note: clamp() in 'sizes' attribute uses a different independent code path, which will be covered by a separate CL. Bug: 825895 Change-Id: Ifd3cdaf1f3e31e10594d95158c2c730f34689924 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1815850 Reviewed-by: Emil A Eklund Reviewed-by: Rune Lillesveen Commit-Queue: Xiaocheng Hu Cr-Commit-Position: refs/heads/master@{#699239} -- wpt-commits: 74b1ccb82ef5d0ddf72f9fbbf66c07ae6555ab18 wpt-pr: 19232 --- .../css/css-values/clamp-length-computed.html | 30 +++++++++++++++++++ .../css/css-values/clamp-length-invalid.html | 23 ++++++++++++++ .../css-values/clamp-length-serialize.html | 15 ++++++++++ 3 files changed, 68 insertions(+) create mode 100644 testing/web-platform/tests/css/css-values/clamp-length-computed.html create mode 100644 testing/web-platform/tests/css/css-values/clamp-length-invalid.html create mode 100644 testing/web-platform/tests/css/css-values/clamp-length-serialize.html diff --git a/testing/web-platform/tests/css/css-values/clamp-length-computed.html b/testing/web-platform/tests/css/css-values/clamp-length-computed.html new file mode 100644 index 000000000000..67dc19a99f4d --- /dev/null +++ b/testing/web-platform/tests/css/css-values/clamp-length-computed.html @@ -0,0 +1,30 @@ + + + + + + +
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-values/clamp-length-invalid.html b/testing/web-platform/tests/css/css-values/clamp-length-invalid.html new file mode 100644 index 000000000000..68c298b7ffc4 --- /dev/null +++ b/testing/web-platform/tests/css/css-values/clamp-length-invalid.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/testing/web-platform/tests/css/css-values/clamp-length-serialize.html b/testing/web-platform/tests/css/css-values/clamp-length-serialize.html new file mode 100644 index 000000000000..4719e4c02549 --- /dev/null +++ b/testing/web-platform/tests/css/css-values/clamp-length-serialize.html @@ -0,0 +1,15 @@ + + + + + + + From c5fc6b1e082dd23cb41d8c648cbeffc609cb6023 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:29:10 +0000 Subject: [PATCH 22/75] Bug 1583354 [wpt PR 19232] - Update wpt metadata, a=testonly wpt-pr: 19232 wpt-type: metadata --- .../css/css-values/clamp-length-computed.html.ini | 13 +++++++++++++ .../css/css-values/clamp-length-serialize.html.ini | 7 +++++++ 2 files changed, 20 insertions(+) create mode 100644 testing/web-platform/meta/css/css-values/clamp-length-computed.html.ini create mode 100644 testing/web-platform/meta/css/css-values/clamp-length-serialize.html.ini diff --git a/testing/web-platform/meta/css/css-values/clamp-length-computed.html.ini b/testing/web-platform/meta/css/css-values/clamp-length-computed.html.ini new file mode 100644 index 000000000000..1e17130fab55 --- /dev/null +++ b/testing/web-platform/meta/css/css-values/clamp-length-computed.html.ini @@ -0,0 +1,13 @@ +[clamp-length-computed.html] + [Property letter-spacing value 'clamp(10px, 5px, 30px)' computes to '10px'] + expected: FAIL + + [Property letter-spacing value 'clamp(10px, 35px, 30px)' computes to '30px'] + expected: FAIL + + [Property letter-spacing value 'clamp(30px, 100px, 20px)' computes to '30px'] + expected: FAIL + + [Property letter-spacing value 'clamp(10px, 20px, 30px)' computes to '20px'] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-values/clamp-length-serialize.html.ini b/testing/web-platform/meta/css/css-values/clamp-length-serialize.html.ini new file mode 100644 index 000000000000..f39169db7b6f --- /dev/null +++ b/testing/web-platform/meta/css/css-values/clamp-length-serialize.html.ini @@ -0,0 +1,7 @@ +[clamp-length-serialize.html] + [e.style['letter-spacing'\] = "clamp(1px, 2px, clamp(2px, 3px, 4px))" should set the property value] + expected: FAIL + + [e.style['letter-spacing'\] = "clamp(1px, 2px, 3px)" should set the property value] + expected: FAIL + From 90d75d1cf11c1f34997ce3d85475aa6aac49a3e3 Mon Sep 17 00:00:00 2001 From: Rakina Zata Amni Date: Wed, 25 Sep 2019 16:56:11 +0000 Subject: [PATCH 23/75] Bug 1561290 [wpt PR 17493] - CSS: :focus selector effects on shadow hosts, a=testonly Automatic update from web-platform-tests CSS: :focus selector effects on shadow hosts Follows https://github.com/whatwg/html/pull/4731. -- wpt-commits: 0693b81665fcc5a7258535e4403b748a810730ae wpt-pr: 17493 --- .../focus/focus-selector-delegatesFocus.html | 72 +++++++++++++++++++ .../focus/resources/shadow-utils.js | 5 +- 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 testing/web-platform/tests/shadow-dom/focus/focus-selector-delegatesFocus.html diff --git a/testing/web-platform/tests/shadow-dom/focus/focus-selector-delegatesFocus.html b/testing/web-platform/tests/shadow-dom/focus/focus-selector-delegatesFocus.html new file mode 100644 index 000000000000..386045258e04 --- /dev/null +++ b/testing/web-platform/tests/shadow-dom/focus/focus-selector-delegatesFocus.html @@ -0,0 +1,72 @@ + + + + + CSS Test (Selectors): :focus behavior with shadow hosts & delegatesFocus + + + + + + + + + + + + diff --git a/testing/web-platform/tests/shadow-dom/focus/resources/shadow-utils.js b/testing/web-platform/tests/shadow-dom/focus/resources/shadow-utils.js index 6ea372afdf18..8033ce0169f4 100644 --- a/testing/web-platform/tests/shadow-dom/focus/resources/shadow-utils.js +++ b/testing/web-platform/tests/shadow-dom/focus/resources/shadow-utils.js @@ -60,8 +60,9 @@ function removeTabIndex(elements) { } } -function resetFocus() { - document.body.focus(); +function resetFocus(root = document) { + if (root.activeElement) + root.activeElement.blur(); } function navigateFocusForward() { From aaf03ee8a0b5fc1bd936d97e10cb2c8b2d795ca6 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:35:54 +0000 Subject: [PATCH 24/75] Bug 1561290 [wpt PR 17493] - Update wpt metadata, a=testonly wpt-pr: 17493 wpt-type: metadata --- .../focus-selector-delegatesFocus.html.ini | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 testing/web-platform/meta/shadow-dom/focus/focus-selector-delegatesFocus.html.ini diff --git a/testing/web-platform/meta/shadow-dom/focus/focus-selector-delegatesFocus.html.ini b/testing/web-platform/meta/shadow-dom/focus/focus-selector-delegatesFocus.html.ini new file mode 100644 index 000000000000..f014e818c4d3 --- /dev/null +++ b/testing/web-platform/meta/shadow-dom/focus/focus-selector-delegatesFocus.html.ini @@ -0,0 +1,25 @@ +[focus-selector-delegatesFocus.html] + [:focus applies to host with delegatesFocus=false when an element in a nested shadow tree with delegatesFocus=false is focused] + expected: FAIL + + [:focus applies to host with delegatesFocus=true when slotted element has focus] + expected: FAIL + + [:focus applies to host with delegatesFocus=true when an element in a nested shadow tree with delegatesFocus=true is focused] + expected: FAIL + + [:focus applies to host with delegatesFocus=true when an element in a nested shadow tree with delegatesFocus=false is focused] + expected: FAIL + + [:focus applies to host with delegatesFocus=false when slotted element has focus] + expected: FAIL + + [:focus applies to host with delegatesFocus=false when an element in a nested shadow tree with delegatesFocus=true is focused] + expected: FAIL + + [:focus applies to host with delegatesFocus=true when the shadow root's descendant has focus] + expected: FAIL + + [:focus applies to host with delegatesFocus=false when the shadow root's descendant has focus] + expected: FAIL + From 7ecc343988f0c40ed9d761a851e4f78e44d138a7 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Wed, 25 Sep 2019 16:56:19 +0000 Subject: [PATCH 25/75] Bug 1581392 [wpt PR 19064] - Run more of some webaudio tests inside the test harness., a=testonly Automatic update from web-platform-tests Run more of some webaudio tests inside the test harness. (#19064) -- wpt-commits: c4e4d54c34aac837f462b9aed6f50d2358e4243c wpt-pr: 19064 --- ...ementAudioSourceToScriptProcessorTest.html | 164 ++++++++-------- .../mediastreamaudiosourcenode-routing.html | 182 +++++++++--------- .../curve-tests.html | 52 +++-- 3 files changed, 200 insertions(+), 198 deletions(-) diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html b/testing/web-platform/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html index 3e364eb7b359..b1f18d397d4f 100644 --- a/testing/web-platform/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html @@ -22,104 +22,106 @@ Somewhat similiar to a test from Mozilla:
diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html b/testing/web-platform/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html index 2e04ab6a3f24..816eba0b29ae 100644 --- a/testing/web-platform/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html @@ -21,105 +21,107 @@ const t = async_test( "MediaStreamAudioSourceNode captures the right track." ); - const ac = new AudioContext(); - // Test that the right track is captured. Set up a MediaStream that has two - // tracks, one with a tone at 100Hz and one with a tone at 1000Hz. - const dest0 = ac.createMediaStreamDestination(); - const dest1 = ac.createMediaStreamDestination(); - const osc0 = ac.createOscillator(); - const osc1 = ac.createOscillator(); - osc0.frequency.value = 100; - osc1.frequency.value = 1000; - osc0.connect(dest0); - osc1.connect(dest1); - osc0.start(0); - osc1.start(0); - const track0 = dest0.stream.getAudioTracks()[0]; - const track0id = track0.id; - const track1 = dest1.stream.getAudioTracks()[0]; - const track1id = track1.id; + t.step(function() { + const ac = new AudioContext(); + // Test that the right track is captured. Set up a MediaStream that has two + // tracks, one with a tone at 100Hz and one with a tone at 1000Hz. + const dest0 = ac.createMediaStreamDestination(); + const dest1 = ac.createMediaStreamDestination(); + const osc0 = ac.createOscillator(); + const osc1 = ac.createOscillator(); + osc0.frequency.value = 100; + osc1.frequency.value = 1000; + osc0.connect(dest0); + osc1.connect(dest1); + osc0.start(0); + osc1.start(0); + const track0 = dest0.stream.getAudioTracks()[0]; + const track0id = track0.id; + const track1 = dest1.stream.getAudioTracks()[0]; + const track1id = track1.id; - let ids = [track0id, track1id]; - ids.sort(); - let targetFrequency; - let otherFrequency; - if (ids[0] == track0id) { - targetFrequency = 100; - otherFrequency = 1000; - } else { - targetFrequency = 1000; - otherFrequency = 100; - } + let ids = [track0id, track1id]; + ids.sort(); + let targetFrequency; + let otherFrequency; + if (ids[0] == track0id) { + targetFrequency = 100; + otherFrequency = 1000; + } else { + targetFrequency = 1000; + otherFrequency = 100; + } - let twoTrackMediaStream = new MediaStream(); - twoTrackMediaStream.addTrack(track0); - twoTrackMediaStream.addTrack(track1); + let twoTrackMediaStream = new MediaStream(); + twoTrackMediaStream.addTrack(track0); + twoTrackMediaStream.addTrack(track1); - const twoTrackSource = ac.createMediaStreamSource(twoTrackMediaStream); - const analyser = ac.createAnalyser(); - // Don't do smoothing so that the frequency data changes quickly - analyser.smoothingTimeConstant = 0; + const twoTrackSource = ac.createMediaStreamSource(twoTrackMediaStream); + const analyser = ac.createAnalyser(); + // Don't do smoothing so that the frequency data changes quickly + analyser.smoothingTimeConstant = 0; - twoTrackSource.connect(analyser); + twoTrackSource.connect(analyser); - const indexToCheckForHighEnergy = binIndexForFrequency( - targetFrequency, - analyser - ); - const indexToCheckForLowEnergy = binIndexForFrequency( - otherFrequency, - analyser - ); - let frequencyData = new Float32Array(1024); - let checkCount = 0; - let numberOfRemovals = 0; - let stopped = false; - function analyse() { - analyser.getFloatFrequencyData(frequencyData); - // there should be high energy in the right bin, higher than 40dbfs because - // it's supposed to be a sine wave at 0dbfs - if (frequencyData[indexToCheckForHighEnergy] > -40 && !stopped) { - assert_true(true, "Correct track routed to the AudioContext."); - checkCount++; - } - if (stopped && frequencyData[indexToCheckForHighEnergy] < -40) { - assert_true( - true, - `After stopping the track, low energy is found in the + const indexToCheckForHighEnergy = binIndexForFrequency( + targetFrequency, + analyser + ); + const indexToCheckForLowEnergy = binIndexForFrequency( + otherFrequency, + analyser + ); + let frequencyData = new Float32Array(1024); + let checkCount = 0; + let numberOfRemovals = 0; + let stopped = false; + function analyse() { + analyser.getFloatFrequencyData(frequencyData); + // there should be high energy in the right bin, higher than 40dbfs because + // it's supposed to be a sine wave at 0dbfs + if (frequencyData[indexToCheckForHighEnergy] > -40 && !stopped) { + assert_true(true, "Correct track routed to the AudioContext."); + checkCount++; + } + if (stopped && frequencyData[indexToCheckForHighEnergy] < -40) { + assert_true( + true, + `After stopping the track, low energy is found in the same bin` - ); - checkCount++; - } - if (checkCount > 5 && checkCount < 20) { - twoTrackMediaStream.getAudioTracks().forEach(track => { - if (track.id == ids[0]) { - numberOfRemovals++; - window.removedTrack = track; - twoTrackMediaStream.removeTrack(track); - } - }); - assert_true( - numberOfRemovals == 1, - `The mediastreamtrack can only be + ); + checkCount++; + } + if (checkCount > 5 && checkCount < 20) { + twoTrackMediaStream.getAudioTracks().forEach(track => { + if (track.id == ids[0]) { + numberOfRemovals++; + window.removedTrack = track; + twoTrackMediaStream.removeTrack(track); + } + }); + assert_true( + numberOfRemovals == 1, + `The mediastreamtrack can only be removed once from the mediastream` - ); - } else if (checkCount >= 20 && checkCount < 30) { - window.removedTrack.stop(); - stopped = true; - } else if (checkCount >= 30) { - assert_true( - numberOfRemovals == 1, - `After removing the track from the + ); + } else if (checkCount >= 20 && checkCount < 30) { + window.removedTrack.stop(); + stopped = true; + } else if (checkCount >= 30) { + assert_true( + numberOfRemovals == 1, + `After removing the track from the mediastream, it's still routed to the graph.` - ); - // After some time, consider that it worked. - t.done(); - return; - } + ); + // After some time, consider that it worked. + t.done(); + return; + } - t.step_timeout(analyse, 100); - } - t.step_timeout(analyse, 100); + t.step_timeout(analyse, 100); + } + t.step_timeout(analyse, 100); + }); diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html index a2e40777d428..81e64dc12e9c 100644 --- a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html @@ -134,35 +134,35 @@ */ function executeTest(curveData, inputData, expectedData, testName) { var stTest=async_test("WaveShaperNode - "+testName); + stTest.step(function() { - // Create offline audio context. - var ac=new OfflineAudioContext(1, inputData.length, sampleRate); + // Create offline audio context. + var ac=new OfflineAudioContext(1, inputData.length, sampleRate); - // Create the WaveShaper and its curve. - var waveShaper=ac.createWaveShaper(); - if(curveData!=null) { - var curve=new Float32Array(curveData.length); - for(var i=0;i From 4a0f71cb04a6dfcfa86bc8b4fb64c691a85d1bd3 Mon Sep 17 00:00:00 2001 From: Miyoung Shin Date: Wed, 25 Sep 2019 16:56:24 +0000 Subject: [PATCH 26/75] Bug 1582704 [wpt PR 19184] - Convert ContactsManager client to use BrowserInterfaceBroker, a=testonly Automatic update from web-platform-tests Convert ContactsManager client to use BrowserInterfaceBroker This change converts ContactsManager mojom interface client in blink to use BrowserInterfaceBroker. Bug: 936482 Change-Id: I9fbce895d342faa2de8d9be6fa66d8198820f5b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1815925 Reviewed-by: Oksana Zhuravlova Reviewed-by: Kent Tamura Reviewed-by: Kinuko Yasuda Commit-Queue: Miyoung Shin Cr-Commit-Position: refs/heads/master@{#699281} -- wpt-commits: 8488b4e1c0078170f982356116caba9bb17d8efc wpt-pr: 19184 --- .../tests/resources/chromium/contacts_manager_mock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/resources/chromium/contacts_manager_mock.js b/testing/web-platform/tests/resources/chromium/contacts_manager_mock.js index 618968ec18da..ae4c33b073df 100644 --- a/testing/web-platform/tests/resources/chromium/contacts_manager_mock.js +++ b/testing/web-platform/tests/resources/chromium/contacts_manager_mock.js @@ -10,7 +10,7 @@ const WebContactsTest = (() => { this.bindingSet_ = new mojo.BindingSet(blink.mojom.ContactsManager); this.interceptor_ = new MojoInterfaceInterceptor( - blink.mojom.ContactsManager.name); + blink.mojom.ContactsManager.name, "context", true); this.interceptor_.oninterfacerequest = e => this.bindingSet_.addBinding(this, e.handle); this.interceptor_.start(); From 1f60339209cd8b4c804b94f28d96b09591e8b8a4 Mon Sep 17 00:00:00 2001 From: Javier Fernandez Date: Wed, 25 Sep 2019 16:56:29 +0000 Subject: [PATCH 27/75] Bug 1580357 [wpt PR 18979] - Reland "[css-grid] Clear the override width for computing percent margins", a=testonly Automatic update from web-platform-tests Reland "[css-grid] Clear the override width for computing percent margins" This is a reland of a445d168b9f54cc8902f8bac8da3bc490e441059.. The original patch has been reverted due to a performance regression, described in bug #1002700. Additionally, this patch solves some cases not covered by the original patch, specifically when using 'non-auto' values for the grid item's min-width property. It also provides additional regressions tests. Finally, the performance regression is solved by checking out whether the grid item needs layout before considering to clear the Override size. Original change's description: > [css-grid] Clear the override width for computing percent margins > > When calculating the min-content contribution of a grid item of an auto > sized grid track we must consider the grid item's margin. When the grid > item's area is indefinite, a percent margin is resolved to zero. > However, when performing a relayout, the percent margin may be solved > against the previously computed grid area, since the grid item has > already an OverrideContainingBlockLogicalWidth value. > > In order to re-compute the percent margin properly, we need to clear > the previously override value. It's important be careful of not > clearing the override value set during intrinsic size, since we need > it for the actual layout phase. Hence, we only reset the 'override' > value when we are executing a definite strategy. > > Bug: 834643 > Change-Id: Ib936b26bee1da76afbdc886eb775746e13d40988 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1782840 > Commit-Queue: Javier Fernandez > Reviewed-by: Christian Biesinger > Cr-Commit-Position: refs/heads/master@{#694849} Bug: 834643, 942811 Change-Id: Id6fdf52fab471ebefecb2c087c086faf0e3f5dec Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796323 Commit-Queue: Javier Fernandez Reviewed-by: Manuel Rego Cr-Commit-Position: refs/heads/master@{#699290} -- wpt-commits: 2462e552b460f466c63c009841003fb2cb02a221 wpt-pr: 18979 --- ...rid-item-dynamic-min-contribution-001.html | 39 +++++++++++++++++ .../grid-items-percentage-margins-003.html | 41 ++++++++++++++++++ .../grid-items-percentage-margins-004.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-005.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-006.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-007.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-008.html | 43 +++++++++++++++++++ .../grid-items-percentage-margins-009.html | 43 +++++++++++++++++++ .../grid-items-percentage-margins-010.html | 43 +++++++++++++++++++ .../grid-items-percentage-margins-011.html | 41 ++++++++++++++++++ .../grid-items-percentage-margins-012.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-013.html | 42 ++++++++++++++++++ .../grid-items-percentage-margins-014.html | 43 +++++++++++++++++++ .../grid-items-percentage-paddings-003.html | 41 ++++++++++++++++++ .../grid-items-percentage-paddings-004.html | 42 ++++++++++++++++++ .../grid-items-percentage-paddings-005.html | 41 ++++++++++++++++++ .../grid-items-percentage-paddings-006.html | 41 ++++++++++++++++++ .../grid-items-percentage-paddings-007.html | 42 ++++++++++++++++++ .../grid-items-percentage-paddings-008.html | 43 +++++++++++++++++++ .../grid-items-percentage-paddings-009.html | 43 +++++++++++++++++++ .../grid-items-percentage-paddings-010.html | 42 ++++++++++++++++++ .../grid-items-percentage-paddings-011.html | 41 ++++++++++++++++++ .../grid-items-percentage-paddings-012.html | 42 ++++++++++++++++++ .../grid-items-percentage-paddings-013.html | 41 ++++++++++++++++++ .../grid-items-percentage-paddings-014.html | 41 ++++++++++++++++++ .../tests/interfaces/payment-handler.idl | 6 ++- 26 files changed, 1049 insertions(+), 2 deletions(-) create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html new file mode 100644 index 000000000000..c4ced6b2a12e --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html @@ -0,0 +1,39 @@ + + +CSS Grid Layout Test: dynamic minimum contribution + + + + +
+
+
+
+ + + diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html new file mode 100644 index 000000000000..03d5d7f2c499 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html new file mode 100644 index 000000000000..52e6f3bf1a68 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html new file mode 100644 index 000000000000..9cff92d1aa0c --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html new file mode 100644 index 000000000000..04d30e3edfc9 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html new file mode 100644 index 000000000000..2906fe060870 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html new file mode 100644 index 000000000000..7bd2e0fc5f4f --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html new file mode 100644 index 000000000000..70a6c231dc91 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html new file mode 100644 index 000000000000..34352f60020e --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html new file mode 100644 index 000000000000..36bd208df007 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html new file mode 100644 index 000000000000..9cdc15337a93 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html new file mode 100644 index 000000000000..581415b828e6 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html new file mode 100644 index 000000000000..5766e60339a0 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage margins + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html new file mode 100644 index 000000000000..d85a6c1abcfa --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html new file mode 100644 index 000000000000..26302daf2d60 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html new file mode 100644 index 000000000000..151b604f9bb7 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html new file mode 100644 index 000000000000..bcbc7ced73a7 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html new file mode 100644 index 000000000000..d4cf80c18df0 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html new file mode 100644 index 000000000000..38f766b5cfff --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html new file mode 100644 index 000000000000..eb1d1f47f28c --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html @@ -0,0 +1,43 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html new file mode 100644 index 000000000000..ecd430c68d41 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html new file mode 100644 index 000000000000..e394ced4e6e5 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
X
+
X
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html new file mode 100644 index 000000000000..07b2d27b5817 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html @@ -0,0 +1,42 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html new file mode 100644 index 000000000000..9b6c2bfe0ad2 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html new file mode 100644 index 000000000000..9e67960913a2 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html @@ -0,0 +1,41 @@ + + +CSS Grid Layout Test: Grid items with percentage paddings + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+ diff --git a/testing/web-platform/tests/interfaces/payment-handler.idl b/testing/web-platform/tests/interfaces/payment-handler.idl index b5d79decb065..c87c855d4396 100644 --- a/testing/web-platform/tests/interfaces/payment-handler.idl +++ b/testing/web-platform/tests/interfaces/payment-handler.idl @@ -40,8 +40,9 @@ partial interface ServiceWorkerGlobalScope { attribute EventHandler oncanmakepayment; }; -[Constructor(DOMString type, CanMakePaymentEventInit eventInitDict), Exposed=ServiceWorker] +[Exposed=ServiceWorker] interface CanMakePaymentEvent : ExtendableEvent { + constructor(DOMString type, CanMakePaymentEventInit eventInitDict); readonly attribute USVString topOrigin; readonly attribute USVString paymentRequestOrigin; readonly attribute FrozenArray methodData; @@ -65,8 +66,9 @@ dictionary PaymentMethodChangeResponse { object paymentMethodErrors; }; -[Constructor(DOMString type, PaymentRequestEventInit eventInitDict), Exposed=ServiceWorker] +[Exposed=ServiceWorker] interface PaymentRequestEvent : ExtendableEvent { + constructor(DOMString type, PaymentRequestEventInit eventInitDict); readonly attribute USVString topOrigin; readonly attribute USVString paymentRequestOrigin; readonly attribute DOMString paymentRequestId; From 3a608f98770e548132f0f3615258128b8002bfaf Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:56:36 +0000 Subject: [PATCH 28/75] Bug 1583500 [wpt PR 19250] - Update interfaces/generic-sensor.idl, a=testonly Automatic update from web-platform-tests Update interfaces/generic-sensor.idl (#19250) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/generic-sensor.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 9765c1f7e97616fe9d19990194508c1cf51a47bf wpt-pr: 19250 --- testing/web-platform/tests/interfaces/generic-sensor.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/web-platform/tests/interfaces/generic-sensor.idl b/testing/web-platform/tests/interfaces/generic-sensor.idl index 2921c50a65e8..f3eeb9bf968f 100644 --- a/testing/web-platform/tests/interfaces/generic-sensor.idl +++ b/testing/web-platform/tests/interfaces/generic-sensor.idl @@ -19,9 +19,9 @@ dictionary SensorOptions { double frequency; }; -[Constructor(DOMString type, SensorErrorEventInit errorEventInitDict), - SecureContext, Exposed=(DedicatedWorker, Window)] +[SecureContext, Exposed=(DedicatedWorker, Window)] interface SensorErrorEvent : Event { + constructor(DOMString type, SensorErrorEventInit errorEventInitDict); readonly attribute DOMException error; }; From 1635b84f5ed1ed662a20ea42a163839b5bd2b90d Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:56:41 +0000 Subject: [PATCH 29/75] Bug 1583499 [wpt PR 19249] - Update interfaces/css-masking.idl, a=testonly Automatic update from web-platform-tests Update interfaces/css-masking.idl (#19249) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/css-masking.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 9bff217b87a20a95f00fa12fc0eecc0785537895 wpt-pr: 19249 --- testing/web-platform/tests/interfaces/css-masking.idl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testing/web-platform/tests/interfaces/css-masking.idl b/testing/web-platform/tests/interfaces/css-masking.idl index 80f908d42f3e..6db59eddbe08 100644 --- a/testing/web-platform/tests/interfaces/css-masking.idl +++ b/testing/web-platform/tests/interfaces/css-masking.idl @@ -3,11 +3,13 @@ // (https://github.com/tidoust/reffy-reports) // Source: CSS Masking Module Level 1 (https://drafts.fxtf.org/css-masking-1/) +[Exposed=Window] interface SVGClipPathElement : SVGElement { readonly attribute SVGAnimatedEnumeration clipPathUnits; readonly attribute SVGAnimatedTransformList transform; }; +[Exposed=Window] interface SVGMaskElement : SVGElement { readonly attribute SVGAnimatedEnumeration maskUnits; readonly attribute SVGAnimatedEnumeration maskContentUnits; From cace2e6c7ef909ac09a96e76b093bb314ca75359 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:56:46 +0000 Subject: [PATCH 30/75] Bug 1583505 [wpt PR 19253] - Update interfaces/orientation-sensor.idl, a=testonly Automatic update from web-platform-tests Update interfaces/orientation-sensor.idl (#19253) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/orientation-sensor.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 6907c222afcebdc452f2660c91f51d71a7a35723 wpt-pr: 19253 --- .../web-platform/tests/interfaces/orientation-sensor.idl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/testing/web-platform/tests/interfaces/orientation-sensor.idl b/testing/web-platform/tests/interfaces/orientation-sensor.idl index 9ee099881b0a..2ea3d38240e5 100644 --- a/testing/web-platform/tests/interfaces/orientation-sensor.idl +++ b/testing/web-platform/tests/interfaces/orientation-sensor.idl @@ -17,12 +17,14 @@ dictionary OrientationSensorOptions : SensorOptions { OrientationSensorLocalCoordinateSystem referenceFrame = "device"; }; -[Constructor(optional OrientationSensorOptions sensorOptions = {}), SecureContext, Exposed=Window] +[SecureContext, Exposed=Window] interface AbsoluteOrientationSensor : OrientationSensor { + constructor(optional OrientationSensorOptions sensorOptions = {}); }; -[Constructor(optional OrientationSensorOptions sensorOptions = {}), SecureContext, Exposed=Window] +[SecureContext, Exposed=Window] interface RelativeOrientationSensor : OrientationSensor { + constructor(optional OrientationSensorOptions sensorOptions = {}); }; dictionary AbsoluteOrientationReadingValues { From 96f628729012a18bbbd3dc0476fceccd45acafdb Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 25 Sep 2019 16:56:54 +0000 Subject: [PATCH 31/75] Bug 1583443 [wpt PR 19242] - Use any.js for SharedWorker interface object tests., a=testonly Automatic update from web-platform-tests Use any.js for SharedWorker interface object tests. -- wpt-commits: ecbbf851e05f5e9e113da9d12247116102ff3e6e wpt-pr: 19242 --- .../semantics/interface-objects/003.any.js | 83 +++++++++++++++++++ .../semantics/interface-objects/003.html | 19 ----- .../semantics/interface-objects/003.js | 82 ------------------ .../semantics/interface-objects/004.any.js | 46 ++++++++++ .../semantics/interface-objects/004.html | 19 ----- .../semantics/interface-objects/004.js | 45 ---------- 6 files changed, 129 insertions(+), 165 deletions(-) create mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/003.any.js delete mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/003.html delete mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/003.js create mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/004.any.js delete mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/004.html delete mode 100644 testing/web-platform/tests/workers/semantics/interface-objects/004.js diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/003.any.js b/testing/web-platform/tests/workers/semantics/interface-objects/003.any.js new file mode 100644 index 000000000000..1942a4658dfb --- /dev/null +++ b/testing/web-platform/tests/workers/semantics/interface-objects/003.any.js @@ -0,0 +1,83 @@ +// META: global=!default,sharedworker + +var expected = [ + // https://html.spec.whatwg.org/ + "ApplicationCache", + "WorkerGlobalScope", + "SharedWorkerGlobalScope", + "Worker", + "SharedWorker", + "MessagePort", + "MessageEvent", + "WorkerNavigator", + "MessageChannel", + "WorkerLocation", + "ImageData", + "ImageBitmap", + "CanvasGradient", + "CanvasPattern", + "CanvasPath", + "Path2D", + "PromiseRejectionEvent", + "EventSource", + "WebSocket", + "CloseEvent", + "BroadcastChannel", + // https://tc39.github.io/ecma262/ + "ArrayBuffer", + "Int8Array", + "Uint8Array", + "Uint8ClampedArray", + "Int16Array", + "Uint16Array", + "Int32Array", + "Uint32Array", + "Float32Array", + "Float64Array", + "DataView", + // https://xhr.spec.whatwg.org/ + "XMLHttpRequestEventTarget", + "XMLHttpRequestUpload", + "XMLHttpRequest", + "ProgressEvent", + "FormData", + // https://url.spec.whatwg.org/ + "URL", + "URLSearchParams", + // https://w3c.github.io/FileAPI/ + "File", + "Blob", + "FileList", + "FileReader", + "FileReaderSync", + // https://dom.spec.whatwg.org/ + "EventTarget", + "ErrorEvent", + "Event", + "CustomEvent", + // http://heycam.github.io/webidl/ + "DOMException", + // https://streams.spec.whatwg.org/ + "ReadableStream", + "WritableStream", + "ByteLengthQueuingStrategy", + "CountQueuingStrategy", + // http://w3c.github.io/IndexedDB/ + "IDBRequest", + "IDBOpenDBRequest", + "IDBVersionChangeEvent", + "IDBFactory", + "IDBDatabase", + "IDBObjectStore", + "IDBIndex", + "IDBKeyRange", + "IDBCursor", + "IDBCursorWithValue", + "IDBTransaction", +]; + +for (var i = 0; i < unexpected.length; ++i) { + test(function() { + assert_true(unexpected[i] in self); + }, "The " + unexpected[i] + " interface object should not be exposed"); +} diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/003.html b/testing/web-platform/tests/workers/semantics/interface-objects/003.html deleted file mode 100644 index 99e8b3a0f3dd..000000000000 --- a/testing/web-platform/tests/workers/semantics/interface-objects/003.html +++ /dev/null @@ -1,19 +0,0 @@ - -available interface objects in shared worker - - -
- \ No newline at end of file diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/003.js b/testing/web-platform/tests/workers/semantics/interface-objects/003.js deleted file mode 100644 index a91e7c38759f..000000000000 --- a/testing/web-platform/tests/workers/semantics/interface-objects/003.js +++ /dev/null @@ -1,82 +0,0 @@ -onconnect = function(e) { - var expected = [ - // https://html.spec.whatwg.org/ - "ApplicationCache", - "WorkerGlobalScope", - "SharedWorkerGlobalScope", - "Worker", - "SharedWorker", - "MessagePort", - "MessageEvent", - "WorkerNavigator", - "MessageChannel", - "WorkerLocation", - "ImageData", - "ImageBitmap", - "CanvasGradient", - "CanvasPattern", - "CanvasPath", - "Path2D", - "PromiseRejectionEvent", - "EventSource", - "WebSocket", - "CloseEvent", - "BroadcastChannel", - // https://tc39.github.io/ecma262/ - "ArrayBuffer", - "Int8Array", - "Uint8Array", - "Uint8ClampedArray", - "Int16Array", - "Uint16Array", - "Int32Array", - "Uint32Array", - "Float32Array", - "Float64Array", - "DataView", - // https://xhr.spec.whatwg.org/ - "XMLHttpRequestEventTarget", - "XMLHttpRequestUpload", - "XMLHttpRequest", - "ProgressEvent", - "FormData", - // https://url.spec.whatwg.org/ - "URL", - "URLSearchParams", - // https://w3c.github.io/FileAPI/ - "File", - "Blob", - "FileList", - "FileReader", - "FileReaderSync", - // https://dom.spec.whatwg.org/ - "EventTarget", - "ErrorEvent", - "Event", - "CustomEvent", - // http://heycam.github.io/webidl/ - "DOMException", - // https://streams.spec.whatwg.org/ - "ReadableStream", - "WritableStream", - "ByteLengthQueuingStrategy", - "CountQueuingStrategy", - // http://w3c.github.io/IndexedDB/ - "IDBRequest", - "IDBOpenDBRequest", - "IDBVersionChangeEvent", - "IDBFactory", - "IDBDatabase", - "IDBObjectStore", - "IDBIndex", - "IDBKeyRange", - "IDBCursor", - "IDBCursorWithValue", - "IDBTransaction", - ]; - var result = []; - for (var i = 0; i < expected.length; ++i) { - result.push([expected[i], expected[i] in self]); - } - e.ports[0].postMessage(result); -} \ No newline at end of file diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/004.any.js b/testing/web-platform/tests/workers/semantics/interface-objects/004.any.js new file mode 100644 index 000000000000..358af74ca2c2 --- /dev/null +++ b/testing/web-platform/tests/workers/semantics/interface-objects/004.any.js @@ -0,0 +1,46 @@ +// META: global=!default,sharedworker + +var unexpected = [ + // https://html.spec.whatwg.org/ + "DedicatedWorkerGlobalScope", + "AbstractView", + "AbstractWorker", + "Location", + "Navigator", + "DOMImplementation", + "Audio", + "HTMLCanvasElement", + "Path", + "TextMetrics", + "CanvasProxy", + "CanvasRenderingContext2D", + "DrawingStyle", + "PopStateEvent", + "HashChangeEvent", + "PageTransitionEvent", + // https://streams.spec.whatwg.org/ + "ReadableStreamDefaultReader", + "ReadableStreamBYOBReader", + "ReadableStreamDefaultController", + "ReadableByteStreamController", + "WritableStreamDefaultWriter", + "WritableStreamDefaultController", + // http://w3c.github.io/IndexedDB/ + "IDBEnvironment", + // https://www.w3.org/TR/2010/NOTE-webdatabase-20101118/ + "Database", + // https://w3c.github.io/uievents/ + "UIEvent", + "FocusEvent", + "MouseEvent", + "WheelEvent", + "InputEvent", + "KeyboardEvent", + "CompositionEvent", +]; + +for (var i = 0; i < unexpected.length; ++i) { + test(function() { + assert_false(unexpected[i] in self); + }, "The " + unexpected[i] + " interface object should not be exposed"); +} diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/004.html b/testing/web-platform/tests/workers/semantics/interface-objects/004.html deleted file mode 100644 index b4a09c50e4e5..000000000000 --- a/testing/web-platform/tests/workers/semantics/interface-objects/004.html +++ /dev/null @@ -1,19 +0,0 @@ - -unavailable interface objects in shared worker - - -
- \ No newline at end of file diff --git a/testing/web-platform/tests/workers/semantics/interface-objects/004.js b/testing/web-platform/tests/workers/semantics/interface-objects/004.js deleted file mode 100644 index 00e50d19cae4..000000000000 --- a/testing/web-platform/tests/workers/semantics/interface-objects/004.js +++ /dev/null @@ -1,45 +0,0 @@ -onconnect = function(e) { - var unexpected = [ - // https://html.spec.whatwg.org/ - "DedicatedWorkerGlobalScope", - "AbstractView", - "AbstractWorker", - "Location", - "Navigator", - "DOMImplementation", - "Audio", - "HTMLCanvasElement", - "Path", - "TextMetrics", - "CanvasProxy", - "CanvasRenderingContext2D", - "DrawingStyle", - "PopStateEvent", - "HashChangeEvent", - "PageTransitionEvent", - // https://streams.spec.whatwg.org/ - "ReadableStreamDefaultReader", - "ReadableStreamBYOBReader", - "ReadableStreamDefaultController", - "ReadableByteStreamController", - "WritableStreamDefaultWriter", - "WritableStreamDefaultController", - // http://w3c.github.io/IndexedDB/ - "IDBEnvironment", - // https://www.w3.org/TR/2010/NOTE-webdatabase-20101118/ - "Database", - // https://w3c.github.io/uievents/ - "UIEvent", - "FocusEvent", - "MouseEvent", - "WheelEvent", - "InputEvent", - "KeyboardEvent", - "CompositionEvent", - ]; - var result = []; - for (var i = 0; i < unexpected.length; ++i) { - result.push([unexpected[i], unexpected[i] in self]); - } - e.ports[0].postMessage(result); -} \ No newline at end of file From eebac420b3e7ec217354d780a608b64595282a23 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:43:46 +0000 Subject: [PATCH 32/75] Bug 1583443 [wpt PR 19242] - Update wpt metadata, a=testonly wpt-pr: 19242 wpt-type: metadata --- .../interface-objects/003.any.js.ini | 2 ++ .../semantics/interface-objects/003.html.ini | 25 ------------------- 2 files changed, 2 insertions(+), 25 deletions(-) create mode 100644 testing/web-platform/meta/workers/semantics/interface-objects/003.any.js.ini delete mode 100644 testing/web-platform/meta/workers/semantics/interface-objects/003.html.ini diff --git a/testing/web-platform/meta/workers/semantics/interface-objects/003.any.js.ini b/testing/web-platform/meta/workers/semantics/interface-objects/003.any.js.ini new file mode 100644 index 000000000000..2ccb59e4ade1 --- /dev/null +++ b/testing/web-platform/meta/workers/semantics/interface-objects/003.any.js.ini @@ -0,0 +1,2 @@ +[003.any.sharedworker.html] + expected: TIMEOUT diff --git a/testing/web-platform/meta/workers/semantics/interface-objects/003.html.ini b/testing/web-platform/meta/workers/semantics/interface-objects/003.html.ini deleted file mode 100644 index 3a9233abe24e..000000000000 --- a/testing/web-platform/meta/workers/semantics/interface-objects/003.html.ini +++ /dev/null @@ -1,25 +0,0 @@ -[003.html] - [available interface objects in shared worker] - expected: FAIL - - [The ApplicationCache interface object should be exposed] - expected: FAIL - - [The SharedWorker interface object should be exposed] - expected: FAIL - - [The CanvasPath interface object should be exposed] - expected: FAIL - - [The Path2D interface object should be exposed] - expected: FAIL - - [The WritableStream interface object should be exposed] - expected: FAIL - - [The CanvasGradient interface object should be exposed] - expected: FAIL - - [The CanvasPattern interface object should be exposed] - expected: FAIL - From be93f25e72b8b06a04d2a40573e171a8a4cdac1c Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:02 +0000 Subject: [PATCH 33/75] Bug 1583503 [wpt PR 19252] - Update interfaces/orientation-event.idl, a=testonly Automatic update from web-platform-tests Update interfaces/orientation-event.idl (#19252) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/orientation-event.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 81ea692803a63bbb06dbd1c99996b8c30ce7df6a wpt-pr: 19252 --- .../tests/interfaces/orientation-event.idl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/interfaces/orientation-event.idl b/testing/web-platform/tests/interfaces/orientation-event.idl index a8eef516f29b..af5bc546ac17 100644 --- a/testing/web-platform/tests/interfaces/orientation-event.idl +++ b/testing/web-platform/tests/interfaces/orientation-event.idl @@ -7,8 +7,9 @@ partial interface Window { [SecureContext] attribute EventHandler ondeviceorientation; }; -[Constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict = {}), Exposed=Window, SecureContext] +[Exposed=Window, SecureContext] interface DeviceOrientationEvent : Event { + constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict = {}); readonly attribute double? alpha; readonly attribute double? beta; readonly attribute double? gamma; @@ -41,22 +42,23 @@ partial interface Window { [SecureContext] attribute EventHandler ondevicemotion; }; -[SecureContext] +[Exposed=Window, SecureContext] interface DeviceMotionEventAcceleration { readonly attribute double? x; readonly attribute double? y; readonly attribute double? z; }; -[SecureContext] +[Exposed=Window, SecureContext] interface DeviceMotionEventRotationRate { readonly attribute double? alpha; readonly attribute double? beta; readonly attribute double? gamma; }; -[Constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {}), Exposed=Window, SecureContext] +[Exposed=Window, SecureContext] interface DeviceMotionEvent : Event { + constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {}); readonly attribute DeviceMotionEventAcceleration? acceleration; readonly attribute DeviceMotionEventAcceleration? accelerationIncludingGravity; readonly attribute DeviceMotionEventRotationRate? rotationRate; From daada5f341630d30e893af84e604e845a7fc1edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Wed, 25 Sep 2019 16:57:07 +0000 Subject: [PATCH 34/75] Bug 1583490 [wpt PR 19247] - [GitHub Actions] increase the fetch depth to 50 (was 1), a=testonly Automatic update from web-platform-tests [GitHub Actions] increase the fetch depth to 50 (was 1) When multiple commits land in short succession, a fetch depth of 1 will lead the checkout step of the first triggered workflow to fail: https://github.com/web-platform-tests/wpt/runs/233269859 Use a fetch depth of 50, matching Azure Pipelines and Taskcluster: https://github.com/web-platform-tests/wpt/blob/master/tools/ci/azure/checkout.yml https://github.com/web-platform-tests/wpt/blob/master/tools/docker/start.sh -- wpt-commits: d089e5ded6fea7ed15ceb3946779712ec02d20f9 wpt-pr: 19247 --- testing/web-platform/tests/.github/workflows/pull_request.yml | 2 +- .../workflows/push-build-publish-documentation-website.yml | 2 +- .../tests/.github/workflows/push-build-release-manifest.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/web-platform/tests/.github/workflows/pull_request.yml b/testing/web-platform/tests/.github/workflows/pull_request.yml index 9d288c0c9209..81a53c67f4b1 100644 --- a/testing/web-platform/tests/.github/workflows/pull_request.yml +++ b/testing/web-platform/tests/.github/workflows/pull_request.yml @@ -7,7 +7,7 @@ jobs: - uses: actions/checkout@v1 with: ref: refs/heads/master - fetch-depth: 1 + fetch-depth: 50 - name: update-pr-preview uses: ./tools/docker/github env: diff --git a/testing/web-platform/tests/.github/workflows/push-build-publish-documentation-website.yml b/testing/web-platform/tests/.github/workflows/push-build-publish-documentation-website.yml index 167e0d930f4d..f6a1401a3dd1 100644 --- a/testing/web-platform/tests/.github/workflows/push-build-publish-documentation-website.yml +++ b/testing/web-platform/tests/.github/workflows/push-build-publish-documentation-website.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v1 with: - fetch-depth: 1 + fetch-depth: 50 - name: website-build-and-publish uses: ./tools/docker/documentation env: diff --git a/testing/web-platform/tests/.github/workflows/push-build-release-manifest.yml b/testing/web-platform/tests/.github/workflows/push-build-release-manifest.yml index af677454fdd2..baa06cc14fd4 100644 --- a/testing/web-platform/tests/.github/workflows/push-build-release-manifest.yml +++ b/testing/web-platform/tests/.github/workflows/push-build-release-manifest.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v1 with: - fetch-depth: 1 + fetch-depth: 50 - name: manifest-build-and-tag uses: ./tools/docker/github env: From c3128f5f22bc83b0d0c9f0e15c44e69d9676d61a Mon Sep 17 00:00:00 2001 From: George Steel Date: Wed, 25 Sep 2019 16:57:12 +0000 Subject: [PATCH 35/75] Bug 1581617 [wpt PR 19098] - Update WPT for csswg-drafts pull request #4306, a=testonly Automatic update from web-platform-tests Update WPT for csswg-drafts pull request #4306 https://github.com/w3c/csswg-drafts/pull/4306 Change-Id: Icb7d01affc85d997e9a3e06f09bae77b4cd915a3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1807297 Reviewed-by: Stephen McGruer Commit-Queue: George Steel Auto-Submit: George Steel Cr-Commit-Position: refs/heads/master@{#699372} -- wpt-commits: 3c8f32fd9be68d23ac9c7dd6dceaa6c625e4c6ba wpt-pr: 19098 --- ...AnimationEffect-getComputedTiming.tentative.html | 13 ++++++++++++- .../KeyframeEffect-getKeyframes.tentative.html | 9 ++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/testing/web-platform/tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html b/testing/web-platform/tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html index 4b6a28b5694f..32c15f07a96a 100644 --- a/testing/web-platform/tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html +++ b/testing/web-platform/tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html @@ -162,10 +162,21 @@ test(t => { div.style.marginLeft = '10px'; const effect = div.getAnimations()[0].effect; - assert_equals(effect.getComputedTiming().easing, 'linear', + assert_equals(effect.getComputedTiming().easing, 'ease', 'Initial value of easing'); }, 'easing of a new transition'); +test(t => { + const div = addDiv(t, { class: 'animated-div' }); + div.style.transition = 'margin-left 10s steps(4)'; + getComputedStyle(div).marginLeft; + div.style.marginLeft = '10px'; + + const effect = div.getAnimations()[0].effect; + assert_equals(effect.getComputedTiming().easing, 'steps(4)', + 'Initial value of easing'); +}, 'non-default easing of a new transition'); + // ------------------------------ // endTime diff --git a/testing/web-platform/tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html b/testing/web-platform/tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html index 08a90734392c..47b769b13a92 100644 --- a/testing/web-platform/tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html +++ b/testing/web-platform/tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html @@ -45,7 +45,7 @@ test(t => { const expected = [ { offset: 0, computedOffset: 0, - easing: 'ease', + easing: 'linear', composite: 'auto', left: '0px', }, @@ -80,7 +80,7 @@ test(t => { { offset: 0, computedOffset: 0, - easing: 'steps(2)', + easing: 'linear', composite: 'auto', left: '0px', }, @@ -96,8 +96,7 @@ test(t => { for (let i = 0; i < frames.length; i++) { assert_frames_equal(frames[i], expected[i], `ComputedKeyframe #${i}`); } -}, 'KeyframeEffect.getKeyframes() returns expected frames for a simple' - + ' transition with a non-default easing function'); +}, 'KeyframeEffect.getKeyframes() returns frames unaffected by a non-default easing function'); test(t => { const div = addDiv(t); @@ -114,7 +113,7 @@ test(t => { { offset: 0, computedOffset: 0, - easing: 'ease', + easing: 'linear', composite: 'auto', left: '0px', }, From d5d96cc2a2755a3d29e5cb6f4a88fa3a005fb1ac Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 16 Sep 2019 20:22:08 +0000 Subject: [PATCH 36/75] Bug 1581617 [wpt PR 19098] - Update wpt metadata, a=testonly wpt-pr: 19098 wpt-type: metadata --- ...ationEffect-getComputedTiming.tentative.html.ini | 7 +++++++ .../KeyframeEffect-getKeyframes.tentative.html.ini | 13 +++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 testing/web-platform/meta/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html.ini create mode 100644 testing/web-platform/meta/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html.ini diff --git a/testing/web-platform/meta/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html.ini b/testing/web-platform/meta/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html.ini new file mode 100644 index 000000000000..ab9de5b9bf97 --- /dev/null +++ b/testing/web-platform/meta/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html.ini @@ -0,0 +1,7 @@ +[AnimationEffect-getComputedTiming.tentative.html] + [easing of a new transition] + expected: FAIL + + [non-default easing of a new transition] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html.ini b/testing/web-platform/meta/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html.ini new file mode 100644 index 000000000000..44c9aacc065e --- /dev/null +++ b/testing/web-platform/meta/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html.ini @@ -0,0 +1,13 @@ +[KeyframeEffect-getKeyframes.tentative.html] + [KeyframeEffect.getKeyframes() returns expected frames for a simple transition] + expected: FAIL + + [KeyframeEffect.getKeyframes() returns expected frames for a transition with a CSS variable endpoint] + expected: FAIL + + [KeyframeEffect.getKeyframes() returns expected frames for a simple transition with a non-default easing function] + expected: FAIL + + [KeyframeEffect.getKeyframes() returns frames unaffected by a non-default easing function] + expected: FAIL + From dfbfb16dea80336d82e4e8bb6a4dd5009b5e364c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20S=C3=B6derquist?= Date: Wed, 25 Sep 2019 16:57:20 +0000 Subject: [PATCH 37/75] Bug 1583491 [wpt PR 19248] - Restrict 'keySplines' x-values to the [0, 1] range, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests Restrict 'keySplines' x-values to the [0, 1] range Per SMIL[1], all the values in a key spline should be within [0, 1], but to be consistent with CSS' timing function, allow y-values to be outside that range (at least for now). While in ParseKeySplinesInternal(...), rename the |pos_*| local variables to something that carries a little bit more semantic meaning. [1] https://www.w3.org/TR/SMIL3/smil-animation.html#adef-keySplines Bug: 1006544 Change-Id: I6baa4085943eca8144605fb0a5c442bc8486ad87 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1821158 Reviewed-by: Stephen Chenney Commit-Queue: Fredrik Söderquist Cr-Commit-Position: refs/heads/master@{#699373} -- wpt-commits: 42753d6fecd3c1c8463d723aa49a89e0dc2616bf wpt-pr: 19248 --- .../svg/animations/keysplines-x-limits.html | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 testing/web-platform/tests/svg/animations/keysplines-x-limits.html diff --git a/testing/web-platform/tests/svg/animations/keysplines-x-limits.html b/testing/web-platform/tests/svg/animations/keysplines-x-limits.html new file mode 100644 index 000000000000..3c9ba65059f9 --- /dev/null +++ b/testing/web-platform/tests/svg/animations/keysplines-x-limits.html @@ -0,0 +1,42 @@ + +'keySplines' with x-values outside of the 0 to 1 range + + + + + + + + + + + + + + + + + + + + From b99713bf3ebcca8ff56ded8de310d106d696f6f5 Mon Sep 17 00:00:00 2001 From: Ian Kilpatrick Date: Wed, 25 Sep 2019 16:57:25 +0000 Subject: [PATCH 38/75] Bug 1583390 [wpt PR 19235] - [LayoutNG] Allow floats to be placed "before" other floats of the same type., a=testonly Automatic update from web-platform-tests [LayoutNG] Allow floats to be placed "before" other floats of the same type. Floats have some "interesting" behaviour which allows a left (or right) float to be placed left (or right) of a previous float. This typically isn't allowed. This occurs when a float has "negative size" e.g. it has a large negative margin, which is larger than its width. E.g.
In such cases the float doesn't respect the normal rules, and is placed in a typically invalid area. This patch also changes "const LogicalSize& minimum_size" to "const LayoutUnit minimum_inline_size" for "FindLayoutOpportunity". Bug: 1005437 Change-Id: I4c91a53911b2651346487f71c4b31ec6e0240202 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1819356 Commit-Queue: Ian Kilpatrick Reviewed-by: Morten Stenshorne Cr-Commit-Position: refs/heads/master@{#699390} -- wpt-commits: 38028a8b9d38b369952c27f5b5addc2ef5b5bff9 wpt-pr: 19235 --- .../CSS2/floats/negative-margin-float-positioning.html | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 testing/web-platform/tests/css/CSS2/floats/negative-margin-float-positioning.html diff --git a/testing/web-platform/tests/css/CSS2/floats/negative-margin-float-positioning.html b/testing/web-platform/tests/css/CSS2/floats/negative-margin-float-positioning.html new file mode 100644 index 000000000000..8b4aef22f71f --- /dev/null +++ b/testing/web-platform/tests/css/CSS2/floats/negative-margin-float-positioning.html @@ -0,0 +1,9 @@ + + + +

Test passes if there is a filled green square.

+
+
+
+
+ From ef847f08d54fda14b9590cce4ef7ff4a5fa6b318 Mon Sep 17 00:00:00 2001 From: Mike West Date: Wed, 25 Sep 2019 16:57:30 +0000 Subject: [PATCH 39/75] Bug 1583136 [wpt PR 19217] - Correctly support `Sec-Fetch-Mode` for `` requests., a=testonly Automatic update from web-platform-tests Correctly support `Sec-Fetch-Mode` for `` requests. Requests from `` elements currently send a `Sec-Fetch-Mode` of `navigation`. They ought to send something more like `nested-navigation`, which more accurately represents the request's status vis-a-vis its requestor. https://github.com/w3c/webappsec-fetch-metadata/issues/46 Bug: 1005143 Change-Id: Ib7f434ddf90d2e15b4bf139ab77c778a090251f4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1819297 Reviewed-by: Lucas Gadani Reviewed-by: Alex Moshchuk Commit-Queue: Alex Moshchuk Auto-Submit: Mike West Cr-Commit-Position: refs/heads/master@{#699399} -- wpt-commits: 3bff4fcbad687be221f6830969fe4f7086ce2cf8 wpt-pr: 19217 --- .../portal.tentative.https.sub.html | 48 +++++++++++++++++++ .../sec-metadata/resources/post-to-owner.py | 2 + 2 files changed, 50 insertions(+) create mode 100644 testing/web-platform/tests/fetch/sec-metadata/portal.tentative.https.sub.html diff --git a/testing/web-platform/tests/fetch/sec-metadata/portal.tentative.https.sub.html b/testing/web-platform/tests/fetch/sec-metadata/portal.tentative.https.sub.html new file mode 100644 index 000000000000..2a9df1f01174 --- /dev/null +++ b/testing/web-platform/tests/fetch/sec-metadata/portal.tentative.https.sub.html @@ -0,0 +1,48 @@ + + + + + + + + + diff --git a/testing/web-platform/tests/fetch/sec-metadata/resources/post-to-owner.py b/testing/web-platform/tests/fetch/sec-metadata/resources/post-to-owner.py index c5ded49d71bb..096f33b04a22 100644 --- a/testing/web-platform/tests/fetch/sec-metadata/resources/post-to-owner.py +++ b/testing/web-platform/tests/fetch/sec-metadata/resources/post-to-owner.py @@ -14,6 +14,8 @@ def main(request, response): window.opener.postMessage(data, "*"); if (window.top != window) window.top.postMessage(data, "*"); + if (window.portalHost) + window.portalHost.postMessage(data, "*"); """ % json.dumps({ "dest": request.headers.get("sec-fetch-dest", ""), From 3cc033dbe0e1be2f0a640b39fc6fcabd38aef15f Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:50:55 +0000 Subject: [PATCH 40/75] Bug 1583136 [wpt PR 19217] - Update wpt metadata, a=testonly wpt-pr: 19217 wpt-type: metadata --- .../sec-metadata/portal.tentative.https.sub.html.ini | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 testing/web-platform/meta/fetch/sec-metadata/portal.tentative.https.sub.html.ini diff --git a/testing/web-platform/meta/fetch/sec-metadata/portal.tentative.https.sub.html.ini b/testing/web-platform/meta/fetch/sec-metadata/portal.tentative.https.sub.html.ini new file mode 100644 index 000000000000..6ff6e9138ed8 --- /dev/null +++ b/testing/web-platform/meta/fetch/sec-metadata/portal.tentative.https.sub.html.ini @@ -0,0 +1,11 @@ +[portal.tentative.https.sub.html] + expected: TIMEOUT + [web-platform.test -> www.web-platform.test:8443 portal] + expected: TIMEOUT + + [web-platform.test -> web-platform.test:8443 portal] + expected: TIMEOUT + + [web-platform.test -> www.not-web-platform.test:8443 portal] + expected: TIMEOUT + From 6fa064f5eb4ed564f63a7d12a7f4e65d46139574 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:38 +0000 Subject: [PATCH 41/75] Bug 1583305 [wpt PR 19229] - Update interfaces/WebIDL.idl, a=testonly Automatic update from web-platform-tests Update interfaces/WebIDL.idl (#19229) Source: https://github.com/tidoust/reffy-reports/blob/b212af9/ed/idl/WebIDL.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588592871 -- wpt-commits: 2e176421fca7bc3644bd39846305922a848c2b58 wpt-pr: 19229 --- testing/web-platform/tests/interfaces/WebIDL.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/interfaces/WebIDL.idl b/testing/web-platform/tests/interfaces/WebIDL.idl index 78d85c13fb9b..a118dfd1a20e 100644 --- a/testing/web-platform/tests/interfaces/WebIDL.idl +++ b/testing/web-platform/tests/interfaces/WebIDL.idl @@ -9,9 +9,9 @@ typedef (Int8Array or Int16Array or Int32Array or typedef (ArrayBufferView or ArrayBuffer) BufferSource; [Exposed=(Window,Worker), - Constructor(optional DOMString message = "", optional DOMString name = "Error"), Serializable] interface DOMException { // but see below note about ECMAScript binding + constructor(optional DOMString message = "", optional DOMString name = "Error"); readonly attribute DOMString name; readonly attribute DOMString message; readonly attribute unsigned short code; From e15cdd5c94fafd0fb4026fc64d905badb7f6175e Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:43 +0000 Subject: [PATCH 42/75] Bug 1583605 [wpt PR 19262] - Update interfaces/cookie-store.idl, a=testonly Automatic update from web-platform-tests Update interfaces/cookie-store.idl (#19262) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/cookie-store.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: 7f228437f24d1471b90ed1786f0910d0c5060634 wpt-pr: 19262 --- testing/web-platform/tests/interfaces/cookie-store.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/interfaces/cookie-store.idl b/testing/web-platform/tests/interfaces/cookie-store.idl index 533884fdb586..c3204b2515a2 100644 --- a/testing/web-platform/tests/interfaces/cookie-store.idl +++ b/testing/web-platform/tests/interfaces/cookie-store.idl @@ -78,9 +78,9 @@ dictionary CookieListItem { typedef sequence CookieList; [Exposed=Window, - SecureContext, - Constructor(DOMString type, optional CookieChangeEventInit eventInitDict)] + SecureContext] interface CookieChangeEvent : Event { + constructor(DOMString type, optional CookieChangeEventInit eventInitDict = {}); readonly attribute CookieList changed; readonly attribute CookieList deleted; }; @@ -90,9 +90,9 @@ dictionary CookieChangeEventInit : EventInit { CookieList deleted; }; -[Exposed=ServiceWorker, - Constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict) +[Exposed=ServiceWorker ] interface ExtendableCookieChangeEvent : ExtendableEvent { + constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict = {}); readonly attribute CookieList changed; readonly attribute CookieList deleted; }; From 83d7b134f91e59c00fcedb77f92d8d1710d188d5 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:48 +0000 Subject: [PATCH 43/75] Bug 1583607 [wpt PR 19264] - Update interfaces/feature-policy.idl, a=testonly Automatic update from web-platform-tests Update interfaces/feature-policy.idl (#19264) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/feature-policy.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: c877e4d5599b71fb1e522be99e851a7e7cdb9d68 wpt-pr: 19264 --- testing/web-platform/tests/interfaces/feature-policy.idl | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/web-platform/tests/interfaces/feature-policy.idl b/testing/web-platform/tests/interfaces/feature-policy.idl index 3ded1e9b0c64..85601321a17f 100644 --- a/testing/web-platform/tests/interfaces/feature-policy.idl +++ b/testing/web-platform/tests/interfaces/feature-policy.idl @@ -18,6 +18,7 @@ partial interface Document { partial interface HTMLIFrameElement { [SameObject] readonly attribute FeaturePolicy featurePolicy; }; +[Exposed=Window] interface FeaturePolicyViolationReportBody : ReportBody { readonly attribute DOMString featureId; readonly attribute DOMString? sourceFile; From ceba179bbf3365ae3538004c40326f99604fc4a4 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:53 +0000 Subject: [PATCH 44/75] Bug 1583608 [wpt PR 19265] - Update interfaces/fetch.idl, a=testonly Automatic update from web-platform-tests Update interfaces/fetch.idl (#19265) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/fetch.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: d22de66f63f941824a9628be3e07596189683b0f wpt-pr: 19265 --- .../web-platform/tests/interfaces/fetch.idl | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/testing/web-platform/tests/interfaces/fetch.idl b/testing/web-platform/tests/interfaces/fetch.idl index f529c4501bf4..eacc69d8b9d1 100644 --- a/testing/web-platform/tests/interfaces/fetch.idl +++ b/testing/web-platform/tests/interfaces/fetch.idl @@ -5,9 +5,10 @@ typedef (sequence> or record) HeadersInit; -[Constructor(optional HeadersInit init), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface Headers { + constructor(optional HeadersInit init); + void append(ByteString name, ByteString value); void delete(ByteString name); ByteString? get(ByteString name); @@ -15,6 +16,7 @@ interface Headers { void set(ByteString name, ByteString value); iterable; }; + typedef (Blob or BufferSource or FormData or URLSearchParams or ReadableStream or USVString) BodyInit; interface mixin Body { readonly attribute ReadableStream? body; @@ -27,9 +29,10 @@ interface mixin Body { }; typedef (Request or USVString) RequestInfo; -[Constructor(RequestInfo input, optional RequestInit init = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface Request { + constructor(RequestInfo input, optional RequestInit init = {}); + readonly attribute ByteString method; readonly attribute USVString url; [SameObject] readonly attribute Headers headers; @@ -72,8 +75,10 @@ enum RequestMode { "navigate", "same-origin", "no-cors", "cors" }; enum RequestCredentials { "omit", "same-origin", "include" }; enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" }; enum RequestRedirect { "follow", "error", "manual" }; -[Constructor(optional BodyInit? body = null, optional ResponseInit init = {}), Exposed=(Window,Worker)] -interface Response { + +[Exposed=(Window,Worker)]interface Response { + constructor(optional BodyInit? body = null, optional ResponseInit init = {}); + [NewObject] static Response error(); [NewObject] static Response redirect(USVString url, optional unsigned short status = 302); @@ -98,6 +103,7 @@ dictionary ResponseInit { }; enum ResponseType { "basic", "cors", "default", "error", "opaque", "opaqueredirect" }; + partial interface mixin WindowOrWorkerGlobalScope { - [NewObject] Promise fetch(RequestInfo input, optional RequestInit init); + [NewObject] Promise fetch(RequestInfo input, optional RequestInit init = {}); }; From 8033c7369632ffd04c6bee7c3e1e82c03e6cd89e Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:57:58 +0000 Subject: [PATCH 45/75] Bug 1583609 [wpt PR 19266] - Update interfaces/notifications.idl, a=testonly Automatic update from web-platform-tests Update interfaces/notifications.idl (#19266) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/notifications.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: b118dc24e23273cacf72d126e6f999d9e440959e wpt-pr: 19266 --- .../web-platform/tests/interfaces/notifications.idl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/interfaces/notifications.idl b/testing/web-platform/tests/interfaces/notifications.idl index 1a55c31bb04c..d79e9076c81c 100644 --- a/testing/web-platform/tests/interfaces/notifications.idl +++ b/testing/web-platform/tests/interfaces/notifications.idl @@ -3,9 +3,10 @@ // (https://github.com/tidoust/reffy-reports) // Source: Notifications API Standard (https://notifications.spec.whatwg.org/) -[Constructor(DOMString title, optional NotificationOptions options = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface Notification : EventTarget { + constructor(DOMString title, optional NotificationOptions options = {}); + static readonly attribute NotificationPermission permission; [Exposed=Window] static Promise requestPermission(optional NotificationPermissionCallback deprecatedCallback); @@ -81,9 +82,10 @@ partial interface ServiceWorkerRegistration { Promise> getNotifications(optional GetNotificationOptions filter = {}); }; -[Constructor(DOMString type, NotificationEventInit eventInitDict), - Exposed=ServiceWorker] +[Exposed=ServiceWorker] interface NotificationEvent : ExtendableEvent { + constructor(DOMString type, NotificationEventInit eventInitDict); + readonly attribute Notification notification; readonly attribute DOMString action; }; From 34d9d8cc29c0ba3eaa77a1d42057da444a804c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Wed, 25 Sep 2019 16:58:03 +0000 Subject: [PATCH 46/75] Bug 1583178 [wpt PR 19219] - [testharness.js] avoid using `assert_equals` in `assert_class_string`, a=testonly Automatic update from web-platform-tests [testharness.js] avoid using `assert_equals` in `assert_class_string` (#19219) -- wpt-commits: ce2ab371027f86fd0d1a711c2c5cb94ec8279ec5 wpt-pr: 19219 --- testing/web-platform/tests/resources/testharness.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/testing/web-platform/tests/resources/testharness.js b/testing/web-platform/tests/resources/testharness.js index 9ef46ca77646..55de1ce252bd 100644 --- a/testing/web-platform/tests/resources/testharness.js +++ b/testing/web-platform/tests/resources/testharness.js @@ -1294,8 +1294,11 @@ policies and contribution forms [3]. expose(assert_regexp_match, "assert_regexp_match"); function assert_class_string(object, class_string, description) { - assert_equals({}.toString.call(object), "[object " + class_string + "]", - description); + var actual = {}.toString.call(object); + var expected = "[object " + class_string + "]"; + assert(same_value(actual, expected), "assert_class_string", description, + "expected ${expected} but got ${actual}", + {expected:expected, actual:actual}); } expose(assert_class_string, "assert_class_string"); From 4766138a4a81e0c1df6839812f30825ae662e25b Mon Sep 17 00:00:00 2001 From: Mustapha Jaber Date: Wed, 25 Sep 2019 16:58:08 +0000 Subject: [PATCH 47/75] Bug 1581551 [wpt PR 19091] - Added support for navigation-controls media query, a=testonly Automatic update from web-platform-tests Added support for navigation-controls media query This change adds support for navigation-controls media feature, which will initially be used to detect if the user agent supplies a back button present in its UI. This media feature will allow apps to avoid the "double back button" problem by letting them conditionally display a back button depending on whether the user agent is already displaying one. The logic for updating navigation-controls from its default state has not yet been implemented. Spec: https://github.com/fallaciousreasoning/backbutton-mediaquery Bug: 822944 Change-Id: If8bc5054c0591f7e822277a83119273b69aef0c9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1802195 Commit-Queue: Mustapha Jaber Reviewed-by: Kinuko Yasuda Reviewed-by: Rune Lillesveen Cr-Commit-Position: refs/heads/master@{#699459} -- wpt-commits: aea25956a4ab771261d6324e105893faa013e62c wpt-pr: 19091 --- .../navigation-controls.tentative.html | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 testing/web-platform/tests/css/mediaqueries/navigation-controls.tentative.html diff --git a/testing/web-platform/tests/css/mediaqueries/navigation-controls.tentative.html b/testing/web-platform/tests/css/mediaqueries/navigation-controls.tentative.html new file mode 100644 index 000000000000..ac1087bb65b9 --- /dev/null +++ b/testing/web-platform/tests/css/mediaqueries/navigation-controls.tentative.html @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file From 943534451195b55eb7f86765c969d560a9e63d08 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 13:57:48 +0000 Subject: [PATCH 48/75] Bug 1581551 [wpt PR 19091] - Update wpt metadata, a=testonly wpt-pr: 19091 wpt-type: metadata --- .../navigation-controls.tentative.html.ini | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 testing/web-platform/meta/css/mediaqueries/navigation-controls.tentative.html.ini diff --git a/testing/web-platform/meta/css/mediaqueries/navigation-controls.tentative.html.ini b/testing/web-platform/meta/css/mediaqueries/navigation-controls.tentative.html.ini new file mode 100644 index 000000000000..f34e5d89c79e --- /dev/null +++ b/testing/web-platform/meta/css/mediaqueries/navigation-controls.tentative.html.ini @@ -0,0 +1,22 @@ +[navigation-controls.tentative.html] + [Should be parseable in JS: '(navigation-controls)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(navigation-controls: back-button)'] + expected: FAIL + + [Check that none evaluates to false in the boolean context] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(navigation-controls: none)'] + expected: FAIL + + [Should be parseable in JS: '(navigation-controls: none)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(navigation-controls)'] + expected: FAIL + + [Should be parseable in JS: '(navigation-controls: back-button)'] + expected: FAIL + From 6a4ada08b93fb481cece95641a7b9330d1dde615 Mon Sep 17 00:00:00 2001 From: Alex Cooper Date: Wed, 25 Sep 2019 16:58:16 +0000 Subject: [PATCH 49/75] Bug 1583621 [wpt PR 19267] - Fix xrWebGLLayer_constructor test, a=testonly Automatic update from web-platform-tests Fix xrWebGLLayer_constructor test xrWebGLLayer_constructor was mistakenly updated to require user activation though the spec does not explicitly require it in this case since the inline session does not request any features. Even were it to require this, the way that it was structured caused there to not be a promise set when the ".then" was caused, giving a script error. This change essentially reverts WPT Commit 16d4388, and was discussed with Mozilla when deciding which way to fix it. Bug: 1007304 Change-Id: I824f63cb172aed5928c55224b31c00803b5ddaa2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1822821 Commit-Queue: Jacob DeWitt Commit-Queue: Alexander Cooper Auto-Submit: Alexander Cooper Reviewed-by: Jacob DeWitt Cr-Commit-Position: refs/heads/master@{#699467} -- wpt-commits: 75515ddfc56f2228ea9444f61f24cd78eba16aa6 wpt-pr: 19267 --- .../tests/webxr/xrWebGLLayer_constructor.https.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/testing/web-platform/tests/webxr/xrWebGLLayer_constructor.https.html b/testing/web-platform/tests/webxr/xrWebGLLayer_constructor.https.html index 7e57f4286c66..0584da79c12d 100644 --- a/testing/web-platform/tests/webxr/xrWebGLLayer_constructor.https.html +++ b/testing/web-platform/tests/webxr/xrWebGLLayer_constructor.https.html @@ -17,11 +17,8 @@ xr_promise_test("Ensure that XRWebGLLayer's constructor throws appropriate error let gl = webglCanvas.getContext('webgl', glAttributes); return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE) .then(() => { - let sessionPromise; - navigator.xr.test.simulateUserActivation(function() { - sessionPromise = navigator.xr.requestSession('inline'); - }); - return sessionPromise.then((session) => { + return navigator.xr.requestSession('inline') + .then((session) => { try { let webglLayerIncompatible = new XRWebGLLayer(session, gl); } catch (err) { From 59d4d117788ea0a4535e36f6036828fa5a2b322f Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Wed, 25 Sep 2019 16:58:21 +0000 Subject: [PATCH 50/75] Bug 1580000 [wpt PR 18945] - Compute img aspect ratio from width and height HTML attributes, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests Compute img aspect ratio from width and height HTML attributes As per this intent to implement: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/blink-dev/hbhKRuBzZ4o Spec: https://github.com/WICG/intrinsicsize-attribute/issues/16 Bug: 979891 Change-Id: I0f9ffa1584fa12a41393ef05daffb7238c97e990 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1790472 Commit-Queue: Christian Biesinger Reviewed-by: Emilio Cobos Álvarez Auto-Submit: Christian Biesinger Cr-Commit-Position: refs/heads/master@{#699465} -- wpt-commits: 86ff86de45a67eccc781b84f50ab261c18aad5cf wpt-pr: 18945 --- .../canvas-aspect-ratio.html | 30 ++++++++++++++ .../img-aspect-ratio.tentative.html | 34 ++++++++++++++-- .../video-aspect-ratio.html | 39 +++++++++++++++++++ 3 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html create mode 100644 testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html diff --git a/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html new file mode 100644 index 000000000000..1d231d52cde8 --- /dev/null +++ b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html @@ -0,0 +1,30 @@ + +Canvas width and height attributes are used to infer aspect-ratio + + + + + diff --git a/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html index ae266882b195..c9ce86869e10 100644 --- a/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html +++ b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html @@ -9,7 +9,6 @@ height: auto; } - diff --git a/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html new file mode 100644 index 000000000000..2b4937046d2f --- /dev/null +++ b/testing/web-platform/tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html @@ -0,0 +1,39 @@ + +Video width and height attributes are not used to infer aspect-ratio + + + + + + From e7bdfd124a02f99fa64362f2fdcb123a7069c5d0 Mon Sep 17 00:00:00 2001 From: Marijn Kruisselbrink Date: Wed, 25 Sep 2019 16:58:28 +0000 Subject: [PATCH 51/75] Bug 1579258 [wpt PR 18883] - [NativeFS] Refactor WPT tests to support native FS as well., a=testonly Automatic update from web-platform-tests [NativeFS] Refactor WPT tests to support native FS as well. Also changes the sandboxed file system version of these tests to run in both windows and workers. The native file system version of these tests are currently manual tests. In the future we can automate them. Also currently some of the writer tests don't pass in the native file system version, because of things like bug 998913. Bug: 998917 Change-Id: I4aefee6e35008afd73c2cf316d16ea189717bd4b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1787869 Reviewed-by: Olivier Yiptong Commit-Queue: Marijn Kruisselbrink Cr-Commit-Position: refs/heads/master@{#699539} -- wpt-commits: e7b232f535cf1ebd0026bd66d1ff3bf096744862 wpt-pr: 18883 --- ...aseHandle-remove.tentative.https.window.js | 76 -------- ...dle-getDirectory.tentative.https.window.js | 106 ----------- ...ryHandle-getFile.tentative.https.window.js | 111 ----------- ...Directory.tentative.https.manual.window.js | 4 + ...e-getFile.tentative.https.manual.window.js | 4 + ...moveEntry.tentative.https.manual.window.js | 4 + ...temWriter.tentative.https.manual.window.js | 4 + .../resources/native-fs-test-helpers.js | 49 +++++ .../resources/sandboxed-fs-test-helpers.js | 25 +++ .../resources/test-helpers.js | 112 +++++------ ...Handle-getDirectory.tentative.https.any.js | 3 + ...ctoryHandle-getFile.tentative.https.any.js | 3 + ...yHandle-removeEntry.tentative.https.any.js | 3 + ...ed_FileSystemWriter.tentative.https.any.js | 3 + .../FileSystemDirectoryHandle-getDirectory.js | 111 +++++++++++ .../FileSystemDirectoryHandle-getFile.js | 100 ++++++++++ .../FileSystemDirectoryHandle-removeEntry.js | 69 +++++++ .../FileSystemWriter.js} | 178 +++++++++--------- 18 files changed, 521 insertions(+), 444 deletions(-) delete mode 100644 testing/web-platform/tests/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js delete mode 100644 testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js delete mode 100644 testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js create mode 100644 testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js create mode 100644 testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js create mode 100644 testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js create mode 100644 testing/web-platform/tests/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js create mode 100644 testing/web-platform/tests/native-file-system/resources/native-fs-test-helpers.js create mode 100644 testing/web-platform/tests/native-file-system/resources/sandboxed-fs-test-helpers.js create mode 100644 testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js create mode 100644 testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js create mode 100644 testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js create mode 100644 testing/web-platform/tests/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js create mode 100644 testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js create mode 100644 testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js create mode 100644 testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js rename testing/web-platform/tests/native-file-system/{FileSystemWriter.tentative.https.window.js => script-tests/FileSystemWriter.js} (62%) diff --git a/testing/web-platform/tests/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js b/testing/web-platform/tests/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js deleted file mode 100644 index fd2ff888e371..000000000000 --- a/testing/web-platform/tests/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js +++ /dev/null @@ -1,76 +0,0 @@ -// META: script=resources/test-helpers.js -promise_test(async t => cleanupSandboxedFileSystem(), - 'Cleanup to setup test environment'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await createFileWithContents(t, 'file-to-remove', '12345', root); - await createFileWithContents(t, 'file-to-keep', 'abc', root); - await root.removeEntry('file-to-remove'); - - assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']); - await promise_rejects(t, 'NotFoundError', getFileContents(handle)); -}, 'removeEntry() to remove a file'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await createFileWithContents(t, 'file-to-remove', '12345', root); - await root.removeEntry('file-to-remove'); - - await promise_rejects(t, 'NotFoundError', root.removeEntry('file-to-remove')); -}, 'removeEntry() on an already removed file should fail'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir = await root.getDirectory('dir-to-remove', { create: true }); - await createFileWithContents(t, 'file-to-keep', 'abc', root); - await root.removeEntry('dir-to-remove'); - - assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']); - await promise_rejects(t, 'NotFoundError', getSortedDirectoryEntries(dir)); -}, 'removeEntry() to remove an empty directory'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir = await root.getDirectory('dir-to-remove', { create: true }); - t.add_cleanup(() => root.removeEntry('dir-to-remove', { recursive: true })); - await createEmptyFile(t, 'file-in-dir', dir); - - await promise_rejects(t, 'InvalidModificationError', root.removeEntry('dir-to-remove')); - assert_array_equals(await getSortedDirectoryEntries(root), ['dir-to-remove/']); - assert_array_equals(await getSortedDirectoryEntries(dir), ['file-in-dir']); -}, 'removeEntry() on a non-empty directory should fail'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir = await createDirectory(t, 'dir', root); - await promise_rejects(t, new TypeError(), dir.removeEntry("")); -}, 'removeEntry() with empty name should fail'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir = await createDirectory(t, 'dir', root); - await promise_rejects(t, new TypeError(), dir.removeEntry(kCurrentDirectory)); -}, `removeEntry() with "${kCurrentDirectory}" name should fail`); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir = await createDirectory(t, 'dir', root); - await promise_rejects(t, new TypeError(), dir.removeEntry(kParentDirectory)); -}, `removeEntry() with "${kParentDirectory}" name should fail`); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const dir_name = 'dir-name'; - const dir = await createDirectory(t, dir_name, root); - - const file_name = 'file-name'; - await createEmptyFile(t, file_name, dir); - - for (let i = 0; i < kPathSeparators.length; ++i) { - const path_with_separator = `${dir_name}${kPathSeparators[i]}${file_name}`; - await promise_rejects(t, new TypeError(), root.removeEntry(path_with_separator), - `removeEntry() must reject names containing "${kPathSeparators[i]}"`); - } -}, 'removeEntry() with a path separator should fail.'); diff --git a/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js b/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js deleted file mode 100644 index 79154b058ff0..000000000000 --- a/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js +++ /dev/null @@ -1,106 +0,0 @@ -// META: script=resources/test-helpers.js -promise_test(async t => cleanupSandboxedFileSystem(), - 'Cleanup to setup test environment'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, 'NotFoundError', root.getDirectory('non-existing-dir')); -}, 'getDirectory(create=false) rejects for non-existing directories'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await root.getDirectory('non-existing-dir', { create: true }); - t.add_cleanup(() => root.removeEntry('non-existing-dir', { recursive: true })); - - assert_false(handle.isFile); - assert_true(handle.isDirectory); - assert_equals(handle.name, 'non-existing-dir'); - assert_equals(await getDirectoryEntryCount(handle), 0); - assert_array_equals(await getSortedDirectoryEntries(root), ['non-existing-dir/']); -}, 'getDirectory(create=true) creates an empty directory'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const existing_handle = await root.getDirectory('dir-with-contents', { create: true }); - t.add_cleanup(() => root.removeEntry('dir-with-contents', { recursive: true })); - const file_handle = await createEmptyFile(t, 'test-file', existing_handle); - - const handle = await root.getDirectory('dir-with-contents', { create: false }); - - assert_false(handle.isFile); - assert_true(handle.isDirectory); - assert_equals(handle.name, 'dir-with-contents'); - assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']); -}, 'getDirectory(create=false) returns existing directories'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const existing_handle = await root.getDirectory('dir-with-contents', { create: true }); - t.add_cleanup(() => root.removeEntry('dir-with-contents', { recursive: true })); - const file_handle = await existing_handle.getFile('test-file', { create: true }); - - const handle = await root.getDirectory('dir-with-contents', { create: true }); - - assert_false(handle.isFile); - assert_true(handle.isDirectory); - assert_equals(handle.name, 'dir-with-contents'); - assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']); -}, 'getDirectory(create=true) returns existing directories without erasing'); - -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await createEmptyFile(t, 'file-name'); - - await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name')); - await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name', { create: false })); - await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name', { create: true })); -}, 'getDirectory() when a file already exists with the same name'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, new TypeError(), dir.getDirectory("", { create: true })); - await promise_rejects(t, new TypeError(), dir.getDirectory("", { create: false })); -}, 'getDirectory() with empty name'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, new TypeError(), dir.getDirectory(kCurrentDirectory)); - await promise_rejects(t, new TypeError(), dir.getDirectory(kCurrentDirectory, { create: true })); -}, `getDirectory() with "${kCurrentDirectory}" name`); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const subdir = await createDirectory(t, 'subdir-name', /*parent=*/dir); - - await promise_rejects(t, new TypeError(), subdir.getDirectory(kParentDirectory)); - await promise_rejects(t, new TypeError(), subdir.getDirectory(kParentDirectory, { create: true })); -}, `getDirectory() with "${kParentDirectory}" name`); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const first_subdir_name = 'first-subdir-name'; - const first_subdir = await createDirectory(t, first_subdir_name, /*parent=*/dir); - - const second_subdir_name = 'second-subdir-name'; - const second_subdir = await createDirectory(t, second_subdir_name, /*parent=*/first_subdir); - - for (let i = 0; i < kPathSeparators.length; ++i) { - const path_with_separator = `${first_subdir_name}${kPathSeparators[i]}${second_subdir_name}`; - await promise_rejects(t, new TypeError(), dir.getDirectory(path_with_separator), - `getDirectory() must reject names containing "${kPathSeparators[i]}"`); - } -}, 'getDirectory(create=false) with a path separator when the directory exists'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const subdir_name = 'subdir-name'; - const subdir = await createDirectory(t, subdir_name, /*parent=*/dir); - - for (let i = 0; i < kPathSeparators.length; ++i) { - const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`; - await promise_rejects(t, new TypeError(), dir.getDirectory(path_with_separator, { create: true }), - `getDirectory(true) must reject names containing "${kPathSeparators[i]}"`); - } -}, 'getDirectory(create=true) with a path separator'); diff --git a/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js b/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js deleted file mode 100644 index fa38abbc5447..000000000000 --- a/testing/web-platform/tests/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js +++ /dev/null @@ -1,111 +0,0 @@ -// META: script=resources/test-helpers.js -promise_test(async t => cleanupSandboxedFileSystem(), - 'Cleanup to setup test environment'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, 'NotFoundError', dir.getFile('non-existing-file')); -}, 'getFile(create=false) rejects for non-existing files'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await dir.getFile('non-existing-file', { create: true }); - t.add_cleanup(() => dir.removeEntry('non-existing-file')); - - assert_true(handle.isFile); - assert_false(handle.isDirectory); - assert_equals(handle.name, 'non-existing-file'); - assert_equals(await getFileSize(handle), 0); - assert_equals(await getFileContents(handle), ''); -}, 'getFile(create=true) creates an empty file for non-existing files'); - -promise_test(async t => { - const existing_handle = await createFileWithContents(t, 'existing-file', '1234567890'); - - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await dir.getFile('existing-file'); - - assert_true(handle.isFile); - assert_false(handle.isDirectory); - assert_equals(handle.name, 'existing-file'); - assert_equals(await getFileSize(handle), 10); - assert_equals(await getFileContents(handle), '1234567890'); -}, 'getFile(create=false) returns existing files'); - -promise_test(async t => { - const existing_handle = await createFileWithContents(t, 'file-with-contents', '1234567890'); - - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await dir.getFile('file-with-contents', { create: true }); - - assert_true(handle.isFile); - assert_false(handle.isDirectory); - assert_equals(handle.name, 'file-with-contents'); - assert_equals(await getFileSize(handle), 10); - assert_equals(await getFileContents(handle), '1234567890'); -}, 'getFile(create=true) returns existing files without erasing'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir_handle = await dir.getDirectory('dir-name', { create: true }); - t.add_cleanup(() => dir.removeEntry('dir-name', { recursive: true })); - - await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name')); -}, 'getFile(create=false) when a directory already exists with the same name'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const dir_handle = await dir.getDirectory('dir-name', { create: true }); - t.add_cleanup(() => dir.removeEntry('dir-name', { recursive: true })); - - await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name', { create: true })); -}, 'getFile(create=true) when a directory already exists with the same name'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, new TypeError(), dir.getFile("", { create: true })); - await promise_rejects(t, new TypeError(), dir.getFile("", { create: false })); -}, 'getFile() with empty name'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory)); - await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory, { create: true })); -}, `getFile() with "${kCurrentDirectory}" name`); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const subdir = await createDirectory(t, 'subdir-name', /*parent=*/dir); - - await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory)); - await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory, { create: true })); -}, `getFile() with "${kParentDirectory}" name`); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const subdir_name = 'subdir-name'; - const subdir = await createDirectory(t, subdir_name, /*parent=*/dir); - - const file_name = 'file-name'; - await createEmptyFile(t, file_name, /*parent=*/subdir); - - for (let i = 0; i < kPathSeparators.length; ++i) { - const path_with_separator = `${subdir_name}${kPathSeparators[i]}${file_name}`; - await promise_rejects(t, new TypeError(), dir.getFile(path_with_separator), - `getFile() must reject names containing "${kPathSeparators[i]}"`); - } -}, 'getFile(create=false) with a path separator when the file exists.'); - -promise_test(async t => { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const subdir_name = 'subdir-name'; - const subdir = await createDirectory(t, subdir_name, /*parent=*/dir); - - for (let i = 0; i < kPathSeparators.length; ++i) { - const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`; - await promise_rejects(t, new TypeError(), dir.getFile(path_with_separator, { create: true }), - `getFile(true) must reject names containing "${kPathSeparators[i]}"`); - } -}, 'getFile(create=true) with a path separator'); diff --git a/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js new file mode 100644 index 000000000000..cfe729cd1f1d --- /dev/null +++ b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js @@ -0,0 +1,4 @@ +// META: script=/resources/testdriver.js +// META: script=resources/test-helpers.js +// META: script=resources/native-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-getDirectory.js diff --git a/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js new file mode 100644 index 000000000000..0455cb800919 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js @@ -0,0 +1,4 @@ +// META: script=/resources/testdriver.js +// META: script=resources/test-helpers.js +// META: script=resources/native-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-getFile.js diff --git a/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js new file mode 100644 index 000000000000..8905a7afdea5 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js @@ -0,0 +1,4 @@ +// META: script=/resources/testdriver.js +// META: script=resources/test-helpers.js +// META: script=resources/native-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-removeEntry.js diff --git a/testing/web-platform/tests/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js b/testing/web-platform/tests/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js new file mode 100644 index 000000000000..25d8ee995857 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js @@ -0,0 +1,4 @@ +// META: script=/resources/testdriver.js +// META: script=resources/test-helpers.js +// META: script=resources/native-fs-test-helpers.js +// META: script=script-tests/FileSystemWriter.js diff --git a/testing/web-platform/tests/native-file-system/resources/native-fs-test-helpers.js b/testing/web-platform/tests/native-file-system/resources/native-fs-test-helpers.js new file mode 100644 index 000000000000..5ad8c04724b7 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/resources/native-fs-test-helpers.js @@ -0,0 +1,49 @@ +// This file defines a directory_test() function that can be used to define +// tests that require a FileSystemDirectoryHandle. The implementation of that +// function in this file will ask the user to select an empty directory and +// uses that directory. +// +// Another implementation of this function exists in +// sandboxed-fs-test-helpers.js, where that version uses the sandboxed file +// system instead. + +const directory_promise = (async () => { + await new Promise(resolve => { + window.addEventListener('DOMContentLoaded', resolve); + }); + + await window.test_driver.bless( + 'show a file picker.
Please select an empty directory'); + const entries = await self.chooseFileSystemEntries({type: 'openDirectory'}); + assert_true(entries instanceof FileSystemHandle); + assert_true(entries instanceof FileSystemDirectoryHandle); + for await (const entry of entries.getEntries()) { + assert_unreached('Selected directory is not empty'); + } + return entries; +})(); + +function directory_test(func, description) { + promise_test(async t => { + const directory = await directory_promise; + // To be resilient against tests not cleaning up properly, cleanup before + // every test. + for await (let entry of directory.getEntries()) { + await directory.removeEntry(entry.name, {recursive: entry.isDirectory}); + } + await func(t, directory); + }, description); +} + +directory_test(async (t, dir) => { + assert_equals(await dir.queryPermission({writable: false}), 'granted'); +}, 'User succesfully selected an empty directory.'); + +directory_test(async (t, dir) => { + const status = await dir.queryPermission({writable: true}); + if (status == 'granted') + return; + + await window.test_driver.bless('ask for write permission'); + assert_equals(await dir.requestPermission({writable: true}), 'granted'); +}, 'User granted write access.'); diff --git a/testing/web-platform/tests/native-file-system/resources/sandboxed-fs-test-helpers.js b/testing/web-platform/tests/native-file-system/resources/sandboxed-fs-test-helpers.js new file mode 100644 index 000000000000..5f4f269d2242 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/resources/sandboxed-fs-test-helpers.js @@ -0,0 +1,25 @@ +// This file defines a directory_test() function that can be used to define +// tests that require a FileSystemDirectoryHandle. The implementation of that +// function in this file will return an empty directory in the sandboxed file +// system. +// +// Another implementation of this function exists in native-fs-test-helpers.js, +// where that version uses the native file system instead. + +async function cleanupSandboxedFileSystem() { + const dir = + await FileSystemDirectoryHandle.getSystemDirectory({type: 'sandbox'}); + for await (let entry of dir.getEntries()) + await dir.removeEntry(entry.name, {recursive: entry.isDirectory}); +} + +function directory_test(func, description) { + promise_test(async t => { + // To be extra resilient against bad tests, cleanup before every test. + await cleanupSandboxedFileSystem(); + + const dir = + await FileSystemDirectoryHandle.getSystemDirectory({type: 'sandbox'}); + await func(t, dir); + }, description); +} diff --git a/testing/web-platform/tests/native-file-system/resources/test-helpers.js b/testing/web-platform/tests/native-file-system/resources/test-helpers.js index b794cee0c5f1..d0360921f1d8 100644 --- a/testing/web-platform/tests/native-file-system/resources/test-helpers.js +++ b/testing/web-platform/tests/native-file-system/resources/test-helpers.js @@ -1,95 +1,87 @@ // A special path component meaning "this directory." -const kCurrentDirectory = "."; +const kCurrentDirectory = '.'; // A special path component meaning "the parent directory." -const kParentDirectory = ".."; +const kParentDirectory = '..'; // Array of separators used to separate components in hierarchical paths. let kPathSeparators; -if (navigator.userAgent.includes("Windows NT")) { - // Windows uses both '/' and '\' as path separators. - kPathSeparators = ['/', '\\' ]; +if (navigator.userAgent.includes('Windows NT')) { + // Windows uses both '/' and '\' as path separators. + kPathSeparators = ['/', '\\']; } else { - kPathSeparators = [ '/' ]; -} - -async function cleanupSandboxedFileSystem() { - const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - for await (let entry of dir.getEntries()) - dir.removeEntry(entry.name, { recursive: entry.isDirectory }); + kPathSeparators = ['/']; } async function getFileSize(handle) { - const file = await handle.getFile(); - return file.size; + const file = await handle.getFile(); + return file.size; } async function getFileContents(handle) { - const file = await handle.getFile(); - return new Response(file).text(); + const file = await handle.getFile(); + return new Response(file).text(); } async function getDirectoryEntryCount(handle) { - let result = 0; - for await (let entry of handle.getEntries()) { - result++; - } - return result; + let result = 0; + for await (let entry of handle.getEntries()) { + result++; + } + return result; } async function getSortedDirectoryEntries(handle) { - let result = []; - for await (let entry of handle.getEntries()) { - if (entry.isDirectory) - result.push(entry.name + '/'); - else - result.push(entry.name); - } - result.sort(); - return result; + let result = []; + for await (let entry of handle.getEntries()) { + if (entry.isDirectory) + result.push(entry.name + '/'); + else + result.push(entry.name); + } + result.sort(); + return result; } async function createDirectory(test, name, parent) { - const parent_dir_handle = parent ? parent : - await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - - const new_dir_handle = await parent_dir_handle.getDirectory(name, { create: true }); + const new_dir_handle = await parent.getDirectory(name, {create: true}); test.add_cleanup(async () => { - try { - await parent_dir_handle.removeEntry(name, { recursive: true }); - } catch (e) { - // Ignore any errors when removing directories, as tests might - // have already removed the directory. - } + try { + await parent.removeEntry(name, {recursive: true}); + } catch (e) { + // Ignore any errors when removing directories, as tests might + // have already removed the directory. + } }); return new_dir_handle; } async function createEmptyFile(test, name, parent) { - const dir = parent ? parent : await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); - const handle = await dir.getFile(name, { create: true }); - test.add_cleanup(async () => { - try { - await dir.removeEntry(name); - } catch (e) { - // Ignore any errors when removing files, as tests might already remove the file. - } - }); - // Make sure the file is empty. - assert_equals(await getFileSize(handle), 0); - return handle; + const handle = await parent.getFile(name, {create: true}); + test.add_cleanup(async () => { + try { + await parent.removeEntry(name); + } catch (e) { + // Ignore any errors when removing files, as tests might already remove + // the file. + } + }); + // Make sure the file is empty. + assert_equals(await getFileSize(handle), 0); + return handle; } async function createFileWithContents(test, name, contents, parent) { - const handle = await createEmptyFile(test, name, parent); - const writer = await handle.createWriter(); - await writer.write(0, new Blob([contents])); - await writer.close(); - return handle; + const handle = await createEmptyFile(test, name, parent); + const writer = await handle.createWriter(); + await writer.write(0, new Blob([contents])); + await writer.close(); + return handle; } function garbageCollect() { - // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to - // some sort of cross-browser GC trigger. - if (self.gc) self.gc(); + // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to + // some sort of cross-browser GC trigger. + if (self.gc) + self.gc(); }; diff --git a/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js new file mode 100644 index 000000000000..6fcf566e31fb --- /dev/null +++ b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js @@ -0,0 +1,3 @@ +// META: script=resources/test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-getDirectory.js diff --git a/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js new file mode 100644 index 000000000000..65ae891cd444 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js @@ -0,0 +1,3 @@ +// META: script=resources/test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-getFile.js diff --git a/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js new file mode 100644 index 000000000000..a4be8bd267e7 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js @@ -0,0 +1,3 @@ +// META: script=resources/test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js +// META: script=script-tests/FileSystemDirectoryHandle-removeEntry.js diff --git a/testing/web-platform/tests/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js new file mode 100644 index 000000000000..8352e2487fe0 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js @@ -0,0 +1,3 @@ +// META: script=resources/test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js +// META: script=script-tests/FileSystemWriter.js diff --git a/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js new file mode 100644 index 000000000000..c2c128f5eded --- /dev/null +++ b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js @@ -0,0 +1,111 @@ +directory_test(async (t, root) => { + await promise_rejects( + t, 'NotFoundError', root.getDirectory('non-existing-dir')); +}, 'getDirectory(create=false) rejects for non-existing directories'); + +directory_test(async (t, root) => { + const handle = await root.getDirectory('non-existing-dir', {create: true}); + t.add_cleanup(() => root.removeEntry('non-existing-dir', {recursive: true})); + + assert_false(handle.isFile); + assert_true(handle.isDirectory); + assert_equals(handle.name, 'non-existing-dir'); + assert_equals(await getDirectoryEntryCount(handle), 0); + assert_array_equals( + await getSortedDirectoryEntries(root), ['non-existing-dir/']); +}, 'getDirectory(create=true) creates an empty directory'); + +directory_test(async (t, root) => { + const existing_handle = + await root.getDirectory('dir-with-contents', {create: true}); + t.add_cleanup(() => root.removeEntry('dir-with-contents', {recursive: true})); + const file_handle = await createEmptyFile(t, 'test-file', existing_handle); + + const handle = await root.getDirectory('dir-with-contents', {create: false}); + + assert_false(handle.isFile); + assert_true(handle.isDirectory); + assert_equals(handle.name, 'dir-with-contents'); + assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']); +}, 'getDirectory(create=false) returns existing directories'); + +directory_test(async (t, root) => { + const existing_handle = + await root.getDirectory('dir-with-contents', {create: true}); + t.add_cleanup(() => root.removeEntry('dir-with-contents', {recursive: true})); + const file_handle = + await existing_handle.getFile('test-file', {create: true}); + + const handle = await root.getDirectory('dir-with-contents', {create: true}); + + assert_false(handle.isFile); + assert_true(handle.isDirectory); + assert_equals(handle.name, 'dir-with-contents'); + assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']); +}, 'getDirectory(create=true) returns existing directories without erasing'); + +directory_test(async (t, root) => { + await createEmptyFile(t, 'file-name', root); + + await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name')); + await promise_rejects( + t, 'TypeMismatchError', root.getDirectory('file-name', {create: false})); + await promise_rejects( + t, 'TypeMismatchError', root.getDirectory('file-name', {create: true})); +}, 'getDirectory() when a file already exists with the same name'); + +directory_test(async (t, dir) => { + await promise_rejects( + t, new TypeError(), dir.getDirectory('', {create: true})); + await promise_rejects( + t, new TypeError(), dir.getDirectory('', {create: false})); +}, 'getDirectory() with empty name'); + +directory_test(async (t, dir) => { + await promise_rejects( + t, new TypeError(), dir.getDirectory(kCurrentDirectory)); + await promise_rejects( + t, new TypeError(), dir.getDirectory(kCurrentDirectory, {create: true})); +}, `getDirectory() with "${kCurrentDirectory}" name`); + +directory_test(async (t, dir) => { + const subdir = await createDirectory(t, 'subdir-name', /*parent=*/ dir); + + await promise_rejects( + t, new TypeError(), subdir.getDirectory(kParentDirectory)); + await promise_rejects( + t, new TypeError(), + subdir.getDirectory(kParentDirectory, {create: true})); +}, `getDirectory() with "${kParentDirectory}" name`); + +directory_test(async (t, dir) => { + const first_subdir_name = 'first-subdir-name'; + const first_subdir = + await createDirectory(t, first_subdir_name, /*parent=*/ dir); + + const second_subdir_name = 'second-subdir-name'; + const second_subdir = + await createDirectory(t, second_subdir_name, /*parent=*/ first_subdir); + + for (let i = 0; i < kPathSeparators.length; ++i) { + const path_with_separator = + `${first_subdir_name}${kPathSeparators[i]}${second_subdir_name}`; + await promise_rejects( + t, new TypeError(), dir.getDirectory(path_with_separator), + `getDirectory() must reject names containing "${kPathSeparators[i]}"`); + } +}, 'getDirectory(create=false) with a path separator when the directory exists'); + +directory_test(async (t, dir) => { + const subdir_name = 'subdir-name'; + const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir); + + for (let i = 0; i < kPathSeparators.length; ++i) { + const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`; + await promise_rejects( + t, new TypeError(), + dir.getDirectory(path_with_separator, {create: true}), + `getDirectory(true) must reject names containing "${ + kPathSeparators[i]}"`); + } +}, 'getDirectory(create=true) with a path separator'); diff --git a/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js new file mode 100644 index 000000000000..4d8ee96c3d03 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js @@ -0,0 +1,100 @@ +directory_test(async (t, dir) => { + await promise_rejects(t, 'NotFoundError', dir.getFile('non-existing-file')); +}, 'getFile(create=false) rejects for non-existing files'); + +directory_test(async (t, dir) => { + const handle = await dir.getFile('non-existing-file', {create: true}); + t.add_cleanup(() => dir.removeEntry('non-existing-file')); + + assert_true(handle.isFile); + assert_false(handle.isDirectory); + assert_equals(handle.name, 'non-existing-file'); + assert_equals(await getFileSize(handle), 0); + assert_equals(await getFileContents(handle), ''); +}, 'getFile(create=true) creates an empty file for non-existing files'); + +directory_test(async (t, dir) => { + const existing_handle = await createFileWithContents( + t, 'existing-file', '1234567890', /*parent=*/ dir); + const handle = await dir.getFile('existing-file'); + + assert_true(handle.isFile); + assert_false(handle.isDirectory); + assert_equals(handle.name, 'existing-file'); + assert_equals(await getFileSize(handle), 10); + assert_equals(await getFileContents(handle), '1234567890'); +}, 'getFile(create=false) returns existing files'); + +directory_test(async (t, dir) => { + const existing_handle = await createFileWithContents( + t, 'file-with-contents', '1234567890', /*parent=*/ dir); + const handle = await dir.getFile('file-with-contents', {create: true}); + + assert_true(handle.isFile); + assert_false(handle.isDirectory); + assert_equals(handle.name, 'file-with-contents'); + assert_equals(await getFileSize(handle), 10); + assert_equals(await getFileContents(handle), '1234567890'); +}, 'getFile(create=true) returns existing files without erasing'); + +directory_test(async (t, dir) => { + const dir_handle = await dir.getDirectory('dir-name', {create: true}); + t.add_cleanup(() => dir.removeEntry('dir-name', {recursive: true})); + + await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name')); +}, 'getFile(create=false) when a directory already exists with the same name'); + +directory_test(async (t, dir) => { + const dir_handle = await dir.getDirectory('dir-name', {create: true}); + t.add_cleanup(() => dir.removeEntry('dir-name', {recursive: true})); + + await promise_rejects( + t, 'TypeMismatchError', dir.getFile('dir-name', {create: true})); +}, 'getFile(create=true) when a directory already exists with the same name'); + +directory_test(async (t, dir) => { + await promise_rejects(t, new TypeError(), dir.getFile('', {create: true})); + await promise_rejects(t, new TypeError(), dir.getFile('', {create: false})); +}, 'getFile() with empty name'); + +directory_test(async (t, dir) => { + await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory)); + await promise_rejects( + t, new TypeError(), dir.getFile(kCurrentDirectory, {create: true})); +}, `getFile() with "${kCurrentDirectory}" name`); + +directory_test(async (t, dir) => { + const subdir = await createDirectory(t, 'subdir-name', /*parent=*/ dir); + + await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory)); + await promise_rejects( + t, new TypeError(), subdir.getFile(kParentDirectory, {create: true})); +}, `getFile() with "${kParentDirectory}" name`); + +directory_test(async (t, dir) => { + const subdir_name = 'subdir-name'; + const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir); + + const file_name = 'file-name'; + await createEmptyFile(t, file_name, /*parent=*/ subdir); + + for (let i = 0; i < kPathSeparators.length; ++i) { + const path_with_separator = + `${subdir_name}${kPathSeparators[i]}${file_name}`; + await promise_rejects( + t, new TypeError(), dir.getFile(path_with_separator), + `getFile() must reject names containing "${kPathSeparators[i]}"`); + } +}, 'getFile(create=false) with a path separator when the file exists.'); + +directory_test(async (t, dir) => { + const subdir_name = 'subdir-name'; + const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir); + + for (let i = 0; i < kPathSeparators.length; ++i) { + const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`; + await promise_rejects( + t, new TypeError(), dir.getFile(path_with_separator, {create: true}), + `getFile(true) must reject names containing "${kPathSeparators[i]}"`); + } +}, 'getFile(create=true) with a path separator'); diff --git a/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js new file mode 100644 index 000000000000..8e89e0958db9 --- /dev/null +++ b/testing/web-platform/tests/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js @@ -0,0 +1,69 @@ + +directory_test(async (t, root) => { + const handle = + await createFileWithContents(t, 'file-to-remove', '12345', root); + await createFileWithContents(t, 'file-to-keep', 'abc', root); + await root.removeEntry('file-to-remove'); + + assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']); + await promise_rejects(t, 'NotFoundError', getFileContents(handle)); +}, 'removeEntry() to remove a file'); + +directory_test(async (t, root) => { + const handle = + await createFileWithContents(t, 'file-to-remove', '12345', root); + await root.removeEntry('file-to-remove'); + + await promise_rejects(t, 'NotFoundError', root.removeEntry('file-to-remove')); +}, 'removeEntry() on an already removed file should fail'); + +directory_test(async (t, root) => { + const dir = await root.getDirectory('dir-to-remove', {create: true}); + await createFileWithContents(t, 'file-to-keep', 'abc', root); + await root.removeEntry('dir-to-remove'); + + assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']); + await promise_rejects(t, 'NotFoundError', getSortedDirectoryEntries(dir)); +}, 'removeEntry() to remove an empty directory'); + +directory_test(async (t, root) => { + const dir = await root.getDirectory('dir-to-remove', {create: true}); + t.add_cleanup(() => root.removeEntry('dir-to-remove', {recursive: true})); + await createEmptyFile(t, 'file-in-dir', dir); + + await promise_rejects( + t, 'InvalidModificationError', root.removeEntry('dir-to-remove')); + assert_array_equals( + await getSortedDirectoryEntries(root), ['dir-to-remove/']); + assert_array_equals(await getSortedDirectoryEntries(dir), ['file-in-dir']); +}, 'removeEntry() on a non-empty directory should fail'); + +directory_test(async (t, root) => { + const dir = await createDirectory(t, 'dir', root); + await promise_rejects(t, new TypeError(), dir.removeEntry('')); +}, 'removeEntry() with empty name should fail'); + +directory_test(async (t, root) => { + const dir = await createDirectory(t, 'dir', root); + await promise_rejects(t, new TypeError(), dir.removeEntry(kCurrentDirectory)); +}, `removeEntry() with "${kCurrentDirectory}" name should fail`); + +directory_test(async (t, root) => { + const dir = await createDirectory(t, 'dir', root); + await promise_rejects(t, new TypeError(), dir.removeEntry(kParentDirectory)); +}, `removeEntry() with "${kParentDirectory}" name should fail`); + +directory_test(async (t, root) => { + const dir_name = 'dir-name'; + const dir = await createDirectory(t, dir_name, root); + + const file_name = 'file-name'; + await createEmptyFile(t, file_name, dir); + + for (let i = 0; i < kPathSeparators.length; ++i) { + const path_with_separator = `${dir_name}${kPathSeparators[i]}${file_name}`; + await promise_rejects( + t, new TypeError(), root.removeEntry(path_with_separator), + `removeEntry() must reject names containing "${kPathSeparators[i]}"`); + } +}, 'removeEntry() with a path separator should fail.'); diff --git a/testing/web-platform/tests/native-file-system/FileSystemWriter.tentative.https.window.js b/testing/web-platform/tests/native-file-system/script-tests/FileSystemWriter.js similarity index 62% rename from testing/web-platform/tests/native-file-system/FileSystemWriter.tentative.https.window.js rename to testing/web-platform/tests/native-file-system/script-tests/FileSystemWriter.js index acc0be1c5218..1c51d0b4eb77 100644 --- a/testing/web-platform/tests/native-file-system/FileSystemWriter.tentative.https.window.js +++ b/testing/web-platform/tests/native-file-system/script-tests/FileSystemWriter.js @@ -1,54 +1,51 @@ -// META: script=resources/test-helpers.js -promise_test(async t => cleanupSandboxedFileSystem(), - 'Cleanup to setup test environment'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'empty_blob', root); + const writer = await handle.createWriter(); -promise_test(async t => { - const handle = await createEmptyFile(t, 'empty_blob'); - const writer = await handle.createWriter(); + await writer.write(0, new Blob([])); + await writer.close(); - await writer.write(0, new Blob([])); - await writer.close(); - - assert_equals(await getFileContents(handle), ''); - assert_equals(await getFileSize(handle), 0); + assert_equals(await getFileContents(handle), ''); + assert_equals(await getFileSize(handle), 0); }, 'write() with an empty blob to an empty file'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'valid_blob'); - const writer = await handle.createWriter(); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'valid_blob', root); + const writer = await handle.createWriter(); - await writer.write(0, new Blob(['1234567890'])); - await writer.close(); + await writer.write(0, new Blob(['1234567890'])); + await writer.close(); - assert_equals(await getFileContents(handle), '1234567890'); - assert_equals(await getFileSize(handle), 10); + assert_equals(await getFileContents(handle), '1234567890'); + assert_equals(await getFileSize(handle), 10); }, 'write() a blob to an empty file'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'blob_with_offset'); - const writer = await handle.createWriter(); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'blob_with_offset', root); + const writer = await handle.createWriter(); - await writer.write(0, new Blob(['1234567890'])); - await writer.write(4, new Blob(['abc'])); - await writer.close(); + await writer.write(0, new Blob(['1234567890'])); + await writer.write(4, new Blob(['abc'])); + await writer.close(); - assert_equals(await getFileContents(handle), '1234abc890'); - assert_equals(await getFileSize(handle), 10); + assert_equals(await getFileContents(handle), '1234abc890'); + assert_equals(await getFileSize(handle), 10); }, 'write() called with a blob and a valid offset'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'bad_offset'); - const writer = await handle.createWriter(); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'bad_offset', root); + const writer = await handle.createWriter(); - await promise_rejects(t, 'InvalidStateError', writer.write(4, new Blob(['abc']))); - await writer.close(); + await promise_rejects( + t, 'InvalidStateError', writer.write(4, new Blob(['abc']))); + await writer.close(); - assert_equals(await getFileContents(handle), ''); - assert_equals(await getFileSize(handle), 0); + assert_equals(await getFileContents(handle), ''); + assert_equals(await getFileSize(handle), 0); }, 'write() called with an invalid offset'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'empty_string'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'empty_string', root); const writer = await handle.createWriter(); await writer.write(0, ''); @@ -57,8 +54,8 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 0); }, 'write() with an empty string to an empty file'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'valid_utf8_string'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'valid_utf8_string', root); const writer = await handle.createWriter(); await writer.write(0, 'foo🤘'); @@ -67,8 +64,8 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 7); }, 'write() with a valid utf-8 string'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'string_with_unix_line_ending'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'string_with_unix_line_ending', root); const writer = await handle.createWriter(); await writer.write(0, 'foo\n'); @@ -77,8 +74,9 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 4); }, 'write() with a string with unix line ending preserved'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'string_with_windows_line_ending'); +directory_test(async (t, root) => { + const handle = + await createEmptyFile(t, 'string_with_windows_line_ending', root); const writer = await handle.createWriter(); await writer.write(0, 'foo\r\n'); @@ -87,8 +85,8 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 5); }, 'write() with a string with windows line ending preserved'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'empty_array_buffer'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'empty_array_buffer', root); const writer = await handle.createWriter(); let buf = new ArrayBuffer(0); @@ -98,8 +96,9 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 0); }, 'write() with an empty array buffer to an empty file'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'valid_string_typed_byte_array'); +directory_test(async (t, root) => { + const handle = + await createEmptyFile(t, 'valid_string_typed_byte_array', root); const writer = await handle.createWriter(); let buf = new ArrayBuffer(3); @@ -113,32 +112,31 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 3); }, 'write() with a valid typed array buffer'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'trunc_shrink'); - const writer = await handle.createWriter(); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'trunc_shrink', root); + const writer = await handle.createWriter(); - await writer.write(0, new Blob(['1234567890'])); - await writer.truncate(5); - await writer.close(); + await writer.write(0, new Blob(['1234567890'])); + await writer.truncate(5); + await writer.close(); - assert_equals(await getFileContents(handle), '12345'); - assert_equals(await getFileSize(handle), 5); + assert_equals(await getFileContents(handle), '12345'); + assert_equals(await getFileSize(handle), 5); }, 'truncate() to shrink a file'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'trunc_grow'); - const writer = await handle.createWriter(); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'trunc_grow', root); + const writer = await handle.createWriter(); - await writer.write(0, new Blob(['abc'])); - await writer.truncate(5); - await writer.close(); + await writer.write(0, new Blob(['abc'])); + await writer.truncate(5); + await writer.close(); - assert_equals(await getFileContents(handle), 'abc\0\0'); - assert_equals(await getFileSize(handle), 5); + assert_equals(await getFileContents(handle), 'abc\0\0'); + assert_equals(await getFileSize(handle), 5); }, 'truncate() to grow a file'); -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); +directory_test(async (t, root) => { const dir = await createDirectory(t, 'parent_dir', root); const file_name = 'create_writer_fails_when_dir_removed.txt'; const handle = await createEmptyFile(t, file_name, dir); @@ -147,8 +145,7 @@ promise_test(async t => { await promise_rejects(t, 'NotFoundError', handle.createWriter()); }, 'createWriter() fails when parent directory is removed'); -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); +directory_test(async (t, root) => { const dir = await createDirectory(t, 'parent_dir', root); const file_name = 'write_fails_when_dir_removed.txt'; const handle = await createEmptyFile(t, file_name, dir); @@ -158,8 +155,7 @@ promise_test(async t => { await promise_rejects(t, 'NotFoundError', writer.write(0, new Blob(['foo']))); }, 'write() fails when parent directory is removed'); -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); +directory_test(async (t, root) => { const dir = await createDirectory(t, 'parent_dir', root); const file_name = 'truncate_fails_when_dir_removed.txt'; const handle = await createEmptyFile(t, file_name, dir); @@ -169,8 +165,7 @@ promise_test(async t => { await promise_rejects(t, 'NotFoundError', writer.truncate(0)); }, 'truncate() fails when parent directory is removed'); -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); +directory_test(async (t, root) => { const dir = await createDirectory(t, 'parent_dir', root); const file_name = 'close_fails_when_dir_removed.txt'; const handle = await createEmptyFile(t, file_name, dir); @@ -181,8 +176,8 @@ promise_test(async t => { await promise_rejects(t, 'NotFoundError', writer.close()); }, 'atomic writes: close() fails when parent directory is removed'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'atomic_writes.txt'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'atomic_writes.txt', root); const writer = await handle.createWriter(); await writer.write(0, new Blob(['foox'])); @@ -200,8 +195,8 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 4); }, 'atomic writes: writers make atomic changes on close'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'atomic_write_after_close.txt'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'atomic_write_after_close.txt', root); const writer = await handle.createWriter(); await writer.write(0, new Blob(['foo'])); @@ -209,11 +204,13 @@ promise_test(async t => { assert_equals(await getFileContents(handle), 'foo'); assert_equals(await getFileSize(handle), 3); - await promise_rejects(t, 'InvalidStateError', writer.write(0, new Blob(['abc']))); + await promise_rejects( + t, 'InvalidStateError', writer.write(0, new Blob(['abc']))); }, 'atomic writes: write() after close() fails'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'atomic_truncate_after_close.txt'); +directory_test(async (t, root) => { + const handle = + await createEmptyFile(t, 'atomic_truncate_after_close.txt', root); const writer = await handle.createWriter(); await writer.write(0, new Blob(['foo'])); @@ -224,8 +221,8 @@ promise_test(async t => { await promise_rejects(t, 'InvalidStateError', writer.truncate(0)); }, 'atomic writes: truncate() after close() fails'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'atomic_close_after_close.txt'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'atomic_close_after_close.txt', root); const writer = await handle.createWriter(); await writer.write(0, new Blob(['foo'])); @@ -236,24 +233,23 @@ promise_test(async t => { await promise_rejects(t, 'InvalidStateError', writer.close()); }, 'atomic writes: close() after close() fails'); -promise_test(async t => { - const handle = await createEmptyFile(t, 'there_can_be_only_one.txt'); +directory_test(async (t, root) => { + const handle = await createEmptyFile(t, 'there_can_be_only_one.txt', root); const writer = await handle.createWriter(); await writer.write(0, new Blob(['foo'])); // This test might be flaky if there is a race condition allowing // close() to be called multiple times. - let success_promises = [...Array(100)].map(() => writer - .close() - .then(() => 1) - .catch(() => 0)); + let success_promises = + [...Array(100)].map(() => writer.close().then(() => 1).catch(() => 0)); let close_attempts = await Promise.all(success_promises); - let success_count = close_attempts.reduce((x,y) => x + y); + let success_count = close_attempts.reduce((x, y) => x + y); assert_equals(success_count, 1); }, 'atomic writes: only one close() operation may succeed'); -promise_test(async t => { - const handle = await createFileWithContents(t, 'atomic_file_is_copied.txt', 'fooks'); +directory_test(async (t, root) => { + const handle = await createFileWithContents( + t, 'atomic_file_is_copied.txt', 'fooks', root); const writer = await handle.createWriter({keepExistingData: true}); await writer.write(0, new Blob(['bar'])); @@ -262,8 +258,9 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 5); }, 'createWriter({keepExistingData: true}): atomic writer initialized with source contents'); -promise_test(async t => { - const handle = await createFileWithContents(t, 'atomic_file_is_not_copied.txt', 'very long string'); +directory_test(async (t, root) => { + const handle = await createFileWithContents( + t, 'atomic_file_is_not_copied.txt', 'very long string', root); const writer = await handle.createWriter({keepExistingData: false}); await writer.write(0, new Blob(['bar'])); @@ -273,8 +270,7 @@ promise_test(async t => { assert_equals(await getFileSize(handle), 3); }, 'createWriter({keepExistingData: false}): atomic writer initialized with empty file'); -promise_test(async t => { - const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' }); +directory_test(async (t, root) => { const dir = await createDirectory(t, 'parent_dir', root); const file_name = 'atomic_writer_persists_removed.txt'; const handle = await createFileWithContents(t, file_name, 'foo', dir); From 2f597cea93b8328ba048c01c2891fcbc580ab6fe Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Tue, 24 Sep 2019 23:25:03 +0000 Subject: [PATCH 52/75] Bug 1579258 [wpt PR 18883] - Update wpt metadata, a=testonly wpt-pr: 18883 wpt-type: metadata --- ...tory.tentative.https.manual.window.js.ini} | 15 +- ...File.tentative.https.manual.window.js.ini} | 15 +- ...ntry.tentative.https.manual.window.js.ini} | 27 ++-- ...iter.tentative.https.manual.window.js.ini} | 11 +- ...le-getDirectory.tentative.https.any.js.ini | 63 ++++++++ ...yHandle-getFile.tentative.https.any.js.ini | 69 ++++++++ ...dle-removeEntry.tentative.https.any.js.ini | 51 ++++++ ...ileSystemWriter.tentative.https.any.js.ini | 147 ++++++++++++++++++ 8 files changed, 364 insertions(+), 34 deletions(-) rename testing/web-platform/meta/native-file-system/{FileSystemDirectoryHandle-getDirectory.tentative.https.window.js.ini => native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js.ini} (80%) rename testing/web-platform/meta/native-file-system/{FileSystemDirectoryHandle-getFile.tentative.https.window.js.ini => native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js.ini} (82%) rename testing/web-platform/meta/native-file-system/{FileSystemBaseHandle-remove.tentative.https.window.js.ini => native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js.ini} (63%) rename testing/web-platform/meta/native-file-system/{FileSystemWriter.tentative.https.window.js.ini => native_FileSystemWriter.tentative.https.manual.window.js.ini} (91%) create mode 100644 testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js.ini create mode 100644 testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js.ini create mode 100644 testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js.ini create mode 100644 testing/web-platform/meta/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js.ini diff --git a/testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js.ini b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js.ini similarity index 80% rename from testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js.ini rename to testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js.ini index 8597cc401dbe..71fa7f9a7af4 100644 --- a/testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js.ini +++ b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js.ini @@ -1,5 +1,5 @@ -[FileSystemDirectoryHandle-getDirectory.tentative.https.window.html] - [getDirectory(create=true) with a path separator] +[native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.html] + [getDirectory() with ".." name] expected: FAIL [getDirectory(create=false) rejects for non-existing directories] @@ -8,25 +8,28 @@ [getDirectory() with "." name] expected: FAIL + [getDirectory(create=true) with a path separator] + expected: FAIL + [getDirectory(create=true) returns existing directories without erasing] expected: FAIL [getDirectory(create=false) returns existing directories] expected: FAIL - [getDirectory() when a file already exists with the same name] + [User granted write access.] expected: FAIL - [getDirectory() with ".." name] + [User succesfully selected an empty directory.] expected: FAIL [getDirectory(create=true) creates an empty directory] expected: FAIL - [Cleanup to setup test environment] + [getDirectory() with empty name] expected: FAIL - [getDirectory() with empty name] + [getDirectory() when a file already exists with the same name] expected: FAIL [getDirectory(create=false) with a path separator when the directory exists] diff --git a/testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js.ini b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js.ini similarity index 82% rename from testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js.ini rename to testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js.ini index f202c97adcc2..abb28a44a544 100644 --- a/testing/web-platform/meta/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js.ini +++ b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js.ini @@ -1,4 +1,7 @@ -[FileSystemDirectoryHandle-getFile.tentative.https.window.html] +[native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.html] + [getFile(create=false) with a path separator when the file exists.] + expected: FAIL + [getFile(create=false) rejects for non-existing files] expected: FAIL @@ -11,18 +14,15 @@ [getFile(create=true) returns existing files without erasing] expected: FAIL - [getFile() with "." name] + [User granted write access.] expected: FAIL - [getFile(create=false) with a path separator when the file exists.] + [User succesfully selected an empty directory.] expected: FAIL [getFile(create=true) with a path separator] expected: FAIL - [Cleanup to setup test environment] - expected: FAIL - [getFile(create=true) when a directory already exists with the same name] expected: FAIL @@ -32,6 +32,9 @@ [getFile() with empty name] expected: FAIL + [getFile() with "." name] + expected: FAIL + [getFile() with ".." name] expected: FAIL diff --git a/testing/web-platform/meta/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js.ini b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js.ini similarity index 63% rename from testing/web-platform/meta/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js.ini rename to testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js.ini index 54995768eefd..27f9ebbe5d81 100644 --- a/testing/web-platform/meta/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js.ini +++ b/testing/web-platform/meta/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js.ini @@ -1,40 +1,31 @@ -[FileSystemBaseHandle-remove.tentative.https.window.html] +[native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.html] [removeEntry() on a non-empty directory should fail] expected: FAIL - [removeEntry() with "." name should fail] - expected: FAIL - [removeEntry() on an already removed file should fail] expected: FAIL [removeEntry() with empty name should fail] expected: FAIL - [remove() on an already removed file should fail] + [removeEntry() with a path separator should fail.] expected: FAIL - [removeEntry() with a path separator should fail.] + [User granted write access.] + expected: FAIL + + [User succesfully selected an empty directory.] + expected: FAIL + + [removeEntry() with "." name should fail] expected: FAIL [removeEntry() with ".." name should fail] expected: FAIL - [remove() to remove a file] - expected: FAIL - - [Cleanup to setup test environment] - expected: FAIL - - [remove() on a non-empty directory should fail] - expected: FAIL - [removeEntry() to remove an empty directory] expected: FAIL - [remove() to remove an empty directory] - expected: FAIL - [removeEntry() to remove a file] expected: FAIL diff --git a/testing/web-platform/meta/native-file-system/FileSystemWriter.tentative.https.window.js.ini b/testing/web-platform/meta/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js.ini similarity index 91% rename from testing/web-platform/meta/native-file-system/FileSystemWriter.tentative.https.window.js.ini rename to testing/web-platform/meta/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js.ini index 1f45e8d201e1..f60a21f3e425 100644 --- a/testing/web-platform/meta/native-file-system/FileSystemWriter.tentative.https.window.js.ini +++ b/testing/web-platform/meta/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js.ini @@ -1,4 +1,4 @@ -[FileSystemWriter.tentative.https.window.html] +[native_FileSystemWriter.tentative.https.manual.window.html] [write() called with a blob and a valid offset] expected: FAIL @@ -41,6 +41,9 @@ [truncate() fails when parent directory is removed] expected: FAIL + [User succesfully selected an empty directory.] + expected: FAIL + [write() a blob to an empty file] expected: FAIL @@ -62,15 +65,15 @@ [atomic writes: writer persists file on close, even if file is removed] expected: FAIL + [User granted write access.] + expected: FAIL + [write() with a string with windows line ending preserved] expected: FAIL [atomic writes: write() after close() fails] expected: FAIL - [Cleanup to setup test environment] - expected: FAIL - [write() with a string with unix line ending preserved] expected: FAIL diff --git a/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js.ini b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js.ini new file mode 100644 index 000000000000..2fed847aad7d --- /dev/null +++ b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js.ini @@ -0,0 +1,63 @@ +[sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.html] + [getDirectory(create=true) with a path separator] + expected: FAIL + + [getDirectory(create=false) rejects for non-existing directories] + expected: FAIL + + [getDirectory() with "." name] + expected: FAIL + + [getDirectory(create=true) returns existing directories without erasing] + expected: FAIL + + [getDirectory(create=false) returns existing directories] + expected: FAIL + + [getDirectory() when a file already exists with the same name] + expected: FAIL + + [getDirectory() with ".." name] + expected: FAIL + + [getDirectory(create=true) creates an empty directory] + expected: FAIL + + [getDirectory() with empty name] + expected: FAIL + + [getDirectory(create=false) with a path separator when the directory exists] + expected: FAIL + + +[sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.worker.html] + [getDirectory(create=true) with a path separator] + expected: FAIL + + [getDirectory(create=false) rejects for non-existing directories] + expected: FAIL + + [getDirectory() with "." name] + expected: FAIL + + [getDirectory(create=true) returns existing directories without erasing] + expected: FAIL + + [getDirectory(create=false) returns existing directories] + expected: FAIL + + [getDirectory() when a file already exists with the same name] + expected: FAIL + + [getDirectory() with ".." name] + expected: FAIL + + [getDirectory(create=true) creates an empty directory] + expected: FAIL + + [getDirectory() with empty name] + expected: FAIL + + [getDirectory(create=false) with a path separator when the directory exists] + expected: FAIL + diff --git a/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js.ini b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js.ini new file mode 100644 index 000000000000..25b7e7e43e26 --- /dev/null +++ b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js.ini @@ -0,0 +1,69 @@ +[sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.worker.html] + [getFile(create=false) rejects for non-existing files] + expected: FAIL + + [getFile(create=false) returns existing files] + expected: FAIL + + [getFile(create=true) creates an empty file for non-existing files] + expected: FAIL + + [getFile(create=true) returns existing files without erasing] + expected: FAIL + + [getFile() with "." name] + expected: FAIL + + [getFile(create=false) with a path separator when the file exists.] + expected: FAIL + + [getFile(create=true) with a path separator] + expected: FAIL + + [getFile(create=true) when a directory already exists with the same name] + expected: FAIL + + [getFile(create=false) when a directory already exists with the same name] + expected: FAIL + + [getFile() with empty name] + expected: FAIL + + [getFile() with ".." name] + expected: FAIL + + +[sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.html] + [getFile(create=false) rejects for non-existing files] + expected: FAIL + + [getFile(create=false) returns existing files] + expected: FAIL + + [getFile(create=true) creates an empty file for non-existing files] + expected: FAIL + + [getFile(create=true) returns existing files without erasing] + expected: FAIL + + [getFile() with "." name] + expected: FAIL + + [getFile(create=false) with a path separator when the file exists.] + expected: FAIL + + [getFile(create=true) with a path separator] + expected: FAIL + + [getFile(create=true) when a directory already exists with the same name] + expected: FAIL + + [getFile(create=false) when a directory already exists with the same name] + expected: FAIL + + [getFile() with empty name] + expected: FAIL + + [getFile() with ".." name] + expected: FAIL + diff --git a/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js.ini b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js.ini new file mode 100644 index 000000000000..1fe134c8a9dd --- /dev/null +++ b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js.ini @@ -0,0 +1,51 @@ +[sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.html] + [removeEntry() on a non-empty directory should fail] + expected: FAIL + + [removeEntry() on an already removed file should fail] + expected: FAIL + + [removeEntry() with empty name should fail] + expected: FAIL + + [removeEntry() with a path separator should fail.] + expected: FAIL + + [removeEntry() with ".." name should fail] + expected: FAIL + + [removeEntry() with "." name should fail] + expected: FAIL + + [removeEntry() to remove an empty directory] + expected: FAIL + + [removeEntry() to remove a file] + expected: FAIL + + +[sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.worker.html] + [removeEntry() on a non-empty directory should fail] + expected: FAIL + + [removeEntry() on an already removed file should fail] + expected: FAIL + + [removeEntry() with empty name should fail] + expected: FAIL + + [removeEntry() with a path separator should fail.] + expected: FAIL + + [removeEntry() with ".." name should fail] + expected: FAIL + + [removeEntry() with "." name should fail] + expected: FAIL + + [removeEntry() to remove an empty directory] + expected: FAIL + + [removeEntry() to remove a file] + expected: FAIL + diff --git a/testing/web-platform/meta/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js.ini b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js.ini new file mode 100644 index 000000000000..f9477c652818 --- /dev/null +++ b/testing/web-platform/meta/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js.ini @@ -0,0 +1,147 @@ +[sandboxed_FileSystemWriter.tentative.https.any.html] + [write() called with a blob and a valid offset] + expected: FAIL + + [atomic writes: only one close() operation may succeed] + expected: FAIL + + [atomic writes: close() fails when parent directory is removed] + expected: FAIL + + [write() with a valid typed array buffer] + expected: FAIL + + [write() with a valid utf-8 string] + expected: FAIL + + [truncate() to grow a file] + expected: FAIL + + [write() with an empty blob to an empty file] + expected: FAIL + + [write() with an empty array buffer to an empty file] + expected: FAIL + + [createWriter() fails when parent directory is removed] + expected: FAIL + + [createWriter({keepExistingData: true}): atomic writer initialized with source contents] + expected: FAIL + + [truncate() to shrink a file] + expected: FAIL + + [atomic writes: close() after close() fails] + expected: FAIL + + [atomic writes: writers make atomic changes on close] + expected: FAIL + + [truncate() fails when parent directory is removed] + expected: FAIL + + [write() a blob to an empty file] + expected: FAIL + + [write() called with an invalid offset] + expected: FAIL + + [atomic writes: truncate() after close() fails] + expected: FAIL + + [createWriter({keepExistingData: false}): atomic writer initialized with empty file] + expected: FAIL + + [write() fails when parent directory is removed] + expected: FAIL + + [write() with an empty string to an empty file] + expected: FAIL + + [atomic writes: writer persists file on close, even if file is removed] + expected: FAIL + + [write() with a string with windows line ending preserved] + expected: FAIL + + [atomic writes: write() after close() fails] + expected: FAIL + + [write() with a string with unix line ending preserved] + expected: FAIL + + +[sandboxed_FileSystemWriter.tentative.https.any.worker.html] + [write() called with a blob and a valid offset] + expected: FAIL + + [atomic writes: only one close() operation may succeed] + expected: FAIL + + [atomic writes: close() fails when parent directory is removed] + expected: FAIL + + [write() with a valid typed array buffer] + expected: FAIL + + [write() with a valid utf-8 string] + expected: FAIL + + [truncate() to grow a file] + expected: FAIL + + [write() with an empty blob to an empty file] + expected: FAIL + + [write() with an empty array buffer to an empty file] + expected: FAIL + + [createWriter() fails when parent directory is removed] + expected: FAIL + + [createWriter({keepExistingData: true}): atomic writer initialized with source contents] + expected: FAIL + + [truncate() to shrink a file] + expected: FAIL + + [atomic writes: close() after close() fails] + expected: FAIL + + [atomic writes: writers make atomic changes on close] + expected: FAIL + + [truncate() fails when parent directory is removed] + expected: FAIL + + [write() a blob to an empty file] + expected: FAIL + + [write() called with an invalid offset] + expected: FAIL + + [atomic writes: truncate() after close() fails] + expected: FAIL + + [createWriter({keepExistingData: false}): atomic writer initialized with empty file] + expected: FAIL + + [write() fails when parent directory is removed] + expected: FAIL + + [write() with an empty string to an empty file] + expected: FAIL + + [atomic writes: writer persists file on close, even if file is removed] + expected: FAIL + + [write() with a string with windows line ending preserved] + expected: FAIL + + [atomic writes: write() after close() fails] + expected: FAIL + + [write() with a string with unix line ending preserved] + expected: FAIL + From baaeff65561911530bc13df78adc274c69b3423b Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Wed, 25 Sep 2019 16:58:35 +0000 Subject: [PATCH 53/75] Bug 1582018 [wpt PR 19127] - Add AutoClearOverrideLogical{Width,Height}, a=testonly Automatic update from web-platform-tests Add AutoClearOverrideLogical{Width,Height} This is a bit safer than the manual calling of clear and set. This also adds the test from https://crrev.com/c/1808498 to trunk/wpt. Bug: 1002899 Change-Id: I2a4963fc08f1b66a0d9cdaf63f1d263715f97178 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1810238 Auto-Submit: Christian Biesinger Reviewed-by: David Grogan Reviewed-by: Ian Kilpatrick Commit-Queue: Christian Biesinger Cr-Commit-Position: refs/heads/master@{#699563} -- wpt-commits: b54ab49624cfb1bc3956c6518f683d0b0c38b681 wpt-pr: 19127 --- .../flex-minimum-height-flex-items-019.html | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 testing/web-platform/tests/css/css-flexbox/flex-minimum-height-flex-items-019.html diff --git a/testing/web-platform/tests/css/css-flexbox/flex-minimum-height-flex-items-019.html b/testing/web-platform/tests/css/css-flexbox/flex-minimum-height-flex-items-019.html new file mode 100644 index 000000000000..3572a6cc88e5 --- /dev/null +++ b/testing/web-platform/tests/css/css-flexbox/flex-minimum-height-flex-items-019.html @@ -0,0 +1,53 @@ + +CSS Flexbox: min-height: auto with flex items containing percentage-sized children + + + + + + + +

Test passes if there is a filled green square and no red.

+ +
+ +
+
+
+ +
+
+
+
+
+
+ + From 74a49d2f81f40dce22c4bffaffbcd4af3ed392b6 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:58:40 +0000 Subject: [PATCH 54/75] Bug 1583688 [wpt PR 19276] - Update interfaces/IndexedDB.idl, a=testonly Automatic update from web-platform-tests Update interfaces/IndexedDB.idl (#19276) Source: https://github.com/tidoust/reffy-reports/blob/0839676/ed/idl/IndexedDB.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589225608 -- wpt-commits: 5cb3cb002caa9d25402bca247340f32335d663e3 wpt-pr: 19276 --- testing/web-platform/tests/interfaces/IndexedDB.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/interfaces/IndexedDB.idl b/testing/web-platform/tests/interfaces/IndexedDB.idl index 9373f4e43bf8..2af9eb2a3245 100644 --- a/testing/web-platform/tests/interfaces/IndexedDB.idl +++ b/testing/web-platform/tests/interfaces/IndexedDB.idl @@ -163,7 +163,7 @@ interface IDBKeyRange { optional boolean lowerOpen = false, optional boolean upperOpen = false); - boolean _includes(any key); + boolean includes(any key); }; [Exposed=(Window,Worker)] From 6b4a9c1c9c0848a5ad6264329fc71813cedb0327 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:58:46 +0000 Subject: [PATCH 55/75] Bug 1583690 [wpt PR 19278] - Update interfaces/proximity.idl, a=testonly Automatic update from web-platform-tests Update interfaces/proximity.idl (#19278) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/proximity.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 0428f3666991423c4093646f62dc737ec7046a99 wpt-pr: 19278 --- testing/web-platform/tests/interfaces/proximity.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/interfaces/proximity.idl b/testing/web-platform/tests/interfaces/proximity.idl index 570a29fd37b0..d4c8fae3a543 100644 --- a/testing/web-platform/tests/interfaces/proximity.idl +++ b/testing/web-platform/tests/interfaces/proximity.idl @@ -3,7 +3,7 @@ // (https://github.com/tidoust/reffy-reports) // Source: Proximity Sensor (https://w3c.github.io/proximity/) -[Constructor(optional SensorOptions sensorOptions), SecureContext, Exposed=Window] +[Constructor(optional SensorOptions sensorOptions = {}), SecureContext, Exposed=Window] interface ProximitySensor : Sensor { readonly attribute double? distance; readonly attribute double? max; From 28d0cac3d55c363e0da8732894ae4bc1b615199d Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Wed, 25 Sep 2019 16:58:51 +0000 Subject: [PATCH 56/75] Bug 1583452 [wpt PR 19243] - [css-backgrounds] border shorthands, a=testonly Automatic update from web-platform-tests [css-backgrounds] border shorthands (#19243) Test the expansion of border shorthand properties into equivalent longhand properties. https://drafts.csswg.org/css-backgrounds/#border-shorthands https://drafts.csswg.org/css-backgrounds/#border-image -- wpt-commits: dbb4845abd36c925ecfdb9417fda8643fd36df47 wpt-pr: 19243 --- .../parsing/border-color-shorthand.html | 43 +++++++++++++ .../parsing/border-image-shorthand.sub.html | 55 +++++++++++++++++ .../parsing/border-invalid.html | 3 +- .../parsing/border-shorthand.html | 61 +++++++++++++++++++ .../parsing/border-style-shorthand.html | 43 +++++++++++++ .../css-backgrounds/parsing/border-valid.html | 3 +- .../parsing/border-width-shorthand.html | 43 +++++++++++++ 7 files changed, 247 insertions(+), 4 deletions(-) create mode 100644 testing/web-platform/tests/css/css-backgrounds/parsing/border-color-shorthand.html create mode 100644 testing/web-platform/tests/css/css-backgrounds/parsing/border-image-shorthand.sub.html create mode 100644 testing/web-platform/tests/css/css-backgrounds/parsing/border-shorthand.html create mode 100644 testing/web-platform/tests/css/css-backgrounds/parsing/border-style-shorthand.html create mode 100644 testing/web-platform/tests/css/css-backgrounds/parsing/border-width-shorthand.html diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-color-shorthand.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-color-shorthand.html new file mode 100644 index 000000000000..012567830eae --- /dev/null +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-color-shorthand.html @@ -0,0 +1,43 @@ + + + + +CSS Backgrounds and Borders Module Level 3: border-color sets longhands + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-image-shorthand.sub.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-image-shorthand.sub.html new file mode 100644 index 000000000000..37fb998d6c2a --- /dev/null +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-image-shorthand.sub.html @@ -0,0 +1,55 @@ + + + + +CSS Backgrounds and Borders Module Level 3: border-image sets longhands + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-invalid.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-invalid.html index 71404f2ce3e1..870e741f445e 100644 --- a/testing/web-platform/tests/css/css-backgrounds/parsing/border-invalid.html +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-invalid.html @@ -3,9 +3,8 @@ CSS Backgrounds and Borders Module Level 3: parsing border with invalid values - - + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-shorthand.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-shorthand.html new file mode 100644 index 000000000000..30491a534ec6 --- /dev/null +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-shorthand.html @@ -0,0 +1,61 @@ + + + + +CSS Backgrounds and Borders Module Level 3: border sets longhands + + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-style-shorthand.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-style-shorthand.html new file mode 100644 index 000000000000..b85804e287e6 --- /dev/null +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-style-shorthand.html @@ -0,0 +1,43 @@ + + + + +CSS Backgrounds and Borders Module Level 3: border-style sets longhands + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-valid.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-valid.html index 37b876ce4e97..8c52b428ba93 100644 --- a/testing/web-platform/tests/css/css-backgrounds/parsing/border-valid.html +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-valid.html @@ -3,9 +3,8 @@ CSS Backgrounds and Borders Module Level 3: parsing border with valid values - - + diff --git a/testing/web-platform/tests/css/css-backgrounds/parsing/border-width-shorthand.html b/testing/web-platform/tests/css/css-backgrounds/parsing/border-width-shorthand.html new file mode 100644 index 000000000000..07461bc94d96 --- /dev/null +++ b/testing/web-platform/tests/css/css-backgrounds/parsing/border-width-shorthand.html @@ -0,0 +1,43 @@ + + + + +CSS Backgrounds and Borders Module Level 3: border-width sets longhands + + + + + + + + + + From 4b8f44a84c840ef627b89b637d21fd2f6edf7d1a Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 14:11:48 +0000 Subject: [PATCH 57/75] Bug 1583452 [wpt PR 19243] - Update wpt metadata, a=testonly wpt-pr: 19243 wpt-type: metadata --- .../css-backgrounds/parsing/border-color-shorthand.html.ini | 4 ++++ .../parsing/border-image-shorthand.sub.html.ini | 4 ++++ .../css/css-backgrounds/parsing/border-shorthand.html.ini | 4 ++++ .../css-backgrounds/parsing/border-style-shorthand.html.ini | 4 ++++ .../css-backgrounds/parsing/border-width-shorthand.html.ini | 4 ++++ 5 files changed, 20 insertions(+) create mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini create mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini create mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini create mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini create mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini new file mode 100644 index 000000000000..59985d81bb4f --- /dev/null +++ b/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini @@ -0,0 +1,4 @@ +[border-color-shorthand.html] + [CSS Backgrounds and Borders Module Level 3: border-color sets longhands] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini new file mode 100644 index 000000000000..3f1f8e0d3e2e --- /dev/null +++ b/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini @@ -0,0 +1,4 @@ +[border-image-shorthand.sub.html] + [CSS Backgrounds and Borders Module Level 3: border-image sets longhands] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini new file mode 100644 index 000000000000..922c3f0cd30e --- /dev/null +++ b/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini @@ -0,0 +1,4 @@ +[border-shorthand.html] + [CSS Backgrounds and Borders Module Level 3: border sets longhands] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini new file mode 100644 index 000000000000..cacc710e0976 --- /dev/null +++ b/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini @@ -0,0 +1,4 @@ +[border-style-shorthand.html] + [CSS Backgrounds and Borders Module Level 3: border-style sets longhands] + expected: FAIL + diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini new file mode 100644 index 000000000000..fdba1221624d --- /dev/null +++ b/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini @@ -0,0 +1,4 @@ +[border-width-shorthand.html] + [CSS Backgrounds and Borders Module Level 3: border-width sets longhands] + expected: FAIL + From 5153d3d8ad381345dc8b2d58a222519a98348bfa Mon Sep 17 00:00:00 2001 From: Brandon Maslen Date: Wed, 25 Sep 2019 16:58:59 +0000 Subject: [PATCH 58/75] Bug 1583697 [wpt PR 19281] - Ensure documents with no TopFrameOrigin correctly handle hasStorageAccess calls., a=testonly Automatic update from web-platform-tests Ensure documents with no TopFrameOrigin correctly handle hasStorageAccess calls. In some scenarios a document's TopFrameOrigin may be empty. This change ensures that this case is handled correctly during hasStorageAccess() calls. Bug: 1005778 Change-Id: Ic00cf3fcca143e83e277ca43835480c8d31536ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1814726 Commit-Queue: Brandon Maslen Reviewed-by: Mike West Cr-Commit-Position: refs/heads/master@{#699602} -- wpt-commits: d320b984d726cf4fd3c540f96adb072df03346d3 wpt-pr: 19281 --- .../storage-access-api/hasStorageAccess.sub.window.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/testing/web-platform/tests/storage-access-api/hasStorageAccess.sub.window.js b/testing/web-platform/tests/storage-access-api/hasStorageAccess.sub.window.js index 1352d7589f05..c4d6e3a8b9a8 100644 --- a/testing/web-platform/tests/storage-access-api/hasStorageAccess.sub.window.js +++ b/testing/web-platform/tests/storage-access-api/hasStorageAccess.sub.window.js @@ -56,4 +56,13 @@ if (topLevelDocument) { // Validate the nested-iframe scenario where the cross-origin frame containing // the tests is not the first child. RunTestsInNestedIFrame("http://{{domains[www]}}:{{ports[http][0]}}/storage-access-api/hasStorageAccess.sub.window.html?testCase=nested-cross-origin-frame&allowed=false&rootdocument=false"); + + // Run tests specific to the top-level window only here. They won't get re-run inside of various iframes. + promise_test(() => { + let createdDocument = document.implementation.createDocument("", null); + + return createdDocument.hasStorageAccess().then(hasAccess => { + assert_false(hasAccess, "Access should be denied to a generated document not part of the DOM."); + }); + }, "[" + testPrefix + "] document.hasStorageAccess() should work on a document object."); } From 1cc97cc430212fa867d6808c8a6ffea759841fa0 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 02:01:22 +0000 Subject: [PATCH 59/75] Bug 1583697 [wpt PR 19281] - Update wpt metadata, a=testonly wpt-pr: 19281 wpt-type: metadata --- .../meta/storage-access-api/hasStorageAccess.sub.window.js.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testing/web-platform/meta/storage-access-api/hasStorageAccess.sub.window.js.ini b/testing/web-platform/meta/storage-access-api/hasStorageAccess.sub.window.js.ini index 03e9f2f30fd0..060424d3b2d3 100644 --- a/testing/web-platform/meta/storage-access-api/hasStorageAccess.sub.window.js.ini +++ b/testing/web-platform/meta/storage-access-api/hasStorageAccess.sub.window.js.ini @@ -8,3 +8,6 @@ expected: if os == "android": FAIL + [[top-level-context\] document.hasStorageAccess() should work on a document object.] + expected: FAIL + From 7c09833785409a72f8de013768baedc751380ac3 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:06 +0000 Subject: [PATCH 60/75] Bug 1583502 [wpt PR 19251] - Update interfaces/magnetometer.idl, a=testonly Automatic update from web-platform-tests Update interfaces/magnetometer.idl (#19251) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/magnetometer.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: b25f830442f00698eb08d8a6f80738eb54073e8b wpt-pr: 19251 --- testing/web-platform/tests/interfaces/magnetometer.idl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/testing/web-platform/tests/interfaces/magnetometer.idl b/testing/web-platform/tests/interfaces/magnetometer.idl index be6cbc9d47a8..da1f22bb6685 100644 --- a/testing/web-platform/tests/interfaces/magnetometer.idl +++ b/testing/web-platform/tests/interfaces/magnetometer.idl @@ -3,9 +3,10 @@ // (https://github.com/tidoust/reffy-reports) // Source: Magnetometer (https://w3c.github.io/magnetometer/) -[Constructor(optional MagnetometerSensorOptions sensorOptions = {}), SecureContext, +[SecureContext, Exposed=Window] interface Magnetometer : Sensor { + constructor(optional MagnetometerSensorOptions sensorOptions = {}); readonly attribute double? x; readonly attribute double? y; readonly attribute double? z; @@ -17,9 +18,10 @@ dictionary MagnetometerSensorOptions : SensorOptions { MagnetometerLocalCoordinateSystem referenceFrame = "device"; }; -[Constructor(optional MagnetometerSensorOptions sensorOptions = {}), SecureContext, +[SecureContext, Exposed=Window] interface UncalibratedMagnetometer : Sensor { + constructor(optional MagnetometerSensorOptions sensorOptions = {}); readonly attribute double? x; readonly attribute double? y; readonly attribute double? z; From f9c7a2c6d89d93f849a1026a66a23c25bb320b34 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:11 +0000 Subject: [PATCH 61/75] Bug 1583691 [wpt PR 19279] - Update interfaces/touch-events.idl, a=testonly Automatic update from web-platform-tests Update interfaces/touch-events.idl (#19279) Source: https://github.com/tidoust/reffy-reports/blob/1c5a999/ed/idl/touch-events.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588932563 -- wpt-commits: 1a93e6f80f62c8f758b10cdd21d5ebe149dd64a3 wpt-pr: 19279 --- .../tests/interfaces/touch-events.idl | 64 ++++++++++--------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/testing/web-platform/tests/interfaces/touch-events.idl b/testing/web-platform/tests/interfaces/touch-events.idl index 1a8c9d7d24ec..84c48284a1b9 100644 --- a/testing/web-platform/tests/interfaces/touch-events.idl +++ b/testing/web-platform/tests/interfaces/touch-events.idl @@ -9,46 +9,47 @@ enum TouchType { }; dictionary TouchInit { - required long identifier; + required long identifier; required EventTarget target; - double clientX = 0; - double clientY = 0; - double screenX = 0; - double screenY = 0; - double pageX = 0; - double pageY = 0; - float radiusX = 0; - float radiusY = 0; - float rotationAngle = 0; - float force = 0; - double altitudeAngle = 0; - double azimuthAngle = 0; - TouchType touchType = "direct"; + double clientX = 0; + double clientY = 0; + double screenX = 0; + double screenY = 0; + double pageX = 0; + double pageY = 0; + float radiusX = 0; + float radiusY = 0; + float rotationAngle = 0; + float force = 0; + double altitudeAngle = 0; + double azimuthAngle = 0; + TouchType touchType = "direct"; }; -[Constructor(TouchInit touchInitDict), Exposed=Window] +[Exposed=Window] interface Touch { - readonly attribute long identifier; + constructor(TouchInit touchInitDict); + readonly attribute long identifier; readonly attribute EventTarget target; - readonly attribute double screenX; - readonly attribute double screenY; - readonly attribute double clientX; - readonly attribute double clientY; - readonly attribute double pageX; - readonly attribute double pageY; - readonly attribute float radiusX; - readonly attribute float radiusY; - readonly attribute float rotationAngle; - readonly attribute float force; - readonly attribute float altitudeAngle; - readonly attribute float azimuthAngle; - readonly attribute TouchType touchType; + readonly attribute double screenX; + readonly attribute double screenY; + readonly attribute double clientX; + readonly attribute double clientY; + readonly attribute double pageX; + readonly attribute double pageY; + readonly attribute float radiusX; + readonly attribute float radiusY; + readonly attribute float rotationAngle; + readonly attribute float force; + readonly attribute float altitudeAngle; + readonly attribute float azimuthAngle; + readonly attribute TouchType touchType; }; [Exposed=Window] interface TouchList { readonly attribute unsigned long length; - getter Touch? item(unsigned long index); + getter Touch? item (unsigned long index); }; dictionary TouchEventInit : EventModifierInit { @@ -57,8 +58,9 @@ dictionary TouchEventInit : EventModifierInit { sequence changedTouches = []; }; -[Constructor(DOMString type, optional TouchEventInit eventInitDict = {}), Exposed=Window] +[Exposed=Window] interface TouchEvent : UIEvent { + constructor(DOMString type, optional TouchEventInit eventInitDict = {}); readonly attribute TouchList touches; readonly attribute TouchList targetTouches; readonly attribute TouchList changedTouches; From 019ba512b3784d6fce510de405a7647b02858855 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:16 +0000 Subject: [PATCH 62/75] Bug 1583694 [wpt PR 19280] - Update interfaces/url.idl, a=testonly Automatic update from web-platform-tests Update interfaces/url.idl (#19280) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/url.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: 2ddbd111be8ed6d062ef13fef081b8bbc3202506 wpt-pr: 19280 --- testing/web-platform/tests/interfaces/url.idl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/interfaces/url.idl b/testing/web-platform/tests/interfaces/url.idl index 998052da6ef1..b0b237e8524a 100644 --- a/testing/web-platform/tests/interfaces/url.idl +++ b/testing/web-platform/tests/interfaces/url.idl @@ -3,10 +3,11 @@ // (https://github.com/tidoust/reffy-reports) // Source: URL Standard (https://url.spec.whatwg.org/) -[Constructor(USVString url, optional USVString base), - Exposed=(Window,Worker), +[Exposed=(Window,Worker), LegacyWindowAlias=webkitURL] interface URL { + constructor(USVString url, optional USVString base); + stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; @@ -23,9 +24,10 @@ interface URL { USVString toJSON(); }; -[Constructor(optional (sequence> or record or USVString) init = ""), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface URLSearchParams { + constructor(optional (sequence> or record or USVString) init = ""); + void append(USVString name, USVString value); void delete(USVString name); USVString? get(USVString name); From e777075c277e8e05dff126d4761b24e2acdc1d75 Mon Sep 17 00:00:00 2001 From: Kunihiko Sakamoto Date: Wed, 25 Sep 2019 16:59:21 +0000 Subject: [PATCH 63/75] Bug 1583718 [wpt PR 19282] - Update SXG version in wpt/signed-exchange/README.md, a=testonly Automatic update from web-platform-tests Update SXG version in wpt/signed-exchange/README.md We already use version b3 in the tests. Change-Id: Iadcf6b0a1057d6af01884f524ece0394bf244625 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1824499 Commit-Queue: Kunihiko Sakamoto Commit-Queue: Tsuyoshi Horo Auto-Submit: Kunihiko Sakamoto Reviewed-by: Tsuyoshi Horo Cr-Commit-Position: refs/heads/master@{#699638} -- wpt-commits: 332b7c4e711d75ead4c0dfbf7f6f0b683206756d wpt-pr: 19282 --- testing/web-platform/tests/signed-exchange/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/signed-exchange/README.md b/testing/web-platform/tests/signed-exchange/README.md index f1dbfe6d1adb..4032edf22f34 100644 --- a/testing/web-platform/tests/signed-exchange/README.md +++ b/testing/web-platform/tests/signed-exchange/README.md @@ -1,5 +1,5 @@ This directory contains tests for the -[b2 implementation snapshot](https://tools.ietf.org/html/draft-yasskin-httpbis-origin-signed-exchanges-impl-02) of the +[b3 implementation snapshot](https://tools.ietf.org/html/draft-yasskin-httpbis-origin-signed-exchanges-impl-03) of the [Signed HTTP Exchanges](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html). `resources` directory contains pregenerated signed exchanges and From 38767a39cee9cca1cf6d6041dca8e8f417d77423 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:26 +0000 Subject: [PATCH 64/75] Bug 1582641 [wpt PR 19175] - Update interfaces/html.idl, a=testonly Automatic update from web-platform-tests Update interfaces/html.idl (#19175) Source: https://github.com/tidoust/reffy-reports/blob/1b0d3e2/ed/idl/html.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/588806523 -- wpt-commits: cda37f54a334dac94120a696bbe6455eb171735b wpt-pr: 19175 --- .../web-platform/tests/interfaces/html.idl | 364 +++++++++++------- 1 file changed, 221 insertions(+), 143 deletions(-) diff --git a/testing/web-platform/tests/interfaces/html.idl b/testing/web-platform/tests/interfaces/html.idl index d856cd578aa0..8347c5d4cdc9 100644 --- a/testing/web-platform/tests/interfaces/html.idl +++ b/testing/web-platform/tests/interfaces/html.idl @@ -100,9 +100,10 @@ partial interface mixin DocumentOrShadowRoot { readonly attribute Element? activeElement; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLElement : Element { + [HTMLConstructor] constructor(); + // metadata attributes [CEReactions] attribute DOMString title; [CEReactions] attribute DOMString lang; @@ -128,9 +129,10 @@ HTMLElement includes DocumentAndElementEventHandlers; HTMLElement includes ElementContentEditable; HTMLElement includes HTMLOrSVGElement; -// Note: intentionally not [HTMLConstructor] [Exposed=Window] -interface HTMLUnknownElement : HTMLElement { }; +interface HTMLUnknownElement : HTMLElement { + // Note: intentionally no [HTMLConstructor] +}; interface mixin HTMLOrSVGElement { [SameObject] readonly attribute DOMStringMap dataset; @@ -150,32 +152,37 @@ interface DOMStringMap { [CEReactions] deleter void (DOMString name); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLHtmlElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] -interface HTMLHeadElement : HTMLElement {}; +[Exposed=Window] +interface HTMLHeadElement : HTMLElement { + [HTMLConstructor] constructor(); +}; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTitleElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString text; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLBaseElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString href; [CEReactions] attribute DOMString target; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLLinkElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString href; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] attribute DOMString rel; @@ -194,9 +201,10 @@ interface HTMLLinkElement : HTMLElement { }; HTMLLinkElement includes LinkStyle; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLMetaElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString httpEquiv; [CEReactions] attribute DOMString content; @@ -204,50 +212,57 @@ interface HTMLMetaElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLStyleElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString media; // also has obsolete members }; HTMLStyleElement includes LinkStyle; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLBodyElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; HTMLBodyElement includes WindowEventHandlers; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLHeadingElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLParagraphElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLHRElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLPreElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLQuoteElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString cite; }; @@ -261,9 +276,10 @@ interface HTMLOListElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLUListElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; @@ -282,21 +298,24 @@ interface HTMLLIElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDListElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDivElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLAnchorElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString target; [CEReactions] attribute DOMString download; [CEReactions] attribute USVString ping; @@ -313,9 +332,10 @@ interface HTMLAnchorElement : HTMLElement { }; HTMLAnchorElement includes HTMLHyperlinkElementUtils; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDataElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString value; }; @@ -325,13 +345,15 @@ interface HTMLTimeElement : HTMLElement { [CEReactions] attribute DOMString dateTime; }; -[Exposed=Window, - HTMLConstructor] -interface HTMLSpanElement : HTMLElement {}; +[Exposed=Window] +interface HTMLSpanElement : HTMLElement { + [HTMLConstructor] constructor(); +}; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLBRElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; @@ -349,20 +371,23 @@ interface mixin HTMLHyperlinkElementUtils { [CEReactions] attribute USVString hash; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLModElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString cite; [CEReactions] attribute DOMString dateTime; }; -[Exposed=Window, - HTMLConstructor] -interface HTMLPictureElement : HTMLElement {}; +[Exposed=Window] +interface HTMLPictureElement : HTMLElement { + [HTMLConstructor] constructor(); +}; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLSourceElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute USVString srcset; @@ -395,9 +420,10 @@ interface HTMLImageElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLIFrameElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; [CEReactions] attribute DOMString srcdoc; [CEReactions] attribute DOMString name; @@ -415,9 +441,10 @@ interface HTMLIFrameElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLEmbedElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString width; @@ -427,9 +454,10 @@ interface HTMLEmbedElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLObjectElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString data; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString name; @@ -451,9 +479,10 @@ interface HTMLObjectElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLParamElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString value; @@ -476,9 +505,10 @@ interface HTMLVideoElement : HTMLMediaElement { NamedConstructor=Audio(optional DOMString src)] interface HTMLAudioElement : HTMLMediaElement {}; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTrackElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString kind; [CEReactions] attribute USVString src; [CEReactions] attribute DOMString srclang; @@ -679,16 +709,18 @@ dictionary TrackEventInit : EventInit { (VideoTrack or AudioTrack or TextTrack)? track = null; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLMapElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; [SameObject] readonly attribute HTMLCollection areas; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLAreaElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString alt; [CEReactions] attribute DOMString coords; [CEReactions] attribute DOMString shape; @@ -703,9 +735,10 @@ interface HTMLAreaElement : HTMLElement { }; HTMLAreaElement includes HTMLHyperlinkElementUtils; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute HTMLTableCaptionElement? caption; HTMLTableCaptionElement createCaption(); [CEReactions] void deleteCaption(); @@ -728,23 +761,26 @@ interface HTMLTableElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableCaptionElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableColElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute unsigned long span; // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableSectionElement : HTMLElement { + [HTMLConstructor] constructor(); + [SameObject] readonly attribute HTMLCollection rows; HTMLTableRowElement insertRow(optional long index = -1); [CEReactions] void deleteRow(long index); @@ -752,9 +788,10 @@ interface HTMLTableSectionElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableRowElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute long rowIndex; readonly attribute long sectionRowIndex; [SameObject] readonly attribute HTMLCollection cells; @@ -764,9 +801,10 @@ interface HTMLTableRowElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTableCellElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute unsigned long colSpan; [CEReactions] attribute unsigned long rowSpan; [CEReactions] attribute DOMString headers; @@ -807,17 +845,19 @@ interface HTMLFormElement : HTMLElement { boolean reportValidity(); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLLabelElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString htmlFor; readonly attribute HTMLElement? control; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLInputElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString accept; [CEReactions] attribute DOMString alt; [CEReactions] attribute DOMString autocomplete; @@ -878,9 +918,10 @@ interface HTMLInputElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLButtonElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute USVString formAction; @@ -902,9 +943,10 @@ interface HTMLButtonElement : HTMLElement { readonly attribute NodeList labels; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLSelectElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; @@ -938,15 +980,17 @@ interface HTMLSelectElement : HTMLElement { readonly attribute NodeList labels; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDataListElement : HTMLElement { + [HTMLConstructor] constructor(); + [SameObject] readonly attribute HTMLCollection options; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLOptGroupElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; [CEReactions] attribute DOMString label; }; @@ -966,9 +1010,10 @@ interface HTMLOptionElement : HTMLElement { readonly attribute long index; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTextAreaElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute unsigned long cols; [CEReactions] attribute DOMString dirName; @@ -1006,9 +1051,10 @@ interface HTMLTextAreaElement : HTMLElement { void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLOutputElement : HTMLElement { + [HTMLConstructor] constructor(); + [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString name; @@ -1027,18 +1073,20 @@ interface HTMLOutputElement : HTMLElement { readonly attribute NodeList labels; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLProgressElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute double value; [CEReactions] attribute double max; readonly attribute double position; readonly attribute NodeList labels; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLMeterElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute double value; [CEReactions] attribute double min; [CEReactions] attribute double max; @@ -1048,9 +1096,10 @@ interface HTMLMeterElement : HTMLElement { readonly attribute NodeList labels; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLFieldSetElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString name; @@ -1067,9 +1116,10 @@ interface HTMLFieldSetElement : HTMLElement { void setCustomValidity(DOMString error); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLLegendElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLFormElement? form; // also has obsolete members @@ -1107,15 +1157,17 @@ dictionary FormDataEventInit : EventInit { required FormData formData; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDetailsElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean open; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDialogElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean open; attribute DOMString returnValue; [CEReactions] void show(); @@ -1123,9 +1175,10 @@ interface HTMLDialogElement : HTMLElement { [CEReactions] void close(optional DOMString returnValue); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLScriptElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute boolean noModule; @@ -1139,15 +1192,17 @@ interface HTMLScriptElement : HTMLElement { // also has obsolete members }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLTemplateElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute DocumentFragment content; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLSlotElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; sequence assignedNodes(optional AssignedNodesOptions options = {}); sequence assignedElements(optional AssignedNodesOptions options = {}); @@ -1395,19 +1450,21 @@ interface TextMetrics { readonly attribute double ideographicBaseline; }; -[Constructor(unsigned long sw, unsigned long sh), - Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh), - Exposed=(Window,Worker), +[Exposed=(Window,Worker), Serializable] interface ImageData { + constructor(unsigned long sw, unsigned long sh); + constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh); + readonly attribute unsigned long width; readonly attribute unsigned long height; readonly attribute Uint8ClampedArray data; }; -[Constructor(optional (Path2D or DOMString) path), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface Path2D { + constructor(optional (Path2D or DOMString) path); + void addPath(Path2D path, optional DOMMatrix2DInit transform = {}); }; Path2D includes CanvasPath; @@ -1431,8 +1488,10 @@ dictionary ImageEncodeOptions { enum OffscreenRenderingContextId { "2d", "bitmaprenderer", "webgl", "webgl2" }; -[Constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height), Exposed=(Window,Worker), Transferable] +[Exposed=(Window,Worker), Transferable] interface OffscreenCanvas : EventTarget { + constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height); + attribute [EnforceRange] unsigned long long width; attribute [EnforceRange] unsigned long long height; @@ -1737,9 +1796,10 @@ interface mixin NavigatorOnLine { readonly attribute boolean onLine; }; -[Constructor(DOMString type, optional ErrorEventInit eventInitDict = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface ErrorEvent : Event { + constructor(DOMString type, optional ErrorEventInit eventInitDict = {}); + readonly attribute DOMString message; readonly attribute USVString filename; readonly attribute unsigned long lineno; @@ -1755,8 +1815,10 @@ dictionary ErrorEventInit : EventInit { any error = null; }; -[Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface PromiseRejectionEvent : Event { + constructor(DOMString type, PromiseRejectionEventInit eventInitDict); + readonly attribute Promise promise; readonly attribute any reason; }; @@ -1834,6 +1896,7 @@ interface mixin GlobalEventHandlers { attribute EventHandler onseeked; attribute EventHandler onseeking; attribute EventHandler onselect; + attribute EventHandler onslotchange; attribute EventHandler onstalled; attribute EventHandler onsubmit; attribute EventHandler onsuspend; @@ -2012,9 +2075,10 @@ interface mixin AnimationFrameProvider { Window includes AnimationFrameProvider; DedicatedWorkerGlobalScope includes AnimationFrameProvider; -[Constructor(DOMString type, optional MessageEventInit eventInitDict = {}), - Exposed=(Window,Worker,AudioWorklet)] +[Exposed=(Window,Worker,AudioWorklet)] interface MessageEvent : Event { + constructor(DOMString type, optional MessageEventInit eventInitDict = {}); + readonly attribute any data; readonly attribute USVString origin; readonly attribute DOMString lastEventId; @@ -2034,8 +2098,10 @@ dictionary MessageEventInit : EventInit { typedef (WindowProxy or MessagePort or ServiceWorker) MessageEventSource; -[Constructor(USVString url, optional EventSourceInit eventSourceInitDict = {}), Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface EventSource : EventTarget { + constructor(USVString url, optional EventSourceInit eventSourceInitDict = {}); + readonly attribute USVString url; readonly attribute boolean withCredentials; @@ -2057,8 +2123,10 @@ dictionary EventSourceInit { }; enum BinaryType { "blob", "arraybuffer" }; -[Constructor(USVString url, optional (DOMString or sequence) protocols = []), Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface WebSocket : EventTarget { + constructor(USVString url, optional (DOMString or sequence) protocols = []); + readonly attribute USVString url; // ready state @@ -2086,9 +2154,10 @@ interface WebSocket : EventTarget { void send(ArrayBufferView data); }; -[Constructor(DOMString type, optional CloseEventInit eventInitDict = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface CloseEvent : Event { + constructor(DOMString type, optional CloseEventInit eventInitDict = {}); + readonly attribute boolean wasClean; readonly attribute unsigned short code; readonly attribute USVString reason; @@ -2122,8 +2191,10 @@ dictionary PostMessageOptions { sequence transfer = []; }; -[Constructor(DOMString name), Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface BroadcastChannel : EventTarget { + constructor(DOMString name); + readonly attribute DOMString name; void postMessage(any message); void close(); @@ -2172,9 +2243,10 @@ interface mixin AbstractWorker { attribute EventHandler onerror; }; -[Constructor(USVString scriptURL, optional WorkerOptions options = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface Worker : EventTarget { + constructor(USVString scriptURL, optional WorkerOptions options = {}); + void terminate(); void postMessage(any message, sequence transfer); @@ -2193,9 +2265,10 @@ enum WorkerType { "classic", "module" }; Worker includes AbstractWorker; -[Constructor(USVString scriptURL, optional (DOMString or WorkerOptions) options = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface SharedWorker : EventTarget { + constructor(USVString scriptURL, optional (DOMString or WorkerOptions) options = {}); + readonly attribute MessagePort port; }; SharedWorker includes AbstractWorker; @@ -2264,9 +2337,10 @@ dictionary StorageEventInit : EventInit { Storage? storageArea = null; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLMarqueeElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString behavior; [CEReactions] attribute DOMString bgColor; [CEReactions] attribute DOMString direction; @@ -2287,17 +2361,19 @@ interface HTMLMarqueeElement : HTMLElement { void stop(); }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLFrameSetElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString cols; [CEReactions] attribute DOMString rows; }; HTMLFrameSetElement includes WindowEventHandlers; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLFrameElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString scrolling; [CEReactions] attribute USVString src; @@ -2348,9 +2424,10 @@ partial interface HTMLTableColElement { [CEReactions] attribute DOMString width; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLDirectoryElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean compact; }; @@ -2367,9 +2444,10 @@ partial interface HTMLEmbedElement { [CEReactions] attribute DOMString name; }; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLFontElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute [TreatNullAs=EmptyString] DOMString color; [CEReactions] attribute DOMString face; [CEReactions] attribute DOMString size; From 9b2787a8975f3ba01dc103045d30d0a946b98229 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Fri, 20 Sep 2019 08:22:20 +0000 Subject: [PATCH 65/75] Bug 1582641 [wpt PR 19175] - Update wpt metadata, a=testonly wpt-pr: 19175 wpt-type: metadata --- .../meta/html/dom/idlharness.https.html.ini | 27 +++++++++++++++++++ .../event-handler-all-global-events.html.ini | 12 +++++++++ ...h-global-event-handlers.tentative.html.ini | 15 +++++++++++ 3 files changed, 54 insertions(+) diff --git a/testing/web-platform/meta/html/dom/idlharness.https.html.ini b/testing/web-platform/meta/html/dom/idlharness.https.html.ini index 9c955ded9be5..890e9ade99f8 100644 --- a/testing/web-platform/meta/html/dom/idlharness.https.html.ini +++ b/testing/web-platform/meta/html/dom/idlharness.https.html.ini @@ -782,6 +782,9 @@ [SVGElement interface: attribute autofocus] expected: FAIL + [SVGElement interface: attribute onslotchange] + expected: FAIL + [idlharness.https.html?include=(Document|Window)] [Document interface: documentWithHandlers must inherit property "onsecuritypolicyviolation" with the proper type] @@ -861,6 +864,24 @@ [Window interface: attribute oncancel] expected: FAIL + [Document interface: new Document() must inherit property "onslotchange" with the proper type] + expected: FAIL + + [Document interface: documentWithHandlers must inherit property "onslotchange" with the proper type] + expected: FAIL + + [Window interface: window must inherit property "onslotchange" with the proper type] + expected: FAIL + + [Document interface: attribute onslotchange] + expected: FAIL + + [Window interface: attribute onslotchange] + expected: FAIL + + [Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type] + expected: FAIL + [idlharness.https.html?include=HTML.*] [HTMLDialogElement interface: operation close(DOMString)] @@ -1139,3 +1160,9 @@ [HTMLElement interface: attribute autofocus] expected: FAIL + [HTMLElement interface: attribute onslotchange] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onslotchange" with the proper type] + expected: FAIL + diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini index 6c46f4772781..6ab889562848 100644 --- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini +++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-all-global-events.html.ini @@ -26,3 +26,15 @@ [GlobalEventHandlers] expected: FAIL + [onslotchange: must be on the appropriate locations for GlobalEventHandlers] + expected: FAIL + + [onslotchange: the content attribute must be compiled into a function as the corresponding property] + expected: FAIL + + [onslotchange: the default value must be null] + expected: FAIL + + [onslotchange: the content attribute must execute when an event is dispatched] + expected: FAIL + diff --git a/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini b/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini index 2d6d05a02109..90e3771047c6 100644 --- a/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini +++ b/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini @@ -926,3 +926,18 @@ [onkeyup: dispatching an Event at a element must trigger element.onkeyup] expected: FAIL + [onslotchange: the default value must be null] + expected: FAIL + + [onslotchange: dynamic changes on the attribute] + expected: FAIL + + [onslotchange: must be on the appropriate locations for GlobalEventHandlers] + expected: FAIL + + [onslotchange: the content attribute must be compiled into a function as the corresponding property] + expected: FAIL + + [onslotchange: dispatching an Event at a element must trigger element.onslotchange] + expected: TIMEOUT + From f9920a6eda5d1c0500ff95c334934ff90339916a Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 25 Sep 2019 16:59:34 +0000 Subject: [PATCH 66/75] Bug 1583554 [wpt PR 19254] - Update urllib3 to 1.25.6, a=testonly Automatic update from web-platform-tests Update urllib3 from 1.25.5 to 1.25.6 -- wpt-commits: 24fa119597617d941c2bf113c4410bdc0612edb4 wpt-pr: 19254 --- testing/web-platform/tests/tools/wptrunner/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/tools/wptrunner/requirements.txt b/testing/web-platform/tests/tools/wptrunner/requirements.txt index 3584c93a1997..9eeb836230c3 100644 --- a/testing/web-platform/tests/tools/wptrunner/requirements.txt +++ b/testing/web-platform/tests/tools/wptrunner/requirements.txt @@ -3,6 +3,6 @@ mozinfo==1.1.0 mozlog==4.2.0 mozdebug==0.1.1 pillow==6.1.0 -urllib3[secure]==1.25.5 +urllib3[secure]==1.25.6 requests==2.22.0 six==1.12.0 From 08eb67f9806137a41e58e976854bc50ed62f4491 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:39 +0000 Subject: [PATCH 67/75] Bug 1583760 [wpt PR 19291] - Update interfaces/scroll-animations.idl, a=testonly Automatic update from web-platform-tests Update interfaces/scroll-animations.idl (#19291) Source: https://github.com/tidoust/reffy-reports/blob/44cfbb4/ed/idl/scroll-animations.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589347016 -- wpt-commits: 7ef3abc555d328469250febc838d42546c069ff0 wpt-pr: 19291 --- testing/web-platform/tests/interfaces/scroll-animations.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/web-platform/tests/interfaces/scroll-animations.idl b/testing/web-platform/tests/interfaces/scroll-animations.idl index f2560d9ffc88..8fd67a7af7bb 100644 --- a/testing/web-platform/tests/interfaces/scroll-animations.idl +++ b/testing/web-platform/tests/interfaces/scroll-animations.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into reffy-reports // (https://github.com/tidoust/reffy-reports) -// Source: Scroll-linked Animations (https://wicg.github.io/scroll-animations/) +// Source: Scroll-linked Animations (https://drafts.csswg.org/scroll-animations-1/) enum ScrollDirection { "block", From 9ef434937c9829b3d227a7753d2208b87a60a109 Mon Sep 17 00:00:00 2001 From: autofoolip Date: Wed, 25 Sep 2019 16:59:44 +0000 Subject: [PATCH 68/75] Bug 1583199 [wpt PR 19221] - Update interfaces/dom.idl, a=testonly Automatic update from web-platform-tests Update interfaces/dom.idl (#19221) Source: https://github.com/tidoust/reffy-reports/blob/8fb603b/ed/idl/dom.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/589100816 -- wpt-commits: 6af372ae6d47e74f96052e51f13da422171723a4 wpt-pr: 19221 --- testing/web-platform/tests/interfaces/dom.idl | 62 ++++++++++++------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/testing/web-platform/tests/interfaces/dom.idl b/testing/web-platform/tests/interfaces/dom.idl index 03a0201b16fe..d1557a676ef0 100644 --- a/testing/web-platform/tests/interfaces/dom.idl +++ b/testing/web-platform/tests/interfaces/dom.idl @@ -3,9 +3,10 @@ // (https://github.com/tidoust/reffy-reports) // Source: DOM Standard (https://dom.spec.whatwg.org/) -[Constructor(DOMString type, optional EventInit eventInitDict = {}), - Exposed=(Window,Worker,AudioWorklet)] +[Exposed=(Window,Worker,AudioWorklet)] interface Event { + constructor(DOMString type, optional EventInit eventInitDict = {}); + readonly attribute DOMString type; readonly attribute EventTarget? target; readonly attribute EventTarget? srcElement; // historical @@ -45,9 +46,10 @@ partial interface Window { [Replaceable] readonly attribute any event; // historical }; -[Constructor(DOMString type, optional CustomEventInit eventInitDict = {}), - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface CustomEvent : Event { + constructor(DOMString type, optional CustomEventInit eventInitDict = {}); + readonly attribute any detail; void initCustomEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional any detail = null); @@ -57,9 +59,10 @@ dictionary CustomEventInit : EventInit { any detail = null; }; -[Constructor, - Exposed=(Window,Worker,AudioWorklet)] +[Exposed=(Window,Worker,AudioWorklet)] interface EventTarget { + constructor(); + void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options = {}); void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options = {}); boolean dispatchEvent(Event event); @@ -78,13 +81,15 @@ dictionary AddEventListenerOptions : EventListenerOptions { boolean once = false; }; -[Constructor, - Exposed=(Window,Worker)] +[Exposed=(Window,Worker)] interface AbortController { + constructor(); + [SameObject] readonly attribute AbortSignal signal; void abort(); }; + [Exposed=(Window,Worker)] interface AbortSignal : EventTarget { readonly attribute boolean aborted; @@ -155,9 +160,10 @@ interface HTMLCollection { getter Element? namedItem(DOMString name); }; -[Constructor(MutationCallback callback), - Exposed=Window] +[Exposed=Window] interface MutationObserver { + constructor(MutationCallback callback); + void observe(Node target, optional MutationObserverInit options = {}); void disconnect(); sequence takeRecords(); @@ -250,9 +256,10 @@ dictionary GetRootNodeOptions { boolean composed = false; }; -[Constructor, - Exposed=Window] +[Exposed=Window] interface Document : Node { + constructor(); + [SameObject] readonly attribute DOMImplementation implementation; readonly attribute USVString URL; readonly attribute USVString documentURI; @@ -315,15 +322,16 @@ interface DocumentType : Node { readonly attribute DOMString systemId; }; -[Constructor, - Exposed=Window] +[Exposed=Window] interface DocumentFragment : Node { + constructor(); }; [Exposed=Window] interface ShadowRoot : DocumentFragment { readonly attribute ShadowRootMode mode; readonly attribute Element host; + attribute EventHandler onslotchange; }; enum ShadowRootMode { "open", "closed" }; @@ -376,6 +384,7 @@ interface Element : Node { dictionary ShadowRootInit { required ShadowRootMode mode; + boolean delegatesFocus = false; }; [Exposed=Window, @@ -414,12 +423,14 @@ interface CharacterData : Node { void replaceData(unsigned long offset, unsigned long count, DOMString data); }; -[Constructor(optional DOMString data = ""), - Exposed=Window] +[Exposed=Window] interface Text : CharacterData { + constructor(optional DOMString data = ""); + [NewObject] Text splitText(unsigned long offset); readonly attribute DOMString wholeText; }; + [Exposed=Window] interface CDATASection : Text { }; @@ -427,9 +438,9 @@ interface CDATASection : Text { interface ProcessingInstruction : CharacterData { readonly attribute DOMString target; }; -[Constructor(optional DOMString data = ""), - Exposed=Window] +[Exposed=Window] interface Comment : CharacterData { + constructor(optional DOMString data = ""); }; [Exposed=Window] @@ -448,14 +459,15 @@ dictionary StaticRangeInit { required unsigned long endOffset; }; -[Constructor(StaticRangeInit init), - Exposed=Window] +[Exposed=Window] interface StaticRange : AbstractRange { + constructor(StaticRangeInit init); }; -[Constructor, - Exposed=Window] +[Exposed=Window] interface Range : AbstractRange { + constructor(); + readonly attribute Node commonAncestorContainer; void setStart(Node node, unsigned long offset); @@ -602,7 +614,9 @@ interface mixin XPathEvaluatorBase { }; Document includes XPathEvaluatorBase; -[Exposed=Window, Constructor] -interface XPathEvaluator {}; +[Exposed=Window] +interface XPathEvaluator { + constructor(); +}; XPathEvaluator includes XPathEvaluatorBase; From b29280db161baf2d8614a08c17ce29e8d6ae8ec9 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 23 Sep 2019 14:51:04 +0000 Subject: [PATCH 69/75] Bug 1583199 [wpt PR 19221] - Update wpt metadata, a=testonly wpt-pr: 19221 wpt-type: metadata --- testing/web-platform/meta/dom/idlharness.window.js.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testing/web-platform/meta/dom/idlharness.window.js.ini b/testing/web-platform/meta/dom/idlharness.window.js.ini index f82913da57f4..088ec65dc1d5 100644 --- a/testing/web-platform/meta/dom/idlharness.window.js.ini +++ b/testing/web-platform/meta/dom/idlharness.window.js.ini @@ -16,3 +16,6 @@ [StaticRange interface object length] expected: FAIL + [ShadowRoot interface: attribute onslotchange] + expected: FAIL + From 881a543c77ab19110696555962683e4608ec3ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Wed, 25 Sep 2019 16:59:52 +0000 Subject: [PATCH 70/75] Bug 1583791 [wpt PR 19295] - Rename CSS Animation Worklet IDL file to match reffy-reports, a=testonly Automatic update from web-platform-tests Rename CSS Animation Worklet IDL file to match reffy-reports (#19295) Renamed in https://github.com/tidoust/reffy-reports/commit/b82ba0b160f3e2ddf4a96ac838c52894021f6f85. Closes https://github.com/web-platform-tests/wpt/pull/19287. Closes https://github.com/web-platform-tests/wpt/pull/19288. -- wpt-commits: 0a9614ff872952954debd9500162ed071b19935e wpt-pr: 19295 --- testing/web-platform/tests/animation-worklet/META.yml | 2 +- testing/web-platform/tests/animation-worklet/idlharness.any.js | 2 +- .../{animation-worklet.idl => css-animation-worklet.idl} | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename testing/web-platform/tests/interfaces/{animation-worklet.idl => css-animation-worklet.idl} (92%) diff --git a/testing/web-platform/tests/animation-worklet/META.yml b/testing/web-platform/tests/animation-worklet/META.yml index c69189658437..7a53b4d76d2c 100644 --- a/testing/web-platform/tests/animation-worklet/META.yml +++ b/testing/web-platform/tests/animation-worklet/META.yml @@ -1,4 +1,4 @@ -spec: https://wicg.github.io/animation-worklet/ +spec: https://drafts.css-houdini.org/css-animationworklet/ suggested_reviewers: - flackr - majido diff --git a/testing/web-platform/tests/animation-worklet/idlharness.any.js b/testing/web-platform/tests/animation-worklet/idlharness.any.js index e821a2fee8a3..efd2fdeb98dc 100644 --- a/testing/web-platform/tests/animation-worklet/idlharness.any.js +++ b/testing/web-platform/tests/animation-worklet/idlharness.any.js @@ -6,7 +6,7 @@ // https://wicg.github.io/animation-worklet/ idl_test( - ['animation-worklet'], + ['css-animation-worklet'], ['worklets', 'web-animations', 'html', 'cssom', 'dom'], idl_array => { idl_array.add_objects({ diff --git a/testing/web-platform/tests/interfaces/animation-worklet.idl b/testing/web-platform/tests/interfaces/css-animation-worklet.idl similarity index 92% rename from testing/web-platform/tests/interfaces/animation-worklet.idl rename to testing/web-platform/tests/interfaces/css-animation-worklet.idl index 02deca73a3a3..4aca84e5a024 100644 --- a/testing/web-platform/tests/interfaces/animation-worklet.idl +++ b/testing/web-platform/tests/interfaces/css-animation-worklet.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into reffy-reports // (https://github.com/tidoust/reffy-reports) -// Source: CSS Animation Worklet API (https://wicg.github.io/animation-worklet/) +// Source: CSS Animation Worklet API (https://drafts.css-houdini.org/css-animationworklet-1/) [Exposed=Window] partial namespace CSS { From e54a920fb98cb1255b2ebefa52e283dde222af27 Mon Sep 17 00:00:00 2001 From: Xianzhu Wang Date: Wed, 25 Sep 2019 16:59:58 +0000 Subject: [PATCH 71/75] Bug 1583584 [wpt PR 19260] - Don't fold SaveAlphaLayer into DrawTextBlob, a=testonly Automatic update from web-platform-tests Don't fold SaveAlphaLayer into DrawTextBlob SkPaint::drawTextBlob applies alpha on each individual glyph, so we should keep SaveAlphaLayer to ensure the alpha is applied atomically on the whole text blob. Bug: 1006140 Change-Id: I8b1d1868a3423ed4f0ef6541cc8db354773dfb24 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1821944 Commit-Queue: Xianzhu Wang Reviewed-by: vmpstr Cr-Commit-Position: refs/heads/master@{#699621} -- Use /fonts/ahem.css to pass lint -- wpt-commits: 2805a5a862f54b9c5458f9fc8e73d5e51fb6220e, 7b3ea483aabbbc65dda011e6d4cfc35086338706 wpt-pr: 19260 --- .../css/css-color/opacity-overlapping-letters-ref.html | 3 +++ .../tests/css/css-color/opacity-overlapping-letters.html | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 testing/web-platform/tests/css/css-color/opacity-overlapping-letters-ref.html create mode 100644 testing/web-platform/tests/css/css-color/opacity-overlapping-letters.html diff --git a/testing/web-platform/tests/css/css-color/opacity-overlapping-letters-ref.html b/testing/web-platform/tests/css/css-color/opacity-overlapping-letters-ref.html new file mode 100644 index 000000000000..bab1f80f685f --- /dev/null +++ b/testing/web-platform/tests/css/css-color/opacity-overlapping-letters-ref.html @@ -0,0 +1,3 @@ + + +
X X X
diff --git a/testing/web-platform/tests/css/css-color/opacity-overlapping-letters.html b/testing/web-platform/tests/css/css-color/opacity-overlapping-letters.html new file mode 100644 index 000000000000..65ab3742de39 --- /dev/null +++ b/testing/web-platform/tests/css/css-color/opacity-overlapping-letters.html @@ -0,0 +1,6 @@ + + + + + +
XXXXX
From 81ac3e191bf713999711bb16e054720943713fe9 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 02:16:54 +0000 Subject: [PATCH 72/75] Bug 1583584 [wpt PR 19260] - Update wpt metadata, a=testonly wpt-pr: 19260 wpt-type: metadata --- .../meta/css/css-color/opacity-overlapping-letters.html.ini | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 testing/web-platform/meta/css/css-color/opacity-overlapping-letters.html.ini diff --git a/testing/web-platform/meta/css/css-color/opacity-overlapping-letters.html.ini b/testing/web-platform/meta/css/css-color/opacity-overlapping-letters.html.ini new file mode 100644 index 000000000000..d7938e584c35 --- /dev/null +++ b/testing/web-platform/meta/css/css-color/opacity-overlapping-letters.html.ini @@ -0,0 +1,2 @@ +[opacity-overlapping-letters.html] + expected: FAIL From 6bc6c5d47bf308a47437bba30aa37f8244825cb3 Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Wed, 25 Sep 2019 17:00:06 +0000 Subject: [PATCH 73/75] Bug 1582511 [wpt PR 19165] - Add missing worklet referrer tests, a=testonly Automatic update from web-platform-tests Add missing worklet referrer tests This CL adds more web-platform-tests for the `Referer` on worklet descendant requests. This CL introduces tests where we fetch a same-origin descendant script from a cross-origin worklet script served with varying referrer policies. The tests are similar to those introduced in crrev.com/c/1809205 for module scripts, and will pass once crrev.com/c/1808663 is merged. R=ikilpatrick@chromium.org, kouhei@chromium.org Bug: 786862,1004083 Change-Id: I4425be4264424b52e4ec307513a404541869f2a1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1813122 Reviewed-by: Ian Kilpatrick Commit-Queue: Dominic Farolino Cr-Commit-Position: refs/heads/master@{#699351} -- Add long timeout to worklet referrer tests They take close to 10 seconds on Firefox: https://github.com/web-platform-tests/wpt/pull/19165#issuecomment-534985874 -- wpt-commits: 98c89472a9e6359bfac5b40b05188c9c5b39be79, eaa551911f12c5c526f56cafd0c7ab24667ead3c wpt-pr: 19165 --- .../animation-worklet-referrer.https.html | 1 + .../audio-worklet-referrer.https.html | 1 + .../layout-worklet-referrer.https.html | 1 + .../paint-worklet-referrer.https.html | 1 + ...r-worklet-script-from-remote-origin.sub.js | 2 ++ ...t-script-from-remote-origin.sub.js.headers | 1 + .../worklets/resources/referrer-tests.js | 32 +++++++++++++++++++ .../worklets/resources/referrer-window.html | 9 ++++++ 8 files changed, 48 insertions(+) create mode 100644 testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js create mode 100644 testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js.headers diff --git a/testing/web-platform/tests/worklets/animation-worklet-referrer.https.html b/testing/web-platform/tests/worklets/animation-worklet-referrer.https.html index 494e06a84727..49933dea47d5 100644 --- a/testing/web-platform/tests/worklets/animation-worklet-referrer.https.html +++ b/testing/web-platform/tests/worklets/animation-worklet-referrer.https.html @@ -1,6 +1,7 @@ + diff --git a/testing/web-platform/tests/worklets/audio-worklet-referrer.https.html b/testing/web-platform/tests/worklets/audio-worklet-referrer.https.html index f258cd5a452d..61cb63d75ca6 100644 --- a/testing/web-platform/tests/worklets/audio-worklet-referrer.https.html +++ b/testing/web-platform/tests/worklets/audio-worklet-referrer.https.html @@ -1,6 +1,7 @@ + diff --git a/testing/web-platform/tests/worklets/layout-worklet-referrer.https.html b/testing/web-platform/tests/worklets/layout-worklet-referrer.https.html index cb383a935a2a..dc7b84b350c5 100644 --- a/testing/web-platform/tests/worklets/layout-worklet-referrer.https.html +++ b/testing/web-platform/tests/worklets/layout-worklet-referrer.https.html @@ -1,6 +1,7 @@ + diff --git a/testing/web-platform/tests/worklets/paint-worklet-referrer.https.html b/testing/web-platform/tests/worklets/paint-worklet-referrer.https.html index a4b5a6f498c2..8f3d82a1ddc6 100644 --- a/testing/web-platform/tests/worklets/paint-worklet-referrer.https.html +++ b/testing/web-platform/tests/worklets/paint-worklet-referrer.https.html @@ -1,6 +1,7 @@ + diff --git a/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js b/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js new file mode 100644 index 000000000000..33af2258ff35 --- /dev/null +++ b/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js @@ -0,0 +1,2 @@ +// Forward GET parameters to the server. +import '{{GET[requestor_origin]}}/worklets/resources/referrer-checker.py?referrer_policy={{GET[referrer_policy]}}&expected_referrer={{GET[expected_referrer]}}'; diff --git a/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js.headers b/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js.headers new file mode 100644 index 000000000000..cb762eff8068 --- /dev/null +++ b/testing/web-platform/tests/worklets/resources/import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js.headers @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/testing/web-platform/tests/worklets/resources/referrer-tests.js b/testing/web-platform/tests/worklets/resources/referrer-tests.js index 01b8e2ab57ac..b3c4a048f5a1 100644 --- a/testing/web-platform/tests/worklets/resources/referrer-tests.js +++ b/testing/web-platform/tests/worklets/resources/referrer-tests.js @@ -88,6 +88,7 @@ function runReferrerTests(workletType) { // Tests for descendant script fetch ----------------------------------------- + // Referrer policy: no-referrer. promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -106,6 +107,15 @@ function runReferrerTests(workletType) { }, 'Importing a remote-origin script from a same-origin worklet script ' + 'that has "no-referrer" referrer policy should not send referrer.'); + promise_test(() => { + return runReferrerTest({ workletType: workletType, + fetchType: 'descendant', + referrerPolicy: 'no-referrer', + scriptOrigins: { topLevel: 'remote', + descendant: 'same' } }); + }, 'Importing a same-origin script from a remote-origin worklet script ' + + 'that has "no-referrer" referrer policy should not send referrer.'); + promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -115,6 +125,7 @@ function runReferrerTests(workletType) { }, 'Importing a remote-origin script from a remote-origin worklet script ' + 'that has "no-referrer" referrer policy should not send referrer.'); + // Referrer policy: origin. promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -133,6 +144,15 @@ function runReferrerTests(workletType) { }, 'Importing a remote-origin script from a same-origin worklet script ' + 'that has "origin" referrer policy should send referrer.'); + promise_test(() => { + return runReferrerTest({ workletType: workletType, + fetchType: 'descendant', + referrerPolicy: 'origin', + scriptOrigins: { topLevel: 'remote', + descendant: 'same' } }); + }, 'Importing a same-origin script from a remote-origin worklet script ' + + 'that has "origin" referrer policy should send referrer.'); + promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -142,6 +162,7 @@ function runReferrerTests(workletType) { }, 'Importing a remote-origin script from a remote-origin worklet script ' + 'that has "origin" referrer policy should send referrer.'); + // Referrer policy: same-origin. promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -160,6 +181,15 @@ function runReferrerTests(workletType) { }, 'Importing a remote-origin script from a same-origin worklet script ' + 'that has "same-origin" referrer policy should not send referrer.'); + promise_test(() => { + return runReferrerTest({ workletType: workletType, + fetchType: 'descendant', + referrerPolicy: 'same-origin', + scriptOrigins: { topLevel: 'remote', + descendant: 'same' } }); + }, 'Importing a same-origin script from a remote-origin worklet script ' + + 'that has "same-origin" referrer policy should send referrer.'); + promise_test(() => { return runReferrerTest({ workletType: workletType, fetchType: 'descendant', @@ -168,4 +198,6 @@ function runReferrerTests(workletType) { descendant: 'remote' } }); }, 'Importing a remote-origin script from a remote-origin worklet script ' + 'that has "same-origin" referrer policy should not send referrer.'); + + // TODO(domfarolino): Add tests for more referrer policies. } diff --git a/testing/web-platform/tests/worklets/resources/referrer-window.html b/testing/web-platform/tests/worklets/resources/referrer-window.html index 4817f0452a29..934e3dc41b1c 100644 --- a/testing/web-platform/tests/worklets/resources/referrer-window.html +++ b/testing/web-platform/tests/worklets/resources/referrer-window.html @@ -31,6 +31,14 @@ function createScriptURLForDecendant(scriptOrigins) { 'import-remote-origin-referrer-checker-worklet-script.sub.js', location.href); } + if (scriptOrigins.topLevel === 'remote' && + scriptOrigins.descendant === 'same') { + url = new URL( + get_host_info().HTTPS_REMOTE_ORIGIN + + '/worklets/resources/' + + 'import-same-origin-referrer-checker-worklet-script-from-remote-origin.sub.js'); + return url; + } if (scriptOrigins.topLevel === 'remote' && scriptOrigins.descendant === 'remote') { return new URL( @@ -88,6 +96,7 @@ window.onmessage = e => { } const params = new URLSearchParams; + params.append('requestor_origin', document.location.origin); params.append('referrer_policy', referrerPolicy); params.append('expected_referrer', expectedReferrer); From f0e6654f4c34e553c2a57bbb48a65024af2f2732 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 14:23:27 +0000 Subject: [PATCH 74/75] Bug 1582511 [wpt PR 19165] - Update wpt metadata, a=testonly wpt-pr: 19165 wpt-type: metadata --- .../worklets/animation-worklet-referrer.https.html.ini | 9 +++++++++ .../meta/worklets/audio-worklet-referrer.https.html.ini | 9 +++++++++ .../meta/worklets/layout-worklet-referrer.https.html.ini | 9 +++++++++ .../meta/worklets/paint-worklet-referrer.https.html.ini | 9 +++++++++ 4 files changed, 36 insertions(+) diff --git a/testing/web-platform/meta/worklets/animation-worklet-referrer.https.html.ini b/testing/web-platform/meta/worklets/animation-worklet-referrer.https.html.ini index 408a8d77c271..dbe578e76489 100644 --- a/testing/web-platform/meta/worklets/animation-worklet-referrer.https.html.ini +++ b/testing/web-platform/meta/worklets/animation-worklet-referrer.https.html.ini @@ -89,3 +89,12 @@ [Importing a remote-origin script from a remote-origin worklet script that has "same-origin" referrer policy.] expected: FAIL + [Importing a same-origin script from a remote-origin worklet script that has "origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "same-origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "no-referrer" referrer policy should not send referrer.] + expected: FAIL + diff --git a/testing/web-platform/meta/worklets/audio-worklet-referrer.https.html.ini b/testing/web-platform/meta/worklets/audio-worklet-referrer.https.html.ini index cf256da29c66..ee46b1075f06 100644 --- a/testing/web-platform/meta/worklets/audio-worklet-referrer.https.html.ini +++ b/testing/web-platform/meta/worklets/audio-worklet-referrer.https.html.ini @@ -98,3 +98,12 @@ expected: if release_or_beta: FAIL + [Importing a same-origin script from a remote-origin worklet script that has "origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "same-origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "no-referrer" referrer policy should not send referrer.] + expected: FAIL + diff --git a/testing/web-platform/meta/worklets/layout-worklet-referrer.https.html.ini b/testing/web-platform/meta/worklets/layout-worklet-referrer.https.html.ini index 45218ed8c646..d2179301b576 100644 --- a/testing/web-platform/meta/worklets/layout-worklet-referrer.https.html.ini +++ b/testing/web-platform/meta/worklets/layout-worklet-referrer.https.html.ini @@ -89,3 +89,12 @@ [Importing a remote-origin script from a remote-origin worklet script that has "same-origin" referrer policy.] expected: FAIL + [Importing a same-origin script from a remote-origin worklet script that has "origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "same-origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "no-referrer" referrer policy should not send referrer.] + expected: FAIL + diff --git a/testing/web-platform/meta/worklets/paint-worklet-referrer.https.html.ini b/testing/web-platform/meta/worklets/paint-worklet-referrer.https.html.ini index 2142623fb448..403be0ff3e3b 100644 --- a/testing/web-platform/meta/worklets/paint-worklet-referrer.https.html.ini +++ b/testing/web-platform/meta/worklets/paint-worklet-referrer.https.html.ini @@ -89,3 +89,12 @@ [Importing a remote-origin script from a remote-origin worklet script that has "same-origin" referrer policy.] expected: FAIL + [Importing a same-origin script from a remote-origin worklet script that has "origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "same-origin" referrer policy should send referrer.] + expected: FAIL + + [Importing a same-origin script from a remote-origin worklet script that has "no-referrer" referrer policy should not send referrer.] + expected: FAIL + From 6be0f2c1f739a2ee77522753b16050ddd2d1df9a Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Wed, 25 Sep 2019 17:00:26 +0000 Subject: [PATCH 75/75] Bug 1583919 - [wpt-sync] Update web-platform-tests to eaa551911f12c5c526f56cafd0c7ab24667ead3c, a=testonly MANUAL PUSH: wpt sync bot wpt-head: eaa551911f12c5c526f56cafd0c7ab24667ead3c wpt-type: landing --- testing/web-platform/meta/FileAPI/__dir__.ini | 1 + .../securitypolicyviolation/__dir__.ini | 1 + .../web-platform/meta/cookie-store/__dir__.ini | 1 + ...ieStore_subscriptions.tentative.https.html.ini | 8 ++++---- .../floats/zero-width-floats-positioning.html.ini | 2 -- .../parsing/border-color-shorthand.html.ini | 4 ---- .../parsing/border-image-shorthand.sub.html.ini | 4 ---- .../parsing/border-shorthand.html.ini | 4 ---- .../parsing/border-style-shorthand.html.ini | 4 ---- .../parsing/border-width-shorthand.html.ini | 4 ---- .../css-grid/parsing/grid-area-shorthand.html.ini | 4 ---- .../parsing/grid-template-shorthand.html.ini | 4 ---- .../meta/css/css-ui/appearance-auto-001.html.ini | 2 +- .../css-ui/appearance-button-bevel-001.html.ini | 2 +- .../css/css-ui/appearance-checkbox-001.html.ini | 4 ++-- .../css-ui/appearance-square-button-001.html.ini | 5 +---- .../css/css-ui/appearance-textfield-001.html.ini | 2 +- .../variable-presentation-attribute.html.ini | 2 +- .../web-platform/meta/fetch/api/abort/__dir__.ini | 2 +- .../meta/fetch/api/policies/__dir__.ini | 1 + .../fetch/api/request/destination/__dir__.ini | 1 + .../meta/fetch/stale-while-revalidate/__dir__.ini | 1 + ..._when_term_nesting_level_nonzero.window.js.ini | 3 +-- .../html/cross-origin-embedder-policy/__dir__.ini | 3 ++- .../fieldset-default-style.html.ini | 2 +- .../forms/autofocus/update-the-rendering.html.ini | 9 ++++++--- .../event-handler-attributes-body-window.html.ini | 9 +++++++++ ...nt-handler-attributes-frameset-window.html.ini | 9 +++++++++ ...nt-handler-attributes-windowless-body.html.ini | 6 ++++++ .../math-global-event-handlers.tentative.html.ini | 2 +- .../mime-types/charset-parameter.window.js.ini | 6 ++++++ testing/web-platform/meta/mozilla-sync | 4 ++-- .../meta/pointerevents/extension/__dir__.ini | 2 +- .../pointerlock/pointerevent_movementxy.html.ini | 6 ++---- ...nterevent_movementxy_with_pointerlock.html.ini | 12 +++++++----- ...e_on_chorded_mouse_button_when_locked.html.ini | 8 ++++---- testing/web-platform/meta/push-api/__dir__.ini | 1 + .../meta/resize-observer/observe.html.ini | 6 +++--- .../cache-storage/serviceworker/__dir__.ini | 1 + ...skip-waiting-using-registration.https.html.ini | 4 ++-- ...gister-then-register-new-script.https.html.ini | 15 +++++++++++++++ ...cert_parse_error-downgraded.tentative.html.ini | 10 +++++----- ...ch-invalid_integrity_header.tentative.html.ini | 10 +++++----- ...s-for-short-animations-with-syncbases.html.ini | 6 +++--- .../scripted/onhover-syncbases.html.ini | 2 +- .../meta/svg/animations/slider-switch.html.ini | 3 ++- testing/web-platform/meta/webusb/__dir__.ini | 1 + 47 files changed, 114 insertions(+), 89 deletions(-) create mode 100644 testing/web-platform/meta/FileAPI/__dir__.ini create mode 100644 testing/web-platform/meta/content-security-policy/securitypolicyviolation/__dir__.ini create mode 100644 testing/web-platform/meta/cookie-store/__dir__.ini delete mode 100644 testing/web-platform/meta/css/CSS2/floats/zero-width-floats-positioning.html.ini delete mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini delete mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini delete mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini delete mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini delete mode 100644 testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini delete mode 100644 testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini delete mode 100644 testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini create mode 100644 testing/web-platform/meta/fetch/api/policies/__dir__.ini create mode 100644 testing/web-platform/meta/fetch/api/request/destination/__dir__.ini create mode 100644 testing/web-platform/meta/fetch/stale-while-revalidate/__dir__.ini create mode 100644 testing/web-platform/meta/push-api/__dir__.ini create mode 100644 testing/web-platform/meta/service-workers/service-worker/unregister-then-register-new-script.https.html.ini diff --git a/testing/web-platform/meta/FileAPI/__dir__.ini b/testing/web-platform/meta/FileAPI/__dir__.ini new file mode 100644 index 000000000000..0055c4d2a00a --- /dev/null +++ b/testing/web-platform/meta/FileAPI/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/content-security-policy/securitypolicyviolation/__dir__.ini b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/__dir__.ini new file mode 100644 index 000000000000..0055c4d2a00a --- /dev/null +++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/cookie-store/__dir__.ini b/testing/web-platform/meta/cookie-store/__dir__.ini new file mode 100644 index 000000000000..7b2722005090 --- /dev/null +++ b/testing/web-platform/meta/cookie-store/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html.ini b/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html.ini index 2a6abb942f7c..e0c07b11fab4 100644 --- a/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html.ini +++ b/testing/web-platform/meta/cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html.ini @@ -3,20 +3,20 @@ if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1573036 if (os == "win") and (processor == "aarch64"): https://bugzilla.mozilla.org/show_bug.cgi?id=1573036 expected: - if (os == "mac") and not debug: ["OK", "TIMEOUT"] + if (os == "mac") and not debug: ["TIMEOUT", "OK"] TIMEOUT [getChangeSubscriptions returns subscriptions passed to subscribeToChanges] expected: - if (os == "mac") and not debug: ["FAIL", "TIMEOUT"] + if (os == "mac") and not debug: ["TIMEOUT", "FAIL"] TIMEOUT [subscribeToChanges rejects when called outside the install handler] expected: - if (os == "mac") and not debug: ["FAIL", "NOTRUN"] + if (os == "mac") and not debug: ["NOTRUN", "FAIL"] NOTRUN [cookiechange dispatched with cookie change that matches subscription] expected: - if (os == "mac") and not debug: ["FAIL", "NOTRUN"] + if (os == "mac") and not debug: ["NOTRUN", "FAIL"] NOTRUN diff --git a/testing/web-platform/meta/css/CSS2/floats/zero-width-floats-positioning.html.ini b/testing/web-platform/meta/css/CSS2/floats/zero-width-floats-positioning.html.ini deleted file mode 100644 index 73839d302d04..000000000000 --- a/testing/web-platform/meta/css/CSS2/floats/zero-width-floats-positioning.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[zero-width-floats-positioning.html] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini deleted file mode 100644 index 59985d81bb4f..000000000000 --- a/testing/web-platform/meta/css/css-backgrounds/parsing/border-color-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[border-color-shorthand.html] - [CSS Backgrounds and Borders Module Level 3: border-color sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini deleted file mode 100644 index 3f1f8e0d3e2e..000000000000 --- a/testing/web-platform/meta/css/css-backgrounds/parsing/border-image-shorthand.sub.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[border-image-shorthand.sub.html] - [CSS Backgrounds and Borders Module Level 3: border-image sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini deleted file mode 100644 index 922c3f0cd30e..000000000000 --- a/testing/web-platform/meta/css/css-backgrounds/parsing/border-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[border-shorthand.html] - [CSS Backgrounds and Borders Module Level 3: border sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini deleted file mode 100644 index cacc710e0976..000000000000 --- a/testing/web-platform/meta/css/css-backgrounds/parsing/border-style-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[border-style-shorthand.html] - [CSS Backgrounds and Borders Module Level 3: border-style sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini b/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini deleted file mode 100644 index fdba1221624d..000000000000 --- a/testing/web-platform/meta/css/css-backgrounds/parsing/border-width-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[border-width-shorthand.html] - [CSS Backgrounds and Borders Module Level 3: border-width sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini deleted file mode 100644 index 4082849ae5d7..000000000000 --- a/testing/web-platform/meta/css/css-grid/parsing/grid-area-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[grid-area-shorthand.html] - [CSS Grid Layout Test: grid-area sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini b/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini deleted file mode 100644 index b074e9d16c68..000000000000 --- a/testing/web-platform/meta/css/css-grid/parsing/grid-template-shorthand.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[grid-template-shorthand.html] - [CSS Grid Layout Test: grid-template sets longhands] - expected: FAIL - diff --git a/testing/web-platform/meta/css/css-ui/appearance-auto-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-auto-001.html.ini index c2b734efe880..77bb82157563 100644 --- a/testing/web-platform/meta/css/css-ui/appearance-auto-001.html.ini +++ b/testing/web-platform/meta/css/css-ui/appearance-auto-001.html.ini @@ -4,4 +4,4 @@ expected: if (os == "win") and (processor == "x86"): FAIL if (os == "win") and (processor == "x86_64"): FAIL - if (os == "win") and (processor == "aarch64"): ["PASS", "FAIL"] + if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] diff --git a/testing/web-platform/meta/css/css-ui/appearance-button-bevel-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-button-bevel-001.html.ini index 3c4bf71e701a..5e64ab182f71 100644 --- a/testing/web-platform/meta/css/css-ui/appearance-button-bevel-001.html.ini +++ b/testing/web-platform/meta/css/css-ui/appearance-button-bevel-001.html.ini @@ -3,5 +3,5 @@ if debug and (os == "win") and (version == "6.1.7601"): https://bugzilla.mozilla.org/show_bug.cgi?id=1560360 expected: if (os == "win") and (processor == "x86"): FAIL - if (os == "win") and (processor == "aarch64"): ["PASS", "FAIL"] + if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] if (os == "win") and (processor == "x86_64"): FAIL diff --git a/testing/web-platform/meta/css/css-ui/appearance-checkbox-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-checkbox-001.html.ini index da674a8de5f3..797ba19e04d0 100644 --- a/testing/web-platform/meta/css/css-ui/appearance-checkbox-001.html.ini +++ b/testing/web-platform/meta/css/css-ui/appearance-checkbox-001.html.ini @@ -2,6 +2,6 @@ disabled: if debug and (os == "win") and (version == "6.1.7601"): https://bugzilla.mozilla.org/show_bug.cgi?id=1560360 expected: - if (os == "win") and (processor == "x86"): FAIL if (os == "win") and (processor == "x86_64"): FAIL - if (os == "win") and (processor == "aarch64"): ["PASS", "FAIL"] + if (os == "win") and (processor == "x86"): FAIL + if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] diff --git a/testing/web-platform/meta/css/css-ui/appearance-square-button-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-square-button-001.html.ini index 2d04202ba8e2..f0b553f636d5 100644 --- a/testing/web-platform/meta/css/css-ui/appearance-square-button-001.html.ini +++ b/testing/web-platform/meta/css/css-ui/appearance-square-button-001.html.ini @@ -1,8 +1,5 @@ [appearance-square-button-001.html] disabled: - if debug and os == "win" and version == "6.1.7601": https://bugzilla.mozilla.org/show_bug.cgi?id=1560360 + if debug and (os == "win") and (version == "6.1.7601"): https://bugzilla.mozilla.org/show_bug.cgi?id=1560360 expected: - if (os == "win") and debug and (processor == "x86_64"): FAIL - if (os == "win") and not debug: FAIL if os == "win": FAIL - diff --git a/testing/web-platform/meta/css/css-ui/appearance-textfield-001.html.ini b/testing/web-platform/meta/css/css-ui/appearance-textfield-001.html.ini index 156e72303ca1..e1c6277c98ba 100644 --- a/testing/web-platform/meta/css/css-ui/appearance-textfield-001.html.ini +++ b/testing/web-platform/meta/css/css-ui/appearance-textfield-001.html.ini @@ -1,6 +1,6 @@ [appearance-textfield-001.html] expected: - if (os == "win") and (processor == "x86") and not debug: ["PASS", "FAIL"] if (os == "win") and (processor == "x86") and debug: ["PASS", "FAIL"] + if (os == "win") and (processor == "x86") and not debug: ["FAIL", "PASS"] if (os == "win") and (processor == "x86_64"): ["FAIL", "PASS"] if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] diff --git a/testing/web-platform/meta/css/css-variables/variable-presentation-attribute.html.ini b/testing/web-platform/meta/css/css-variables/variable-presentation-attribute.html.ini index 3f7f68181bfe..d8daf51240d4 100644 --- a/testing/web-platform/meta/css/css-variables/variable-presentation-attribute.html.ini +++ b/testing/web-platform/meta/css/css-variables/variable-presentation-attribute.html.ini @@ -1,8 +1,8 @@ [variable-presentation-attribute.html] [Testing 'clip' on '#test4'.] expected: - if os == "android": FAIL if os == "linux": FAIL + if os == "android": FAIL [Testing 'alignment-baseline'.] expected: FAIL diff --git a/testing/web-platform/meta/fetch/api/abort/__dir__.ini b/testing/web-platform/meta/fetch/api/abort/__dir__.ini index ad85a5f4bc47..4a051d2d58f8 100644 --- a/testing/web-platform/meta/fetch/api/abort/__dir__.ini +++ b/testing/web-platform/meta/fetch/api/abort/__dir__.ini @@ -1,3 +1,3 @@ prefs: [javascript.options.streams:true] -lsan-allowed: [nsTSubstring::StartBulkWriteImpl, Gecko_StartBulkWriteCString, nsstring::nsACString::start_bulk_write_impl] leak-threshold: [default:51200] +lsan-allowed: [Alloc, Create, Gecko_StartBulkWriteCString, Malloc, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::NotifyUnregister, mozilla::net::nsStandardURL::TemplatedMutator, nsTSubstring::StartBulkWriteImpl, nsstring::nsACString::start_bulk_write_impl, operator] diff --git a/testing/web-platform/meta/fetch/api/policies/__dir__.ini b/testing/web-platform/meta/fetch/api/policies/__dir__.ini new file mode 100644 index 000000000000..0055c4d2a00a --- /dev/null +++ b/testing/web-platform/meta/fetch/api/policies/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/fetch/api/request/destination/__dir__.ini b/testing/web-platform/meta/fetch/api/request/destination/__dir__.ini new file mode 100644 index 000000000000..f7862ebddb79 --- /dev/null +++ b/testing/web-platform/meta/fetch/api/request/destination/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Create, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, operator] diff --git a/testing/web-platform/meta/fetch/stale-while-revalidate/__dir__.ini b/testing/web-platform/meta/fetch/stale-while-revalidate/__dir__.ini new file mode 100644 index 000000000000..0055c4d2a00a --- /dev/null +++ b/testing/web-platform/meta/fetch/stale-while-revalidate/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window.js.ini b/testing/web-platform/meta/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window.js.ini index 1158fb3b3ccf..6ef5f6bfa282 100644 --- a/testing/web-platform/meta/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window.js.ini +++ b/testing/web-platform/meta/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window.js.ini @@ -9,8 +9,7 @@ expected: FAIL [no popups from synchronously reachable window] - expected: - [PASS, FAIL] + expected: [FAIL, PASS] [no popups from another synchronously reachable window] expected: FAIL diff --git a/testing/web-platform/meta/html/cross-origin-embedder-policy/__dir__.ini b/testing/web-platform/meta/html/cross-origin-embedder-policy/__dir__.ini index 7a7b9f5a0cc3..b7176d1b971d 100644 --- a/testing/web-platform/meta/html/cross-origin-embedder-policy/__dir__.ini +++ b/testing/web-platform/meta/html/cross-origin-embedder-policy/__dir__.ini @@ -1 +1,2 @@ -prefs: [browser.tabs.remote.useCrossOriginEmbedderPolicy:true, browser.tabs.remote.useCORP:true] \ No newline at end of file +prefs: [browser.tabs.remote.useCrossOriginEmbedderPolicy:true, browser.tabs.remote.useCORP:true] +lsan-allowed: [Alloc, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-default-style.html.ini b/testing/web-platform/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-default-style.html.ini index acb618c65e4f..e30c9d73ddce 100644 --- a/testing/web-platform/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-default-style.html.ini +++ b/testing/web-platform/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-default-style.html.ini @@ -16,8 +16,8 @@ [border-bottom-color] expected: - if os == "android": PASS if os == "linux": PASS + if os == "android": PASS FAIL [border-right-color] diff --git a/testing/web-platform/meta/html/semantics/forms/autofocus/update-the-rendering.html.ini b/testing/web-platform/meta/html/semantics/forms/autofocus/update-the-rendering.html.ini index 606279eb70c3..b775232ac619 100644 --- a/testing/web-platform/meta/html/semantics/forms/autofocus/update-the-rendering.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/autofocus/update-the-rendering.html.ini @@ -1,10 +1,13 @@ [update-the-rendering.html] ["Flush autofocus candidates" should be happen after the first animation frame callbacks, and before a resize event in the next iteration of window event loop.] expected: + if (os == "linux") and debug and not webrender and sw-e10s: ["PASS", "FAIL"] + if (os == "linux") and debug and not webrender and not sw-e10s: ["FAIL", "PASS"] if (os == "linux") and not debug and (processor == "x86_64") and webrender: ["FAIL", "PASS"] if (os == "linux") and not debug and (processor == "x86_64") and not webrender: ["FAIL", "PASS"] - if (os == "linux") and debug and sw-e10s: ["FAIL", "PASS"] - if (os == "linux") and debug and not sw-e10s: ["PASS", "FAIL"] - if (os == "win") and debug: ["FAIL", "PASS"] + if (os == "win") and debug and not webrender and (processor == "x86_64"): ["FAIL", "PASS"] + if (os == "win") and debug and not webrender and (processor == "x86"): ["FAIL", "PASS"] + if (os == "linux") and debug and webrender: ["PASS", "FAIL"] + if (os == "win") and debug and webrender: ["FAIL", "PASS"] FAIL diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini index 3bb1bb7ef71e..a489643c36a7 100644 --- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini +++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-body-window.html.ini @@ -74,3 +74,12 @@ [HTMLBodyElement event handlers] expected: FAIL + [not shadowed slotchange (window)] + expected: FAIL + + [not shadowed slotchange (document.createElement("body"))] + expected: FAIL + + [not shadowed slotchange (document.body)] + expected: FAIL + diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini index 23232fde167c..ce22657b00b5 100644 --- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini +++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-frameset-window.html.ini @@ -53,3 +53,12 @@ [event handlers] expected: FAIL + [not shadowed slotchange (window)] + expected: FAIL + + [not shadowed slotchange (document.createElement("frameset"))] + expected: FAIL + + [not shadowed slotchange (document.body)] + expected: FAIL + diff --git a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini index 95ac72a2122a..3234f9e587e7 100644 --- a/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini +++ b/testing/web-platform/meta/html/webappapis/scripting/events/event-handler-attributes-windowless-body.html.ini @@ -14,3 +14,9 @@ [event-handler-attributes-windowless-body] expected: FAIL + [slotchange is unaffected on a windowless frameset] + expected: FAIL + + [slotchange is unaffected on a windowless body] + expected: FAIL + diff --git a/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini b/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini index 90e3771047c6..47c065e14b4d 100644 --- a/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini +++ b/testing/web-platform/meta/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.ini @@ -939,5 +939,5 @@ expected: FAIL [onslotchange: dispatching an Event at a element must trigger element.onslotchange] - expected: TIMEOUT + expected: FAIL diff --git a/testing/web-platform/meta/mimesniff/mime-types/charset-parameter.window.js.ini b/testing/web-platform/meta/mimesniff/mime-types/charset-parameter.window.js.ini index 4df411a154cb..aff6c244335c 100644 --- a/testing/web-platform/meta/mimesniff/mime-types/charset-parameter.window.js.ini +++ b/testing/web-platform/meta/mimesniff/mime-types/charset-parameter.window.js.ini @@ -1,4 +1,6 @@ [charset-parameter.window.html] + expected: + if (processor == "x86") and (os == "win") and not debug: ["OK", "TIMEOUT"] [text/html;charset=gbk(] expected: FAIL @@ -26,3 +28,7 @@ [text/html;charset=\x0cgbk] expected: FAIL + [text/html;charset="gbk"] + expected: + if (processor == "x86") and (os == "win") and not debug: ["PASS", "TIMEOUT"] + diff --git a/testing/web-platform/meta/mozilla-sync b/testing/web-platform/meta/mozilla-sync index 2b72e6974d53..eec72976a5fc 100644 --- a/testing/web-platform/meta/mozilla-sync +++ b/testing/web-platform/meta/mozilla-sync @@ -1,2 +1,2 @@ -local: a9b0375fc5d6e30137c82d92d1900f7616bc1b19 -upstream: 42b82765b84378e746063997f51f9fd75a1d902c +local: fe136f92ad53a4a93aed95863a4e0fe753c6f9c8 +upstream: eaa551911f12c5c526f56cafd0c7ab24667ead3c diff --git a/testing/web-platform/meta/pointerevents/extension/__dir__.ini b/testing/web-platform/meta/pointerevents/extension/__dir__.ini index b3a8920935c3..67dcfb690131 100644 --- a/testing/web-platform/meta/pointerevents/extension/__dir__.ini +++ b/testing/web-platform/meta/pointerevents/extension/__dir__.ini @@ -1,2 +1,2 @@ -lsan-allowed: [NS_NewDOMPointerEvent, createTable, mozilla::WidgetPointerEvent::Duplicate, mozilla::dom::Performance::CreateForMainThread, nsThread::ProcessNextEvent] +lsan-allowed: [NS_NewDOMPointerEvent, RunInternal, createTable, mozilla::WidgetPointerEvent::Duplicate, mozilla::dom::Performance::CreateForMainThread, nsThread::ProcessNextEvent] leak-threshold: [tab:358400] diff --git a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy.html.ini b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy.html.ini index 0ef52f37fb7c..30c0d452f56b 100644 --- a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy.html.ini +++ b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy.html.ini @@ -1,9 +1,7 @@ [pointerevent_movementxy.html] expected: - if debug and (os == "linux") and not webrender and sw-e10s: ["OK", "ERROR"] - if debug and (os == "linux") and webrender: ["OK", "ERROR"] - if debug and (os == "win") and webrender: ["OK", "ERROR"] - if debug and (os == "mac"): ["OK", "ERROR"] + if (os == "mac") and debug: ["OK", "ERROR"] + if (os == "mac") and not debug: ["OK", "ERROR"] [ERROR, OK] [mouse pointerevent attributes] expected: FAIL diff --git a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html.ini b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html.ini index e9f4a8cc22d4..0ee7a06986ea 100644 --- a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html.ini +++ b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html.ini @@ -1,9 +1,11 @@ [pointerevent_movementxy_with_pointerlock.html] [mouse pointerevent movementX/Y with pointerlock test] expected: - if (os == "win") and (processor == "x86_64") and not webrender and not debug: ["PASS", "FAIL"] - if (os == "linux") and not debug and (processor == "x86_64"): ["PASS", "FAIL"] - if (os == "win") and (processor == "x86") and not debug: ["PASS", "FAIL"] - if os == "android": ["PASS", "FAIL"] - [FAIL, PASS] + if (os == "linux") and debug and not webrender and sw-e10s: ["FAIL", "PASS"] + if (os == "win") and not debug and (processor == "x86_64") and not webrender: ["FAIL", "PASS"] + if (os == "linux") and debug and webrender: ["FAIL", "PASS"] + if (os == "win") and debug and webrender: ["FAIL", "PASS"] + if (os == "win") and not debug and (processor == "aarch64"): ["FAIL", "PASS"] + if os == "mac": ["FAIL", "PASS"] + [PASS, FAIL] diff --git a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html.ini b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html.ini index ef934b5cad32..9c9a52c9c89c 100644 --- a/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html.ini +++ b/testing/web-platform/meta/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html.ini @@ -2,8 +2,8 @@ [pointer locked pointermove events received for button state changes] expected: if ccov and (os == "win"): [PASS, FAIL] - if (os == "linux") and debug and not webrender and not sw-e10s: ["PASS", "FAIL"] - if (os == "linux") and debug and not webrender and sw-e10s: ["PASS", "FAIL"] - if (os == "linux") and debug and webrender: ["PASS", "FAIL"] - if (os == "linux") and not debug: ["PASS", "FAIL"] + if (os == "linux") and not debug and not webrender and (processor == "x86"): ["PASS", "FAIL"] + if (os == "linux") and not debug and not webrender and (processor == "x86_64"): ["PASS", "FAIL"] + if (os == "linux") and not debug and webrender: ["PASS", "FAIL"] + if (os == "linux") and debug: ["PASS", "FAIL"] diff --git a/testing/web-platform/meta/push-api/__dir__.ini b/testing/web-platform/meta/push-api/__dir__.ini new file mode 100644 index 000000000000..ff6bd25854e1 --- /dev/null +++ b/testing/web-platform/meta/push-api/__dir__.ini @@ -0,0 +1 @@ +lsan-allowed: [Alloc, Create, Malloc, Realloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] diff --git a/testing/web-platform/meta/resize-observer/observe.html.ini b/testing/web-platform/meta/resize-observer/observe.html.ini index d5bd22735060..cf558e5d7e8d 100644 --- a/testing/web-platform/meta/resize-observer/observe.html.ini +++ b/testing/web-platform/meta/resize-observer/observe.html.ini @@ -1,14 +1,14 @@ [observe.html] expected: if webrender and (os == "linux") and not debug: ["OK", "TIMEOUT"] - if webrender and (os == "linux") and debug: ["TIMEOUT", "OK"] + if webrender and (os == "linux") and debug: ["OK", "TIMEOUT"] [guard] expected: - if webrender and (os == "linux") and debug: ["NOTRUN", "PASS"] + if webrender and (os == "linux") and debug: ["PASS", "NOTRUN"] if webrender and (os == "linux") and not debug: ["PASS", "NOTRUN"] [test6: iframe notifications] expected: - if webrender and (os == "linux") and debug: ["FAIL", "PASS"] + if webrender and (os == "linux") and debug: ["PASS", "FAIL"] if webrender and (os == "linux") and not debug: ["PASS", "FAIL"] diff --git a/testing/web-platform/meta/service-workers/cache-storage/serviceworker/__dir__.ini b/testing/web-platform/meta/service-workers/cache-storage/serviceworker/__dir__.ini index 70b096bcee9b..b45ac13e5a88 100644 --- a/testing/web-platform/meta/service-workers/cache-storage/serviceworker/__dir__.ini +++ b/testing/web-platform/meta/service-workers/cache-storage/serviceworker/__dir__.ini @@ -1,2 +1,3 @@ prefs: [dom.serviceWorkers.enabled:true, dom.serviceWorkers.exemptFromPerDomainMax:true, dom.caches.enabled:true] +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator] leak-threshold: [tab:51200] diff --git a/testing/web-platform/meta/service-workers/service-worker/skip-waiting-using-registration.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/skip-waiting-using-registration.https.html.ini index b30d544c478d..7c848f27944d 100644 --- a/testing/web-platform/meta/service-workers/service-worker/skip-waiting-using-registration.https.html.ini +++ b/testing/web-platform/meta/service-workers/service-worker/skip-waiting-using-registration.https.html.ini @@ -3,11 +3,11 @@ if (os == "win") and (version == "6.1.7601"): https://bugzilla.mozilla.org/show_bug.cgi?id=1425175 if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1425175 expected: - if os == "android": ["OK", "FAIL"] if os == "mac": ["OK", "FAIL"] + if os == "android": ["OK", "FAIL"] [Test skipWaiting while a client is using the registration] expected: - if (os == "mac") and debug: ["FAIL", "PASS"] + if (os == "mac") and debug: ["PASS", "FAIL"] if (os == "mac") and not debug: ["PASS", "FAIL"] if os == "android": ["PASS", "FAIL"] diff --git a/testing/web-platform/meta/service-workers/service-worker/unregister-then-register-new-script.https.html.ini b/testing/web-platform/meta/service-workers/service-worker/unregister-then-register-new-script.https.html.ini new file mode 100644 index 000000000000..0645ceebd3c7 --- /dev/null +++ b/testing/web-platform/meta/service-workers/service-worker/unregister-then-register-new-script.https.html.ini @@ -0,0 +1,15 @@ +[unregister-then-register-new-script.https.html] + expected: + if (os == "win") and (processor == "x86_64") and not webrender and not debug: ["OK", "TIMEOUT"] + [Registering a new script URL that fails to install does not resurrect unregistered registration] + expected: + if (os == "win") and (processor == "x86_64") and not webrender and not debug: ["PASS", "NOTRUN"] + + [Registering a new script URL while an unregistered registration is in use] + expected: + if (os == "win") and (processor == "x86_64") and not webrender and not debug: ["PASS", "TIMEOUT"] + + [Registering a new script URL that 404s does not resurrect unregistered registration] + expected: + if (os == "win") and (processor == "x86_64") and not webrender and not debug: ["PASS", "NOTRUN"] + diff --git a/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-cert_parse_error-downgraded.tentative.html.ini b/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-cert_parse_error-downgraded.tentative.html.ini index 665d4e35d79e..8cfdd1a9733c 100644 --- a/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-cert_parse_error-downgraded.tentative.html.ini +++ b/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-cert_parse_error-downgraded.tentative.html.ini @@ -1,12 +1,12 @@ [sxg-reporting-prefetch-cert_parse_error-downgraded.tentative.html] expected: if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): TIMEOUT + if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["OK", "TIMEOUT"] if not debug and (os == "linux") and not webrender and (processor == "x86"): TIMEOUT - if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["TIMEOUT", "OK"] - if not debug and (os == "win") and (processor == "x86"): TIMEOUT - if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT - if not debug and (os == "win") and (processor == "aarch64"): ["OK", "CRASH"] if not debug and (os == "linux") and webrender: TIMEOUT + if not debug and (os == "win") and (processor == "x86"): TIMEOUT + if not debug and (os == "win") and (processor == "aarch64"): ["OK", "CRASH"] + if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT if not debug and (os == "mac"): TIMEOUT [SXG reporting test of sxg.failed downgraded from sxg.cert_parse_error for prefetch.] expected: @@ -14,8 +14,8 @@ if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): TIMEOUT + if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["FAIL", "TIMEOUT"] if not debug and (os == "linux") and not webrender and (processor == "x86"): TIMEOUT - if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["TIMEOUT", "FAIL"] if not debug and (os == "linux") and webrender: TIMEOUT if not debug and (os == "win") and (processor == "x86"): TIMEOUT if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT diff --git a/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-invalid_integrity_header.tentative.html.ini b/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-invalid_integrity_header.tentative.html.ini index d98d93197c7f..7fb291fc06e1 100644 --- a/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-invalid_integrity_header.tentative.html.ini +++ b/testing/web-platform/meta/signed-exchange/reporting/sxg-reporting-prefetch-invalid_integrity_header.tentative.html.ini @@ -2,11 +2,11 @@ expected: if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): TIMEOUT if not debug and (os == "linux") and not webrender and (processor == "x86"): TIMEOUT - if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["TIMEOUT", "OK"] - if not debug and (os == "win") and (processor == "x86"): TIMEOUT - if not debug and (os == "win") and (processor == "aarch64"): ["OK", "CRASH"] - if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT + if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["OK", "TIMEOUT"] if not debug and (os == "linux") and webrender: TIMEOUT + if not debug and (os == "win") and (processor == "x86"): TIMEOUT + if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT + if not debug and (os == "win") and (processor == "aarch64"): ["OK", "CRASH"] if not debug and (os == "mac"): TIMEOUT [SXG reporting test of sxg.invalid_integrity_header for prefetch.] expected: @@ -15,7 +15,7 @@ if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): TIMEOUT if not debug and (os == "linux") and not webrender and (processor == "x86"): TIMEOUT - if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["TIMEOUT", "FAIL"] + if not debug and (os == "linux") and not webrender and (processor == "x86_64"): ["FAIL", "TIMEOUT"] if not debug and (os == "linux") and webrender: TIMEOUT if not debug and (os == "win") and (processor == "x86"): TIMEOUT if not debug and (os == "win") and (processor == "x86_64"): TIMEOUT diff --git a/testing/web-platform/meta/svg/animations/correct-events-for-short-animations-with-syncbases.html.ini b/testing/web-platform/meta/svg/animations/correct-events-for-short-animations-with-syncbases.html.ini index cc829648d8bc..f0ef852956d5 100644 --- a/testing/web-platform/meta/svg/animations/correct-events-for-short-animations-with-syncbases.html.ini +++ b/testing/web-platform/meta/svg/animations/correct-events-for-short-animations-with-syncbases.html.ini @@ -1,8 +1,8 @@ [correct-events-for-short-animations-with-syncbases.html] [Correct events for short animations with syncbases] expected: - if (os == "linux") and (processor == "x86"): PASS - if (os == "android") and not debug: ["FAIL", "PASS"] - if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] + if (os == "win") and debug and not webrender and (processor == "x86_64"): ["FAIL", "PASS"] + if (os == "linux") and not sw-e10s and (processor == "x86"): PASS + if (os == "linux") and sw-e10s: ["FAIL", "PASS"] [PASS, FAIL] diff --git a/testing/web-platform/meta/svg/animations/scripted/onhover-syncbases.html.ini b/testing/web-platform/meta/svg/animations/scripted/onhover-syncbases.html.ini index c4a869d375b0..2a1a9d2f2912 100644 --- a/testing/web-platform/meta/svg/animations/scripted/onhover-syncbases.html.ini +++ b/testing/web-platform/meta/svg/animations/scripted/onhover-syncbases.html.ini @@ -12,7 +12,7 @@ [Check if onhover events reset correctly when triggered multiple times] expected: - if webrender and (os == "linux") and debug: ["FAIL", "PASS"] + if webrender and (os == "linux") and debug: ["PASS", "FAIL"] if webrender and (os == "linux") and not debug: FAIL if webrender and (os == "win") and not debug: ["PASS", "FAIL"] diff --git a/testing/web-platform/meta/svg/animations/slider-switch.html.ini b/testing/web-platform/meta/svg/animations/slider-switch.html.ini index 936508deabc0..e2909b3a0e33 100644 --- a/testing/web-platform/meta/svg/animations/slider-switch.html.ini +++ b/testing/web-platform/meta/svg/animations/slider-switch.html.ini @@ -1,8 +1,9 @@ [slider-switch.html] [Check correct event bases for onclick] expected: + if (os == "linux") and webrender and debug: ["FAIL", "PASS"] + if (os == "android") and debug: ["FAIL", "PASS"] if (os == "android") and not debug: ["FAIL", "PASS"] - if (os == "mac") and debug: ["FAIL", "PASS"] if (os == "win") and (processor == "aarch64"): ["FAIL", "PASS"] [PASS, FAIL] diff --git a/testing/web-platform/meta/webusb/__dir__.ini b/testing/web-platform/meta/webusb/__dir__.ini index 01341ccfc59c..e27755931a70 100644 --- a/testing/web-platform/meta/webusb/__dir__.ini +++ b/testing/web-platform/meta/webusb/__dir__.ini @@ -1 +1,2 @@ prefs: [dom.security.featurePolicy.enabled:true, dom.security.featurePolicy.header.enabled:true, dom.security.featurePolicy.webidl.enabled:true] +lsan-allowed: [Alloc, Create, Malloc, Then, mozilla::BasePrincipal::CreateContentPrincipal, mozilla::SchedulerGroup::CreateEventTargetFor, mozilla::dom::ServiceWorkerJobQueue::RunJob, mozilla::dom::ServiceWorkerManager::Unregister, mozilla::dom::ServiceWorkerRegistrationMainThread::Unregister, mozilla::dom::UnregisterCallback::UnregisterCallback, mozilla::net::nsStandardURL::TemplatedMutator, operator]