Bug 1806808 [wpt PR 37624] - Revert "WPT: Allow `window.onload` to contain multiple...
commit4b29f468f18120a384ec67858c4a79a889246375
authorPhilip Jägenstedt <foolip@chromium.org>
Thu, 22 Dec 2022 10:10:35 +0000 (22 10:10 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Wed, 4 Jan 2023 11:50:20 +0000 (4 11:50 +0000)
tree11a2d33bc4be13cc323a661187d84e6e5a7a7fe1
parentc5c92e125f691def8687322e3655d9b0ffc73829
Bug 1806808 [wpt PR 37624] - Revert "WPT: Allow `window.onload` to contain multiple `test()`s", a=testonly

Automatic update from web-platform-tests
Revert "WPT: Allow `window.onload` to contain multiple `test()`s"

This reverts commit 4a03c6c459fdbf11976a424aa02a1d094484134c.

Reason for revert:

This has caused tests in upstream WPT to fail, blocking unrelated PRs. It was still possible to upstream this because those tests weren't triggered on the change due to a bug:
https://github.com/web-platform-tests/wpt/issues/37623

There was an attempted fix for this:
https://github.com/web-platform-tests/wpt/pull/37549

But, quoting jgraham from the WPT Matrix chat:

> the actual fix failed a test I wrote and now I need to spend some more time investigating

Original change's description:
> WPT: Allow `window.onload` to contain multiple `test()`s
>
> ******************************************************************
> *** SHERIFFS: please don't revert this CL if it causes web_tests
>               to flake/fail. If that happens, the cause is a bad
>               test. Please mark that test as flaky/fail in
>               TestExpectations, with a new crbug. Please block the
>               new bug against crbug.com/1395228. Thanks!
> ******************************************************************
>
> Prior to this CL, a test like this:
>
> ```
> <script>
> window.onload = () => {
>   test((t) => { ... }, 'test 1');
>   test((t) => { ... }, 'test 2');
>   test((t) => { ... }, 'test 3');
> };
> </script>
> ```
>
> would not run anything after test #1. The issue is that the testharness
> immediately adds a window load handler that marks `all_loaded = true`,
> and that ends the tests as soon as the first result from the first test
> is processed. (The test runner waits for the first test because
> `Tests.prototype.all_done()` also waits until `this.tests.length > 0`.)
> There were various mitigating corner cases, such as if you started
> the list of tests with a promise_test(), that would increment a
> counter that kept the rest of the tests alive. Etc.
>
> With this CL, the testharness-added window.onload handler runs a
> setTimeout(0), so that `all_loaded` is only set to true after all of
> the tests are loaded by any window.onload handler.
>
> This exposed a few tests that should have been failing but were
> masked by the lack of test coverage - bugs have been filed for
> those. Also, several tests that were working around this via various
> means are also cleaned up in this CL. I'm sure there are more of
> those.
>
> Bug: 1395228,1395226,1307772
> Change-Id: I6f12b5922186af4e1e06808ad23b47ceac68559c
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4074305
> Reviewed-by: Weizhong Xia <weizhong@google.com>
> Auto-Submit: Mason Freed <masonf@chromium.org>
> Reviewed-by: Mason Freed <masonf@chromium.org>
> Commit-Queue: Mason Freed <masonf@chromium.org>
> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1081558}

Bug: 1395228,1395226,1307772
Change-Id: Icbddad3a8bb47473bcbc331f424661b9041addf2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111318
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1085925}

--

wpt-commits: 5c571b86bc98819157b584132bca1b80ca4503cb
wpt-pr: 37624
testing/web-platform/tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html
testing/web-platform/tests/css/cssom-view/negativeMargins.html
testing/web-platform/tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html
testing/web-platform/tests/infrastructure/README.md
testing/web-platform/tests/infrastructure/expected-fail/window-onload-test.html [deleted file]
testing/web-platform/tests/resources/testharness.js