4 ms·
It's not holding back the web, settle down! It can still render websites perfectly fine and will continue to do so. Seriously, what horse are you backing where
by jalfresi 10y ago
It's not holding back the web, settle down! It can still render websites perfectly fine and will continue to do so.
Seriously, what horse are you backing where iOS Safari is compared to IE6?!? What oh-so important feature you simply must-have, that would even begin to signify that iOS Safari is "holding back the web"?
The web dev world is absolutely mental at the moment...
- manigandham 10y agoThere are a lot of quirks with Safari that are similar to the way IE6 eventually stopped following standards. That fact that localstorage doesnt work in private mode is 1 example.
- kevinchen 10y agoWhere is the W3C standard for private browsing mode?
- enragedcacti 10y agoThere isn't one, that's why it should behave like a normal browser (from the web dev perspective) even while in private mode.
- abalone 10y agoThat doesn't follow. If it literally behaved like a normal browser that would break the privacy guarantee of private mode. In fact you could argue that browsers that implement localStorage in private mode are the ones who are not standards compliant. From the Web Storage spec: "[localStorage] is designed for storage that spans multiple windows, and lasts beyond the current session."[1] Thus if a browser is discarding localStorage prior to the end of the current session, it's explicitly against the spec. This is more than academic. If apps aren't written to explicitly use ephemeral storage then they may not function as expected in private mode, like, say, unexpectedly causing data loss. [1] https://www.w3.org/TR/webstorage/ https://www.w3.org/TR/webstorage/
- derefr 10y agoI can see why that'd make someone cross, but it seems in line with how localstorage works + how browsers define their "private browsing" features. On Chrome, for example, when in Incognito mode, you can't undo-close-tab a tab after closing it. Effectively, every tab you open in these "private browsing" modes will sooner-or-later "self-destruct", including all its cookies, localstorage, etc. (iOS?) Safari just chooses "sooner" rather than "later." If your site relies on using localstorage during the lifecycle of an individual page, you can always replace it with an in-memory mock polyfill if you notice it's missing. There's probably an NPM package for that.
- hartz 10y agoThe point of standards for browsers is that you shouldn't need a polyfill just to support a feature (localStorage) in one browser. Ideally, it would just destroy its contents after your private browsing session is done, just like the way (I believe) all browsers treat cookies in private browsing mode.
- derefr 10y agoSure, what I'm saying is more that localStorage doesn't have the standards equivalent of an SLA guaranteeing it'll work for the "within the lifecycle of one page" use-case. Apple, I think, are just being opinionated (and pushy) here: they think the right way to tell a web-app "your localStorage won't save" is to undefine the API, making trying to write to or read from localStorage raise an exception, so that your app is then forced to decide whether it can go on without localStorage (by handling the exception, or by using a polyfill which does the same) or that it can't (by just telling the user "don't use this page in Private Browsing mode, doofus!" and stalling out.) It's certainly not the approach everyone would be happy with, but it allows developers much more flexibility than the contrary case, where private browsing is a silent effect that might make apps do very stupid things (like, say, downloading the same huge asset bundle into localStorage over and over.)
- manigandham 10y ago> downloading the same huge asset bundle into localStorage This would happen anyway no matter what storage or cache is used since all data is cleared after private browsing session is over. Breaking localstorage (with an over-quota error) is not the way to deal with this. Polyfills are just more crap in complexity and downloaded bytes to compensate for a browser's issues. It would be much better to have a navigator.isPrivate flag enabled so apps can check the environment accurately, not guess based on whether certain APIs work or not. It's not about SLAs but supporting standards. Deleting client-side data is all that private browsing needs to do.
- irrational 10y agoWeb components, Progressive Web Apps, Fetch, etc.
- varenc 10y agoI'd pay top $$$ if someone could show me how to let a mobile Safari user record audio on their microphone and submit it. iOS doesn't permit this in any way, whether it be with getUserMedia or media capture forms. The only way to do audio recording is to build an iOS app just so I can get this one simple feature which is exactly what they want. Repeat this story for a dozen other features as well. Apple's total opaqueness on what their plans are for the future functionality of their browser certainly doesn't help either.
- jalfresi 10y agoWeb pages that can access the microphone sounds like an absolutely insane idea to me, but then like I said, web dev is absolutely mental at the moment... get off my lawn etc.
- Drakim 10y agoSo Safari doesn't hold the web back like IE6, because the ways it's hold the web back doesn't count because you don't want those features. Not buying it.
- jalfresi 10y agoI'm suggesting that the web is fine - its stupid nonsense like javascript access to the microphone that gives the illusion that the web is moving forward, and that some people are freaking out proclaiming the end of days because some ridiculous feature hasn't been implemented.
- manigandham 10y agoHow is it ridiculous just because it's a feature you don't use? There are plenty of uses for newer standards, that's why they're created, but it only works if the browsers carry their weight and implement them consistently. Safari doesnt, and is thus holding back the progress, just like IE6+ did.
- imjasonmiller 10y ago
- smhg 10y agoWeb development relies on browsers. There is nothing mental about this. Service workers are another example of a feature that is missing in Safari. And an important one for offline support.
- chrisweekly 10y agoService Worker!!!! Its absence is a crippling limitation.
- sametmax 10y ago+1. This is the main problem right now, especially since web workers are a workaround for anything blocking the main thread, like some local storage.