The good news is, they fixed the geolocation issue. The bad news is, they managed to screw up two more things in exactly the same way.
When I checked back in some time later, I found that content still wouldn’t load—but now, turning geolocation on doesn’t do squat, because I’m no longer getting errors about that. What I did get were errors regarding the Promise feature from EMCAScript 6, and localStorage. I reported these as well.
Promises are an interesting thing, very similar to Futures in Dart which I’ve been working with a lot. Their support is relatively wide, but as with all new Web features it’s nowhere near what you could call universal. On caniuse.com, support for Promises is rated at about 67%. This means if someone visits with a browser that doesn’t have them, the Weather Channel should be including a polyfill script if they want to use Promises.
I got an e-mail back from them. They fixed the Promise issue, and apparently disregarded my note that there was also an error with localStorage.
I have localStorage disabled on most sites, and as a result, the Weather Channel’s script throws a security error when attempting to use it. This error is not being caught (of course), and it therefore prevents some of their core objects from being created. Without those objects, the content loading still fails.
Naturally, I had to reply telling them the loading problem still wasn’t fixed. Which it would have been (I didn’t say this part) if the developers had read my entire message the first time around.
So to recap, so far I’ve seen three site-murdering errors.
- Let’s rely on geolocation, which some users may disable for obvious privacy reasons.
- Let’s rely on the browser having good EMCAScript6 support, which is obviously a bad idea.
- Let’s rely on localStorage, which some users may disable for obvious privacy reasons.
There are times I envy some of the younger programmers who are pushing the envelope with new technologies, and it’s really an amazing time for Web development because it’s so much easier to write code that just plain works now. (At least, you would think so.) But on the other hand, I see what lack of experience is doing to these millennials, and it just makes me wince. These particular errors are rookie mistakes, not something you should see on a big site.