Of course Google could do this too, if they had a reason, even if only downstream from Chromium. It's just a commercial decision. Apple have decided they don't want their users to have usable anonymous web apps. Of course, since they don't support beforeinstallprompt, we already know they don't want their users to have web apps, period. Gotta get that sweet 30% cut!
For applications that have you add it to your home screen using the app icon, it may be more of an issue, but why wouldn't you sync that data back up to the server?
It's fine that Apple don't want to support this valid mode of app distribution and use. It is a valid mode, however.
It's not trivial, though, seeing how notification prompts were abused...
If it's a PWA that's regularly used you should be fine. But if not, yeah, that's going to be very annoying.
Installing a native app is a stronger form of opt-in than simply clicking an URL to a new website.
That's what a PWA is :). Browsers should lift these restrictions for installed PWAs, and probably do.
“ Web applications added to the home screen are not part of Safari and thus have their own counter of days of use. Their days of use will match actual use of the web application which resets the timer. We do not expect the first-party in such a web application to have its website data deleted.
If your web application does experience website data deletion, please let us know since we would consider it a serious bug. It is not the intention of Intelligent Tracking Prevention to delete website data for first parties in web applications.”
This post is about them extending it to all storage set from JS.
I expect companies will start working around this with CNAMEing and proxying, and I'm curious how Apple will handle it.
And since they can easily correlate logs server side, they can track people between sites.
I wouldn't be surprised if this is one of the ways ad tracking tries to rebuild a universal identifier like the old urchin module. Might not be as easy as a cname but those might get blocked. It's always a game of cat and mouse. Could place uuid as 1st party httponly cookie. maybe uuid is domain scoped. then 'echo out' so accessible by 3rd party JS. Like a hash, one would need to know the global pooled uuid already and then combined with knowable domain could tie that uuid into the 2nd party tracking pool.
You need the user to manually provide an identifier (i.e. login) to avoid losing everything.
The user's password safe is now the only non-volatile storage mechanism on Safari.
httponly cookies can't be set from JS, and the seven day erasure only applies to cookies set from JS. That's why they're the recommended method for keeping a user logged in.
Blocking 3rd party cookies I'm fully on board with, but I don't want first party cookies deleted unless I actually specify it. Fortunately as a user I can keep using Firefox, but since iOS is always going to be a large percentage of our users, there's not much choice on the provider side.
The key phrase is “without user interaction”. Only e.g. invisible nested iframes that scammy ad companies love to use will have their localstorage limits affected. Top level frames are unchanged.
> “chrome will never have this”
Indeed :)
“seven days of Safari use without user interaction on the site”
Does not mean that top-level frames are unaffected. Everybody is affected. They specifically call out first party storage as being misused currently. I think the correct interpretation is:
Whenever the user interacts with your page then the clock gets reset to 7 days, also the clock only runs on days the user uses Safari.
Now ITP has aligned the remaining script-writable storage forms with the existing client-side cookie restriction, deleting all of a website’s script-writable storage after seven days of Safari use without user interaction on the site.
...maybe "script-writable" should be "third-party-in-iframe-script-writable"? If so this document should be edited.