Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

karma 1.4.0 broke IE8 support #2556

Closed
gkatsev opened this issue Jan 30, 2017 · 16 comments
Closed

karma 1.4.0 broke IE8 support #2556

gkatsev opened this issue Jan 30, 2017 · 16 comments

Comments

@gkatsev
Copy link

gkatsev commented Jan 30, 2017

Expected behaviour

Running karma in IE8 is possible.

Actual behaviour

IE8 does not work anymore.

Environment Details

  • Karma version (output of karma --version):
  • Relevant part of your karma.config.js file

Karma version: 1.4.1
My karma config is available here

Steps to reproduce the behaviour

  1. Start karma with something like
karma start test/karma.conf.js --no-single-run
  1. navigate to 0.0.0.0:9876 once it loads
  2. notice that there are errors in the console.
    errors in ie8

I noticed this first when greenkeeper updated the dependency to karma 1.4.0. After several travis build retries, it still wouldn't connect to IE8 (see build).
It looks like it's related to the socket.io update and probably broke inadvertently.
Dropping back down to version 1.3.0 of karma, everything works great still.

Potential solutions, they're not mutually exclusive:

  • add the es3 preset to make sure that words like default are quoted properly.
  • investigate why the socket.io update causes an error
  • drop support for IE8 in a major update

I'd be happy to try and help making the first two options happen. In the meantime, I'm staying with the 1.3.0 version of karma.

@gkatsev
Copy link
Author

gkatsev commented Jan 30, 2017

Here's greenkeeper's issue against the videojs project which alerted me to this: videojs/video.js#3946

@dignifiedquire
Copy link
Member

Thank you for the report. If you could help us figure out what exactly the issues are, that would be great. As far as I understood socket.io broke IE8 but fixed it later at which point I upgraded the dependency. But it sounds like sth ist still not right.
Agreed on using ES3 preset, want to do a PR for that?

@gkatsev
Copy link
Author

gkatsev commented Jan 30, 2017

I'll make a PR for the es3 preset and I'll investigate the socket.io thing. Thanks for the quick response!

@gkatsev
Copy link
Author

gkatsev commented Jan 30, 2017

The es3 preset PR: #2557

@gkatsev
Copy link
Author

gkatsev commented Jan 30, 2017

So, the socket.io issue is that uglify 2.7 disabled support for IE8 in a minor version update. Since karma uses the minified file it broke. Switching to the unminified file works great. I'll open an issue/PR against socket.io-client

@gkatsev
Copy link
Author

gkatsev commented Jan 31, 2017

I opened up an issue against socket.io-client: socketio/socket.io-client#1063
Unfortunately, I can't help out anymore with this this week (most likely). It seems like the problem isn't even in socket.io-client but in a dependency.

An easy workaround is to serve the socket.io-client file manually and only use the unminified file as that one works.

I'll check back in next week.

gkatsev added a commit to gkatsev/video.js that referenced this issue Jan 31, 2017
Karma 1.4.0 indavertantely broke IE8 when updating socket.io.
This pins karma to 1.3.0 a version that is known to work on IE8.

See karma-runner/karma#2556
See socketio/socket.io-client#1063
gkatsev added a commit to videojs/video.js that referenced this issue Jan 31, 2017
Karma 1.4.0 indavertantely broke IE8 when updating socket.io.
This pins karma to 1.3.0 a version that is known to work on IE8.

See karma-runner/karma#2556
See socketio/socket.io-client#1063
mgol added a commit to jquery/sizzle that referenced this issue Feb 15, 2017
Karma can't be updated to 1.4 as it breaks on IE 8 & lower:
karma-runner/karma#2556

Grunt can't be updated to 1.x as the old grunt-jscs peer-depends on Grunt 0.4
and in npm 2 (used by default in Node 4 LTS) this breaks npm install. Updating
grunt-jscs to a newer version (or switching to ESLint) would require lots
of style fixes.
@exogen
Copy link

exogen commented Apr 6, 2017

Does anyone know of a workaround for this? I can't seem to get IE8 working even if I downgrade Karma to 1.3.0.

@mgol
Copy link
Contributor

mgol commented Apr 6, 2017

@exogen Sizzle uses Karma 1.1.1 and it seems to work with IE 8 and even 7: https://travis-ci.org/jquery/sizzle.

@exogen
Copy link

exogen commented Apr 7, 2017

@mgol Thanks for the tip! After I couldn't get 1.1.1 to work either, I started looking at other dependencies. It works after swapping out karma-mocha/mocha/expect.js for karma-jasmine/jasmine-core, so I guess one of those deps broke IE8 compatibility. Karma 1.3.0 does indeed work with IE8 (latest is still broken however).

@maksimr
Copy link
Contributor

maksimr commented Apr 7, 2017

@exogen look at karma-runner/karma-jasmine#105 and karma-runner/karma-mocha#104 maybe this is your case

mgol added a commit to jquery/sizzle that referenced this issue Aug 23, 2017
Karma can't be updated to 1.4 as it breaks on IE 8 & lower:
karma-runner/karma#2556

Grunt can't be updated to 1.x as the old grunt-jscs peer-depends on Grunt 0.4
and in npm 2 (used by default in Node 4 LTS) this breaks npm install. Updating
grunt-jscs to a newer version (or switching to ESLint) would require lots
of style fixes.
mgol added a commit to jquery/sizzle that referenced this issue Aug 23, 2017
Karma can't be updated to 1.4 as it breaks on IE 8 & lower:
karma-runner/karma#2556

Grunt can't be updated to 1.x as the old grunt-jscs peer-depends on Grunt 0.4
and in npm 2 (used by default in Node 4 LTS) this breaks npm install. Updating
grunt-jscs to a newer version (or switching to ESLint) would require lots
of style fixes.
mgol added a commit to jquery/sizzle that referenced this issue Aug 28, 2017
Karma can't be updated to 1.4 as it breaks on IE 8 & lower:
karma-runner/karma#2556

Grunt can't be updated to 1.x as the old grunt-jscs peer-depends on Grunt 0.4
and in npm 2 (used by default in Node 4 LTS) this breaks npm install. Updating
grunt-jscs to a newer version (or switching to ESLint) would require lots
of style fixes.

Closes gh-399
bengourley added a commit to bugsnag/bugsnag-js that referenced this issue Aug 30, 2017
As outlined in the linked issue, it looks like our loose version
range allowed a newer Karma to be install that breaks in old IEs.

Karma issue tracker link:
karma-runner/karma#2556

For now, pinning to 1.3.0 resolves a transitive dependency tree
which "works".
bengourley added a commit to bugsnag/bugsnag-js that referenced this issue Aug 30, 2017
As outlined in the linked issue, it looks like our loose version# range allowed a newer Karma to be install that breaks in old IEs.# On branch debug-ci
Karma issue tracker link:# modified: karma-common.js karma-runner/karma#2556 modified: package.json
For now, pinning to 1.3.0 resolves a transitive dependency tree
which "works".
bengourley added a commit to bugsnag/bugsnag-js that referenced this issue Aug 30, 2017
As outlined in the linked issue, it looks like our loose version
range allowed a newer Karma to be install that breaks in old IEs.

Karma issue tracker link:
karma-runner/karma#2556

For now, pinning to 1.3.0 resolves a transitive dependency tree
which "works".
@EzraBrooks
Copy link
Collaborator

Can anyone in this thread verify that this issue is fixed on master with socket.io version 2.0.3?

@gkatsev
Copy link
Author

gkatsev commented Dec 7, 2017

I had a test run in Video.js using the latest karma from github and it seems to be working (commit): https://travis-ci.org/videojs/video.js/builds/313129759
There's also been a lot of things happening in the repo since the last release, so, another release would be awesome!

@gkatsev
Copy link
Author

gkatsev commented Dec 11, 2017

@dignifiedquire any change we could get a new release of karma? The update to socket.io seems to have fixed this issue. Thanks!

@gkatsev
Copy link
Author

gkatsev commented Dec 21, 2017

2.0.0 is out and seems to be working great! Closing this issue as addressed. Thanks!

@gkatsev gkatsev closed this as completed Dec 21, 2017
@dignifiedquire
Copy link
Member

dignifiedquire commented Dec 21, 2017 via email

@gkatsev
Copy link
Author

gkatsev commented Dec 21, 2017

It happens, thanks for your hard work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants