Moving features to the Storage Service requires the ability to talk to
the Quota system via mojo. storage::QuotaClient is one of the interfaces
that needs to be mojofied.
Migrating all QuotaClient usage to mojo in one CL is risky, because this
CL would introduce timing changes to 7 storage systems (AppCache, Cache
Storage, File System, IndexedDB, NativeIO, Service Workers, WebSQL).
Therefore, QuotaClient will be migrated piece by piece.
This CL introduces the storage::mojom::QuotaClient interface, and
integrates it with QuotaManager. To facilitate a gradual migration,
QuotaManager will support both mojofied and non-mojofied QuotaClients.
QuotaManager tests will cover both types of clients, to ensure correct
operation throughout the migration. Other tests that integrate with
QuotaManager will use mojofied clients, because this reduces future
churn. To maximize test coverage, QuotaManager's support for mojofied
QuotaClients is written on top of the support for non-mojofied
QuotaClients.
This CL also adds TODOs documenting the cleanup that will be required
once all QuotaClients are mojofied.
Bug: 1016065
Change-Id: I6df5a97763447e41eb3b523e180a6c13dfa3199c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2610633
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844178}