1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-08 04:49:12 +02:00

Fix ability to overwrite overquota'ed cloud storage

This commit fixes deleting all entries when cloud
storage usage is beyond allowed limit.

The issue would prevent pushing new data well within
quota limit because the old data beyond limit was
never removed in the first place.
This commit is contained in:
Raymond Hill 2020-08-24 11:47:57 -04:00
parent 63e2261ff7
commit 6284eca351
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -1522,8 +1522,6 @@ vAPI.cloud = (( ) => {
maxChunkSize = evalMaxChunkSize();
}, { once: true });
const maxStorageSize = QUOTA_BYTES;
const options = {
defaultDeviceName: window.navigator.platform,
deviceName: undefined,
@ -1562,13 +1560,7 @@ vAPI.cloud = (( ) => {
const deleteChunks = async function(datakey, start) {
const keys = [];
// No point in deleting more than:
// - The max number of chunks per item
// - The max number of chunks per storage limit
const n = Math.min(
maxChunkCountPerItem,
Math.ceil(maxStorageSize / maxChunkSize)
);
const n = await getCoarseChunkCount(datakey);
for ( let i = start; i < n; i++ ) {
keys.push(datakey + i.toString());
}
@ -1612,7 +1604,7 @@ vAPI.cloud = (( ) => {
// this will free storage space which could otherwise cause the push
// operation to fail.
try {
await deleteChunks(datakey, chunkCount);
await deleteChunks(datakey, chunkCount + 1);
} catch (reason) {
}