WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
281747
REGRESSION(
285310@main
): [GTK] Broke WPT tests with WebDriver.
https://bugs.webkit.org/show_bug.cgi?id=281747
Summary
REGRESSION(285310@main): [GTK] Broke WPT tests with WebDriver.
Carlos Alberto Lopez Perez
Reported
2024-10-18 07:08:42 PDT
Commit
285310@main
caused a regresion on the GTK port, making the WPT tests (run with the official WPT runner) to not work anymore with WebDriver. I have bisected this, so I'm sure this one is the commit introducing the regression. Regarding the reason, I can speculate that perhaps is related to opening new JavaScript windows, something that WPT tests do. But currently I have no idea. To reproduce this you can do the following: git clone
https://github.com/web-platform-tests/wpt
--depth 1 cd wpt ./wpt run --webdriver-binary=/path/to/WebKitWebDriver --binary=/path/to/MiniBrowser --processes=16 --log-mach=- webkitgtk_minibrowser /css/css-multicol # Note: to speed up testing i'm only running the /css/css-multicol tests which is enough to reproduce the problem, but this happens with other tests as well This is the output of that wpt command from above: 1) with WebKitGTK from
285309@main
->
https://paste.rs/epekN
2) with WebKitGTK from
285310@main
->
https://paste.rs/jVbMq
On the output of
285310@main
you can see lot of timeouts that don't happen with
285309@main
and also you can see this at the end:
285309@main
: web-platform-test ~~~~~~~~~~~~~~~~~ Ran 1662 checks (1060 subtests, 602 tests) Expected results: 1523 Unexpected results: 139 test: 118 (118 fail) subtest: 21 (21 fail)
285310@main
: web-platform-test ~~~~~~~~~~~~~~~~~ Ran 602 checks (602 tests) Expected results: 411 Unexpected results: 191 test: 191 (118 fail, 73 timeout) Notice how the subtests are not run anymore in
285310@main
. Also with
285310@main
you get lot of warnings like this one: ** (MiniBrowser:1649843): WARNING **: 14:31:51.402: WebKitWebView returned by WebKitWebView::create signal was not created with the related WebKitWebView Note: I don't know if this affects WPE also, I didn't tested.
Attachments
Add attachment
proposed patch, testcase, etc.
Carlos Alberto Lopez Perez
Comment 1
2024-10-28 15:53:42 PDT
(In reply to Carlos Alberto Lopez Perez from
comment #0
)
> > Note: I don't know if this affects WPE also, I didn't tested.
just tested it now: WPE is not affected, only WebKitGTK
Carlos Alberto Lopez Perez
Comment 2
2024-10-29 09:35:56 PDT
On WPT upstream landed recently this change:
https://github.com/web-platform-tests/wpt/commit/bef892c48976038b207f3aedf4088a5552cbae67
Since that change landed the issue is not longer reproducible, however it seems that the above change affected the Safari WebDriver tests causing lots of timeouts. That issue with the Safari WebDriver was later fixed in
https://github.com/web-platform-tests/wpt/commit/70d707faa9a6dca431f89fa0175970c6f0574f31
However, since that last fix for the Safari WebDriver (70d707f) I can observe this difference of behaviour since
285309@main
and
285310@main
with webkitgtk_minibrowser # On WPT commit 70d707f with webkitgtk_minibrowser build at
285309@main
Full log:
https://paste.rs/OzhRt
web-platform-test ~~~~~~~~~~~~~~~~~ Ran 1201 checks (596 subtests, 605 tests) Expected results: 1026 Unexpected results: 175 test: 172 (53 crash, 119 fail) subtest: 3 (3 fail) # On WPT commit 70d707f with webkitgtk_minibrowser build at
285310@main
Full log:
https://paste.rs/ZONOH
web-platform-test ~~~~~~~~~~~~~~~~~ Ran 905 checks (300 subtests, 605 tests) Expected results: 724 Unexpected results: 181 test: 167 (48 crash, 119 fail) subtest: 14 (14 fail) So as you see there is some difference on the number of subtests run. Not sure what to conclude about this. But if you want to reproduce the original issue be sure the checkout WPT commit bef892c^ (the previous one to bef892c that fixes/workarounds the issue)
Alex Christensen
Comment 3
2024-10-29 09:42:32 PDT
Does the affected configuration have PSON enabled?
Carlos Alberto Lopez Perez
Comment 4
2024-10-29 12:26:59 PDT
(In reply to Alex Christensen from
comment #3
)
> Does the affected configuration have PSON enabled?
yes, we made PSON mandatory when using WebKitGTK with GTK4 (which is since a while the default release nightly build) However i quickly tried to disable PSON here in a local build and the behavior seems identical than before
Carlos Alberto Lopez Perez
Comment 5
2024-11-19 05:20:57 PST
Commit
https://commits.webkit.org/286275@main
removed that warning but the underlying issue still remains. You not longer see the warning "WebKitWebView returned by WebKitWebView::create signal was not created with the related WebKitWebView" but the timeouts and the failure to run many of the subtests is still there. I just tested on WPT 7e47e52d5496ce246ca27fa395cceaa0df8169b0 (master of today) plus this WIP patch to add a WPT wpewebkit_minibrowser driver
https://paste.rs/lYSJF
(I will be sending a PR there this week with it). 1) With WebKitGTK $ ./wpt run -y --install-browser --processes=16 --log-mach=- webkitgtk_minibrowser /css/css-multicol [...] 0:14.61 INFO WebKitGTK MiniBrowser bundle for channel nightly installed: WebKitGTK 2.47.1 (
286783@main
) [...] 6:39.70 SUITE_END web-platform-test ~~~~~~~~~~~~~~~~~ Ran 819 checks (214 subtests, 605 tests) Expected results: 642 Unexpected results: 177 test: 170 (51 crash, 119 fail) subtest: 7 (7 fail) Full log:
https://paste.rs/9F7pz
2) With WPE $ ./wpt run -y --install-browser --headless --processes=16 --log-mach=- wpewebkit_minibrowser /css/css-multicol [...] 0:13.25 INFO WPE WebKit MiniBrowser bundle for channel nightly installed: WPE WebKit 2.47.1 (
286783@main
) [...] 5:11.84 SUITE_END web-platform-test ~~~~~~~~~~~~~~~~~ Ran 1669 checks (1064 subtests, 605 tests) Expected results: 1520 Unexpected results: 149 test: 118 (118 fail) subtest: 31 (31 fail) Full log:
https://paste.rs/vyRVF
As you can see the run with WPE took a minute less and ran way more subtests, achieving in the end more than double of expected results (1520 vs 642)
Michael Catanzaro
Comment 6
2024-11-19 07:02:58 PST
(
286275@main
definitely fixed
bug #282409
, though, so there must be multiple problems here.)
Carlos Alberto Lopez Perez
Comment 7
2024-11-19 10:55:33 PST
I think I know what causes that error of `Exception: the window remained open after sending the window close command` that comes from WPT. I was checking to run tests now with webkitgtk and WPT and I noticed that sometimes when the minibrowser window opens to start a test then two tabs appear on it - One that says "MainThread" and is empty, and with the webinspector I can see it has window.location.href==
http://web-platform.test:8000/testharness_runner.html
- Another one with the WPT test itself And the one that is focused is the "MainThread" one See screenshot:
https://people.igalia.com/clopez/wkbug/281747/minibrowser_wpt_tabs.png
So if you do nothing then the test timeouts. But if you focus or click on the tab with the WPT test then it passes. Alternatively if you close the MainThread tab (which forces a focus on the other one) also passes. This easily reproducible running several times the acid tests (because those have a higher timeout value and allows you to check things before the wpt timeout triggers) Run the command below several times until you find this MainThread tab on one of the MiniBrowsers that oppen and then see how it timeouts unless you focus the tab with the tests ./wpt run --log-mach=- --install-browser -y webkitgtk_minibrowser acid
Carlos Alberto Lopez Perez
Comment 8
2024-11-19 10:59:19 PST
(In reply to Carlos Alberto Lopez Perez from
comment #5
)
> Commit
https://commits.webkit.org/286275@main
removed that warning but the > underlying issue still remains. > > You not longer see the warning "WebKitWebView returned by > WebKitWebView::create signal was not created with the related WebKitWebView" > but the timeouts and the failure to run many of the subtests is still there. > > > I just tested on WPT 7e47e52d5496ce246ca27fa395cceaa0df8169b0 (master of > today) plus this WIP patch to add a WPT wpewebkit_minibrowser driver >
https://paste.rs/lYSJF
(I will be sending a PR there this week with it).
just sent the WPT PR here:
https://github.com/web-platform-tests/wpt/pull/49268
Carlos Alberto Lopez Perez
Comment 9
2024-11-19 18:42:20 PST
(In reply to Carlos Alberto Lopez Perez from
comment #7
)
> I think I know what causes that error of `Exception: the window remained > open after sending the window close command` that comes from WPT. > > > I was checking to run tests now with webkitgtk and WPT and I noticed that > sometimes when the minibrowser window opens to start a test then two tabs > appear on it > - One that says "MainThread" and is empty, and with the webinspector I can > see it has > window.location.href==
http://web-platform.test:8000/testharness_runner.html
> - Another one with the WPT test itself > > And the one that is focused is the "MainThread" one > > See screenshot: >
https://people.igalia.com/clopez/wkbug/281747/minibrowser_wpt_tabs.png
> > So if you do nothing then the test timeouts. > > But if you focus or click on the tab with the WPT test then it passes. > Alternatively if you close the MainThread tab (which forces a focus on the > other one) also passes. > > > This easily reproducible running several times the acid tests (because those > have a higher timeout value and allows you to check things before the wpt > timeout triggers) > > Run the command below several times until you find this MainThread tab on > one of the MiniBrowsers that oppen and then see how it timeouts unless you > focus the tab with the tests > > ./wpt run --log-mach=- --install-browser -y webkitgtk_minibrowser acid
I think WebKitGTK MiniBrowser has an issue with the focus of new tabs that WPT now uses by default. IIRC previously WPT was opening new windows instead of new tabs when starting a new test I reported the issue here
https://bugs.webkit.org/show_bug.cgi?id=283392
along with a simplified test case
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug