Commit b98a7598 authored by Daniel Murphy's avatar Daniel Murphy

[IndexedDB] Disable missing blob database corruption on Docs

This change removes the kWipeCorruptV2IDBDatabases feature to now mark
databases that have missing blobs (so permantently corrupt databases)
as corrupt, so they are cleared appropriately. Since Docs has error
handling here, and we are in active communications with them, disable
this corruption handling only for Docs. The reporting will stay in
place to monitor how small of a problem this is.

The numbers on this are pretty small, there are less than 0.005% of
users that have these non-docs corrupt databases.

R=pwnall@chromium.org

Bug: 857159
Change-Id: Icf8feac9ad6b626108e00213447a706bbe264e5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1633334Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666468}
parent 79850739
...@@ -656,12 +656,8 @@ leveldb::Status IndexedDBBackingStore::Initialize(bool clean_live_journal) { ...@@ -656,12 +656,8 @@ leveldb::Status IndexedDBBackingStore::Initialize(bool clean_live_journal) {
indexed_db::ReportV2Schema(has_blobs, origin_); indexed_db::ReportV2Schema(has_blobs, origin_);
if (has_blobs) { if (has_blobs) {
INTERNAL_CONSISTENCY_ERROR(UPGRADING_SCHEMA_CORRUPTED_BLOBS); INTERNAL_CONSISTENCY_ERROR(UPGRADING_SCHEMA_CORRUPTED_BLOBS);
// Put database wiping behind a flag so we can use finch to stop this if (origin_.host() != "docs.google.com")
// behavior if first-party customers have problems.
if (base::FeatureList::IsEnabled(
features::kWipeCorruptV2IDBDatabases)) {
return InternalInconsistencyStatus(); return InternalInconsistencyStatus();
}
} else { } else {
PutInt(transaction.get(), schema_version_key, db_schema_version); PutInt(transaction.get(), schema_version_key, db_schema_version);
} }
......
...@@ -701,10 +701,6 @@ const base::Feature kWebXrHitTest{"WebXRHitTest", ...@@ -701,10 +701,6 @@ const base::Feature kWebXrHitTest{"WebXRHitTest",
const base::Feature kWebXrPlaneDetection{"WebXRPlaneDetection", const base::Feature kWebXrPlaneDetection{"WebXRPlaneDetection",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
// Wipe corrupt v2 IndexedDB databases.
const base::Feature kWipeCorruptV2IDBDatabases{
"WipeCorruptV2IDBDatabases", base::FEATURE_ENABLED_BY_DEFAULT};
// Start streaming scripts on script preload. // Start streaming scripts on script preload.
const base::Feature kScriptStreamingOnPreload{ const base::Feature kScriptStreamingOnPreload{
"ScriptStreamingOnPreload", base::FEATURE_DISABLED_BY_DEFAULT}; "ScriptStreamingOnPreload", base::FEATURE_DISABLED_BY_DEFAULT};
......
...@@ -149,7 +149,6 @@ CONTENT_EXPORT extern const base::Feature kWebUsb; ...@@ -149,7 +149,6 @@ CONTENT_EXPORT extern const base::Feature kWebUsb;
CONTENT_EXPORT extern const base::Feature kWebXr; CONTENT_EXPORT extern const base::Feature kWebXr;
CONTENT_EXPORT extern const base::Feature kWebXrHitTest; CONTENT_EXPORT extern const base::Feature kWebXrHitTest;
CONTENT_EXPORT extern const base::Feature kWebXrPlaneDetection; CONTENT_EXPORT extern const base::Feature kWebXrPlaneDetection;
CONTENT_EXPORT extern const base::Feature kWipeCorruptV2IDBDatabases;
CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload; CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload;
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment