Closed
Description
Updating from karma 5.2.3 to 6.2.0 I find that the tests no longer load in IE9, for example via SauceLabs on the https://github.com/js-reporters/js-reporters repository:
IE 10.0 (Windows 7): Executed 23 of 23 SUCCESS (0.232 secs / 0.029 secs)
IE 10.0 (Windows 7): Executed 23 of 23 SUCCESS (0.232 secs / 0.029 secs)
Firefox 45.0 (Windows 7): Executed 23 of 23 SUCCESS (0.199 secs / 0.061 secs)
Edge 15.15063 (Windows 10): Executed 23 of 23 SUCCESS (0.312 secs / 0.075 secs)
IE 11.0 (Windows 7): Executed 23 of 23 SUCCESS (0.21 secs / 0.034 secs)
Chrome 58.0.3029.81 (Windows 7): Executed 23 of 23 SUCCESS (0.216 secs / 0.045 secs)
Edge 88.0.705.50 (Windows 10): Executed 23 of 23 SUCCESS (0.186 secs / 0.024 secs)
14 03 2021 02:04:20.287:WARN [launcher]: internet explorer 9 on SauceLabs have not captured in 60000 ms, killing.
14 03 2021 02:05:23.193:WARN [launcher]: internet explorer 9 on SauceLabs have not captured in 60000 ms, killing.
14 03 2021 02:05:26.784:ERROR [launcher]: internet explorer 9 on SauceLabs failed 2 times (timeout). Giving up.
In the video recording, I see that the "Karma is Idle" page appears but nothing after that. No further error what I could find, so probably something very early on. Perhaps something with socket.io, or unsupported ES6+ syntax or method in client changes?
Activity
Build: Update dev deps
johnjbarton commentedon Mar 15, 2021
Yes we saw this also. The issue turned out to be a use of a ES feature in socket.io client that IE9 did not support. Since it is not practical to change socket.io or stay on v2, we gave up on IE9 (not a big loss, very little use now=)
Karma 6 does not test on IE9, but we did choose to continue to support IE11.
Krinkle commentedon Mar 15, 2021
Ack, I saw the removal of IE9 from CI, and I saw a proposal for Karma 7 at #3503. But I saw no note of IE9 support removal in the Karma 6 release notes.
I don't mind dropping support for IE9 in end-user applications, but for Karma it would have a pretty big cascading effect as it would mean projects like js-reporters and QUnit cannot test themselves in IE9 and by extension that would mean everyone using QUnit also has to drop support for IE9 for any kind of library or application before upgrading. For now we can version-pin, and ideally browsers and CI environments are stable and thus that can continue to work. However given how much Node versions change, browser launchers etc, it's not unlikely we'll need to update to Karma 6 at some point in order for other things to work. Having Karma 6 as last major release for old IE would be nice, it could be retained in a branch for a while after the main branch moves to Karma 7 for any essential backports needed.
johnjbarton commentedon Mar 15, 2021
I think we could delay or otherwise work around issues in the karma client (eg transpiling if we really want to use modern syntax).
However, freezing the socket-io level to support IE9 seems unwise. At some point IE9 support needs to end I don't know of a compelling reasons that point is not now. I don't know how to move the ecosystem other than to take a tiny step forward.
devoto13 commentedon Mar 15, 2021
I agree with @johnjbarton that we want to drop IE9 and IE10 as usage is tiny, supporting these browsers becomes a burden for Karma and blocks Karma from moving forward (e.g. use WebSockets directly instead of socket.io). But I also see how this change might be disruptive for some Karma users and it was not clearly announced as a breaking change in v6.
According to https://socket.io/docs/v3/client-installation/index.html, socket.io supports IE9, so it is probably some tiny change needed somewhere in our code to get it working. I'll see how hard it is to fix.
devoto13 commentedon Mar 15, 2021
I've just tried to run tests on IE9 and apparently they pass: https://automate.browserstack.com/dashboard/v2/builds/353284844776d04545344febcc9ac02d87a7b113/sessions/754cc7a656eadfaf9abc8d7462d2724bbb793a07?buildStatuses=running&buildUserIds=3623869 (requires auth). The problem is that on initial page load the page does not connect back to the Karma server, but after reload it successfully connects and tests pass. I have no idea why this happens. I'll try to poke around more in the coming days.
fix: fix running tests in IE9
fix: fix running tests in IE9
fix: fix running tests in IE9 (#3668)
chore(release): 6.3.2 [skip ci]
karmarunnerbot commentedon Mar 29, 2021
🎉 This issue has been resolved in version 6.3.2 🎉
The release is available on:
Your semantic-release bot 📦🚀
6 remaining items