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

OSM map no longer loads in IE11 #3387

Closed
RemySijbom opened this issue Dec 1, 2021 · 11 comments
Closed

OSM map no longer loads in IE11 #3387

RemySijbom opened this issue Dec 1, 2021 · 11 comments
Labels
bug Something is broken or not working as expected

Comments

@RemySijbom
Copy link

URL

https://www.openstreetmap.org/

How to reproduce the issue?

1: start IE11
2: open https://www.openstreetmap.org/
3: the map doesn't load

Screenshot(s) or anything else?

The HTML console shows a syntaxis-error (index-082bdf22ac1acb0b592af44c07db66f0510f4716d509dd00e3f126a4c4365396.js (8,249)).

The issue started this week.

OSM website
OSM syntaxiserror HTML console

Which browsers are you seeing this problem on?

No response

@gravitystorm
Copy link
Collaborator

I don't have an IE11 VM to do any bisection testing, but my first suspicion would be the locatecontrol upgrade since there was some ES6-related upgrades a few days ago in domoritz/leaflet-locatecontrol@6df3c2a . Perhaps there's some stuff in there that the es6 shim isn't fixing on IE11?

Otherwise, I don't see anything obvious in the recent history, so we would need to do some bisecting to narrow this down.

@gravitystorm gravitystorm added the bug Something is broken or not working as expected label Dec 1, 2021
@tomhughes
Copy link
Member

I've got a VM with IE11 but I don't know that there's any good way to get more information than that console error...

If 8249 is meant to be the byte offset in the file then I don't see anything obvious at that position.

@tomhughes
Copy link
Member

tomhughes commented Dec 1, 2021

That's actually line 8 character 249 not byte 8249 and it's this line which is using an arrow function :-(

const LDomUtilApplyClassesMethod = (method, element, classNames) => {

@gravitystorm
Copy link
Collaborator

It also uses template strings, which according to polyfillpolyfill/polyfill-service#900 can't be polyfilled either.

@gravitystorm
Copy link
Collaborator

I've opened #3388 as a workaround while we make the bigger decision on IE11 support.

As far as I understand it, we can do two things:

  1. Keep using the latest versions of locatecontrol, and drop support for IE11 completely. This also means we can remove the es6 shim, and start using es6 things in our own JS code.
  2. Set up a transpilation pipeline (e.g. via webpacker) to convert the es6 code into es5 code before it's sent to the browser.

I think 2) sounds like a lot of work for a small number of end users, but I don't know how small that number is. I think 1) would be my medium-term goal, but then we need to decide if that happens either now, in the medium term (e.g. mid 2022?) or in the long term (after all, we supported ie8 etc for quite some time after they were obsolete).

So I'm interested in what other people think about a) the options and b) the timeline.

@bhousel
Copy link
Member

bhousel commented Dec 1, 2021

These days I think dropping support for IE11 is reasonable.

On some of my projects, I use this snippet of code at the beginning of the body to show a warning from browser-update.org (which I have reviewed and I trust) to tell users of old browsers that things might not work properly and they need to upgrade. You can customize the messages or the browser versions.

<body>
<script>var $buoop={required:{i:15,e:-4,f:-3,o:-3,s:-1,c:-3},reminder:0,noclose:true,no_permanent_hide:true,insecure:true,api:2021.06};</script>
<script src='https://browser-update.org/update.js'></script>
...

@tomhughes
Copy link
Member

Current trajectory of IE visits to the site:

image

I'm reluctant to rework the asset pipeline to use webpack at the moment given it's all changing again in rails 7...

@tomhughes
Copy link
Member

Monthly trajectory:

image

As you can see a substantial drop at the start of the year when it was being pushed off support by Microsoft but still a few thousand a day.

@gravitystorm
Copy link
Collaborator

I think based on those numbers, we should stick with continued IE11 support, for now.

At the moment this means we're only blocked on the leaflet-locatecontrol package, and I think the tradeoff is currently worthwhile since there's no feature or bugfix from that package that we currently need.

However, I can see us wanting to (indirectly) drop IE11 in the medium term, in particular if we start using newer frameworks (like HotWire) or if other existing JS things (like core Leaflet) were to become ES6-only. So I encourage any IE11 users to consider alternatives, and expect our support to end some time in 2022.

@tomhughes
Copy link
Member

Well iD may kind of make the decision for us in part if I'm reading the runes in openstreetmap/iD#8774 right.

@HolgerJeromin
Copy link
Contributor

I think more people are browsing the map and than changing the map. So IMO it is not super important what iD does.
But I would drop ie11 support soon, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something is broken or not working as expected
Projects
None yet
Development

No branches or pull requests

5 participants