You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support only last 3 iOS versions and drop Android Browser in jQuery 4.0+ #3950
We currently support most browsers in their current & current-1 versions. The exceptions are IE, iOS & Android. Wrt to IE it's obvious we can't switch to the "current & current-1" scheme as this browser is dead and we support it for legacy reasons. Android Browser 4.0-4.3 still has around 6.1% of Android Browser market share (91.8% of which are Android 4.1-4.3) so we can't drop Android Browser just yet.
iOS is different. It doesn't progress as quickly as desktop rolling-release browsers as Safari cannot be updated separately from the OS but people update the OS pretty quickly. Stats show hardly anyone uses an iOS version older than current-2 at any given moment. Apple stats provide some insight but they don't separate current-2 from older versions.
Currently we explicitly support iOS 7+. This means as long as we don't release a new major jQuery version we have to test on more & more iOS versions (currently 4 of them). Could we limit ourselves to a specific number of iOS versions supported in line with most of the desktop browsers? I feel current & current-1 might be too little but perhaps we can limit ourselves to last 3 stable versions?
In issue #3886 timmy said "A complete rewrite using next generation JavaScript...we want to use es2015 modules."
Would it not make sense to remove support for browsers that don't implement the latest web features and let them continue using jQuery 3.x? That way a huge amount of cruft can be removed for such old and dated browsers.
@thecodingdude We'll still have to support IE in the foreseeable future (at least IE 11; currently IE 9+ but it doesn't change that much) so we can't do that, unfortunately.
I mean, there's already president for removing browsers - your blog post mentions "If you need to support older browsers like Internet Explorer 6-8, Opera 12.1x or Safari 5.1+, use jQuery 1.12." so it would be no different here right? If you want IE 9-11 use jQuery 3.x
IE 11 literally supports no modern web platform features so how you plan on using next generation JS like modules and supporting IE11 is a mystery. Starting from a modern foundation (not IE) would be much easier to attract pull requests and such rather than working with such an old codebase.
There's no conceivable reason I can think of to support IE in any capacity in version 4, and not require people to use v3 if they want that support. The idea is to let go of browsers over time, and IE has certainly had its day by now...
how you plan on using next generation JS like modules and supporting IE11 is a mystery
We'd use modules during development but we'd transpile using something like rollup so that the final bundle is one JS script that doesn't use modules.
There's no conceivable reason I can think of to support IE in any capacity in version 4, and not require people to use v3 if they want that support.
We only work on the latest version of jQuery. Releasing version 4 that doesn't support IE would mean 95% of users wouldn't upgrade to this version, they wouldn't get new features & bug fixes. It's not worth it, basically every library in the world supports IE 11. There are just way too many users of that browser.
Makes sense - thanks for the clarification. I'd imagine in that case we would be able to make our own builds with the config we want (such as removing any code designed for IE11), that could satisfy the best of both worlds :)
IE11 is the only available Microsoft browser on Windows 7 and 8 (which are still supported by Microsoft). It's really too early to think about dropping IE11 support imho.
Back on topic - I think it makes sense to support last 3 versions of iOS. iOS 8 (combined) has less than 1% market share of iOS according to this: https://data.apteligent.com/ios/
changed the title [-]Support only last n (3?) iOS versions in jQuery 4.0+[/-][+]Support only last 3 iOS versions and Android Browser >=4.1 in jQuery 4.0+[/+]on Feb 12, 2018
It turns out BrowserStack is in the process of removing emulators for mobile devices in favor of real ones. They seem to work really well which is why I was able to add Android 8.0 to our main run instead of the periodic one.
Unfortunately, this planned removal of emulators means all Android Browser instances will disappear (as Android <4.4 is only available via emulators). This will happen in the next 3 months so we even need to figure out how to handle this in 3.x where we still support those browsers.
Sauce Labs has already removed Android Browser some time ago. In light of all this I think we definitely should drop all Android <4.4 in jQuery 4.0. Marking as Needs review for a discussion.
Activity
timmywil commentedon Jan 29, 2018
Decided on last 3 stable for iOS. Android 4.0 will go away.
thecodingdude commentedon Feb 1, 2018
In issue #3886 timmy said "A complete rewrite using next generation JavaScript...we want to use es2015 modules."
Would it not make sense to remove support for browsers that don't implement the latest web features and let them continue using jQuery 3.x? That way a huge amount of cruft can be removed for such old and dated browsers.
mgol commentedon Feb 1, 2018
@thecodingdude We'll still have to support IE in the foreseeable future (at least IE 11; currently IE 9+ but it doesn't change that much) so we can't do that, unfortunately.
thecodingdude commentedon Feb 1, 2018
I mean, there's already president for removing browsers - your blog post mentions "If you need to support older browsers like Internet Explorer 6-8, Opera 12.1x or Safari 5.1+, use jQuery 1.12." so it would be no different here right? If you want IE 9-11 use jQuery 3.x
IE 11 literally supports no modern web platform features so how you plan on using next generation JS like modules and supporting IE11 is a mystery. Starting from a modern foundation (not IE) would be much easier to attract pull requests and such rather than working with such an old codebase.
There's no conceivable reason I can think of to support IE in any capacity in version 4, and not require people to use v3 if they want that support. The idea is to let go of browsers over time, and IE has certainly had its day by now...
Just my thoughts...
mgol commentedon Feb 1, 2018
We'd use modules during development but we'd transpile using something like rollup so that the final bundle is one JS script that doesn't use modules.
We only work on the latest version of jQuery. Releasing version 4 that doesn't support IE would mean 95% of users wouldn't upgrade to this version, they wouldn't get new features & bug fixes. It's not worth it, basically every library in the world supports IE 11. There are just way too many users of that browser.
thecodingdude commentedon Feb 1, 2018
Makes sense - thanks for the clarification. I'd imagine in that case we would be able to make our own builds with the config we want (such as removing any code designed for IE11), that could satisfy the best of both worlds :)
coliff commentedon Feb 6, 2018
IE 11 is still more popular than Edge with 6.2% desktop marketshare (more than Safari!) . REF: http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/worldwide/#monthly-201801-201801-bar
IE11 is the only available Microsoft browser on Windows 7 and 8 (which are still supported by Microsoft). It's really too early to think about dropping IE11 support imho.
Back on topic - I think it makes sense to support last 3 versions of iOS. iOS 8 (combined) has less than 1% market share of iOS according to this: https://data.apteligent.com/ios/
[-]Support only last n (3?) iOS versions in jQuery 4.0+[/-][+]Support only last 3 iOS versions and Android Browser >=4.1 in jQuery 4.0+[/+]mgol commentedon Mar 23, 2018
It turns out BrowserStack is in the process of removing emulators for mobile devices in favor of real ones. They seem to work really well which is why I was able to add Android 8.0 to our main run instead of the periodic one.
Unfortunately, this planned removal of emulators means all Android Browser instances will disappear (as Android <4.4 is only available via emulators). This will happen in the next 3 months so we even need to figure out how to handle this in 3.x where we still support those browsers.
Sauce Labs has already removed Android Browser some time ago. In light of all this I think we definitely should drop all Android <4.4 in jQuery 4.0. Marking as
Needs reviewfor a discussion.mgol commentedon Mar 23, 2018
FWIW, Androids older than 4.4 currently have 5.7% of market share of all Android devices according to https://developer.android.com/about/dashboards/index.html.
8 remaining items
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <10, Android Browser & PhantomJS
Core: Drop support for IE <11, iOS <11, Firefox <65, Android Browser …
Core: Drop support for IE <11, iOS <11, Firefox <65, Android Browser …