Predictable app updating
By Dibyajyoti Pal (Google) and the Web Applications Working Group
Predictable app updating aims to provide developers with consistent control over PWA updates, minimizing user interruptions and wasting of network resources through redundant icon downloads. Non security sensitive fields are silently updated, while an UX is shown for security-sensitive changes, and only triggering icon updates when the icon URL changes, similar to Cache-Control:Immutable behavior. This approach seeks to bridge the gap between PWAs and native apps by making the update process more deterministic and user-friendly.
Video
Transcript
So, here I am demoing the predictable app updating feature on Chrome running v143.
To enable this feature, please turn on the predictable app updating flag, from Chrome flags, if you want to test it out.
So how does this feature actually look? Let's find out.
So I will be loading a test site that I created for demoing app updates. It allows you to change the name icon and the theme color of a manifest that's sort of served for the app, and the resultant manifest being there. You can see that there are icon URLs and each icon pointing to a different resource.
So, let's install this app. Let's see what happens. The app gets installed. All pretty good. Before this however I kind of want to demo what happens when we change a non security sensitive field like the theme color. So let's say I change it to sky blue.
I refresh the page and there you go. The theme color got changed. The user was notified because it's not security sensitive.
What happens if we want to update icons but the icons are not really that different from before or after? In this use case, I'm going to choose alt icons. And as you'll notice, the source URLs have changed. Now they're pointing at different URLs.
Now, this is what we are sort of basing our whole app updating flow on. As you can see, because the icon URL have changed, the app update has been applied. We did not, you'll notice that we didn't really tell the user about this because we kind of don't want to tell them if the icon difference is not that much.
But what happens if you have a big update? So we show the chip and then we show the dialogue to the user. We say ‘hey, the apps icon and name is changed. Do you want to ignore, install or update?’ And what happens when you click on update? It gets applied to the chrome and anywhere on the operating system. So this is predictable app updating.
Developers have the option of triggering app updates only by changing the icon URLs or their names. Everything else is updated silently and the users now have the option of either accepting or not accepting the update if they do not want to and thus both the developer and the user have control over their PWAs.
Thank you.