Primary eng (and PM) emails
Summary
The Budget API describes three functions that were intended to help developers reason about browser-specific behaviour surrounding the Push API, particularly the need to display a notification. We shipped reserve() in M60, and experimented with getCost() and getBudget() between M60–62.
Motivation
The experiment for getCost() and getBudget() ended without feedback, nor any developer feedback for bringing them back. Given that they're not exposed anymore, we can remove them immediately.
The reserve() method indeed is exposed to the Web, but has seen 20 calls in the past month(!). There is no documentation on it other than our own, so I'm hopeful that we can jump straight to removal.
Mozilla's Martin Thomson made an alternative proposal that we could pursue, but given that demand seems infinitesimal we won't prioritize this anytime soon.
Interoperability and Compatibility Risk
The Budget API is not supported by any other vendors. Since we're seeing less than a call a day, real usage out there will be zero.
Edge: Not supported
Firefox: Not supported
Safari: Not supported
Alternative implementation suggestion for web developers
Always show a notification when the `push` event is triggered in the Service Worker, unless there is an opened and focused window for its origin.
Usage information from UseCounter
As mentioned before, 20 calls in the past month for reserve(), zero for the others. This is tracked by Blink.BudgetAPI.QueryBudget and Blink.BudgetAPI.Reserve.
Entry on the feature dashboard