On 23 October 2014 23:29, Martin Thomson <martin.thom...@gmail.com> wrote:
> It means that important features that provide > these measures (do not disturb, more contextual event filtering) are > not available to applications by default. > System-wide do-not-disturb would still work (for example in Android Lollipop <http://www.androidcentral.com/android-l-preview-do-not-disturb-mode> any non-whitelisted notifications shown by apps during do-not-disturb mode are silent and hidden away behind a single unobtrusive "X notifications hidden" notification). I agree that app specific contextual event filtering can sometimes provide a better user experience, and would indeed require full push permission; these apps should just go ahead and request full push permission (though if the user grants push notifications [Notification.requestPermission] then denies silent background execution [pushRegistrationManager.register without userVisibleOnly], the app might still benefit by being able to fall back on unfiltered push notifications [pushRegistrationManager.register with userVisibleOnly]. I'd like to find better ways of dealing with this problem. This > approach seems like more of a cop-out to me. I'm seriously > jet-lagged, so only two ideas spring to mind, I'm sure you can find > some more if you set your mind to it: Usage budgets might be applied > to various resources, after which a SW is activated less often. For background sync[1], such a throttling approach would be ideal, as there is no expectation of timeliness. But push is different: users can come to depend on timely delivery of push notifications, and sufficiently heavy-handed throttling would introduce unreliability/inconsistency - especially if the goal is to mitigate geoip tracking, since only a handful of push messages might be enough to locate e.g. your home and work. Or good accounting and reporting (see various activity monitors on > different operating systems that account for all sorts of resource > usage, Yes, we want clear usage tracking UI as well. But realistically, only power users monitor such things; on Android and iOS, that still provides a useful feedback mechanism via app store reviews, but users don't normally visit websites via an app store. And again, this doesn't really mitigate geoip tracking. > or you could generate simple notifications like: "this app is > burning your battery/network, turn it off?") > We considered that as well, but to mitigate geoip tracking, we'd have to show this warning for every few pushes that don't show user-visible UI, and at that point, it's better for the app to just always show a notification of its choice (which will at least be slightly useful) than for the UA to keep showing an annoying warning. Thanks, John [1]: https://github.com/slightlyoff/BackgroundSync/blob/master/explainer.md