budget.reserve() returns success as long as budget is available and it does deplete the budget. Only getBudget() is returning 0 when notifications are not allowed.
Device:
Nexus 6P, MDB08O, Chrome Beta 60.0.3112.50
Steps:
1) Enable exp web plat features in chrome://flags
2) Visit aluochromium.github.io
3) Set site-engagement to 100 in chrome://site-engagement
4) In page, press "Spend Budget"
Expected:
The reserve should fail due to 0 budget since notifications are still blocked for this page.
Actual:
The reserve succeeded since budget of 48 was calculated, although budget.getBudget() is returning 0.
Comment 1 by aluo@chromium.org
, Jul 7 2017