Battery draining
As with location tracking, this seems like a reason why the user has to opt in. E.g. if a user opts into the Notification API that site can then cause a bunch of notifications to appear, perhaps leading the user to disable the feature.
User agents could also have heuristics here and perhaps indicate in the browser/OS settings what sites are draining the battery.
Agree.
Closing this as I think there is agreement that the UAs need to be careful with regard to user resources.
This should also be called out.
By the way, people I know have been turning off "Background App Refresh" (on iOS) when they learn of it, in order to preserve battery. It's an anecdote, but I wonder if the user upsides of this feature is really that significant compared to the downsides. On the other hand, there's only one way to find out...
That's why I've gone for "auto" as the default. A UA/user could decide that all sync must happen on charge
On Wed, 8 Apr 2015 09:25 Anne van Kesteren [email protected] wrote:
By the way, people I know have been turning off "Background App Refresh" (on iOS) when they learn of it, in order to preserve battery. It's an anecdote, but I wonder if the user upsides of this feature is really that significant compared to the downsides. On the other hand, there's only one way to find out...
— Reply to this email directly or view it on GitHub https://github.com/slightlyoff/BackgroundSync/issues/37#issuecomment-90840020 .
@mkruisselbrink This is largely a periodic sync issue but even for one-shot the spec should probably say something about resource usage and suggest that the UA cap retries and time not only for privacy reasons but also to prevent battery drain.
The UA could also choose to revert to a mode where syncs are only allowed while the user is interacting with the page, in order to preserve battery when the device is unattended. This would be similar to the way that the API will need to operate when the application does not have permissions to sense the network state (When a webview is embedded in another application, outside of a browser, for instance)