See e.g. crash/a43ddc939316c9be.
void QuotaTracker::GetDatabaseSizeAndSpaceAvailableToOrigin(
SecurityOrigin* origin,
const String& database_name,
unsigned long long* database_size,
unsigned long long* space_available) {
// Extra scope to unlock prior to potentially calling Platform.
{
MutexLocker lock_data(data_guard_);
DCHECK(database_sizes_.Contains(origin->ToRawString())); <<< HERE
HashMap<String, SizeMap>::const_iterator it =
database_sizes_.find(origin->ToRawString());
DCHECK(it->value.Contains(database_name));
*database_size = it->value.at(database_name);
}
// The embedder hasn't pushed this value to us, so we pull it as needed.
*space_available = Platform::Current()->DatabaseGetSpaceAvailableForOrigin(
WebSecurityOrigin(origin));
}
Comment 1 by siggi@chromium.org
, Sep 5 2017