Currently, QuotaClient defines callbacks (GetUsageCallback, GetOriginsCallback, DeletionCallback) as base::Callback<>
Since these will only ever be called once, they can be OnceCallback, and thus allow use of BindOnce in callers.
...
This is tricky because of uses such as content/browser/cache_storage where the callbacks are passed along through other operations. Much like "const-correctness", "once-correctness" requires updating the entire transitive closure of the... um... Closures... to be correct.
Therefore, it's probably better to update each system (Indexed DB, Cache Storage, Service Worker, File System, WebSQL, ...) to be internally "once-correct" first.
Comment 1 by jsb...@chromium.org
, Jun 19 2017