Chromium Code Reviews| Index: content/browser/indexed_db/indexed_db_factory.cc |
| diff --git a/content/browser/indexed_db/indexed_db_factory.cc b/content/browser/indexed_db/indexed_db_factory.cc |
| index 86af571319c65643c5a4acec2d533455f915c390..6506742c851117a5ef9bf2ecba665f06109255c8 100644 |
| --- a/content/browser/indexed_db/indexed_db_factory.cc |
| +++ b/content/browser/indexed_db/indexed_db_factory.cc |
| @@ -9,6 +9,7 @@ |
| #include "base/time/time.h" |
| #include "content/browser/indexed_db/indexed_db_backing_store.h" |
| #include "content/browser/indexed_db/indexed_db_context_impl.h" |
| +#include "content/browser/indexed_db/indexed_db_database_error.h" |
| #include "content/browser/indexed_db/indexed_db_tracing.h" |
| #include "content/browser/indexed_db/indexed_db_transaction_coordinator.h" |
| #include "third_party/WebKit/public/platform/WebIDBDatabaseException.h" |
| @@ -234,6 +235,22 @@ void IndexedDBFactory::HandleBackingStoreFailure(const GURL& origin_url) { |
| IndexedDBContextImpl::FORCE_CLOSE_BACKING_STORE_FAILURE); |
| } |
| +void IndexedDBFactory::HandleBackingStoreCorruption( |
| + const GURL& origin_url, |
| + const IndexedDBDatabaseError& error) { |
| + // Make a copy of origin_url as this is likely a reference to a member of a |
| + // backing store which this function will be deleting. |
| + GURL saved_origin_url(origin_url); |
| + DCHECK(context_); |
| + base::FilePath path_base = context_->data_path(); |
| + IndexedDBBackingStore::RecordCorruptionInfo( |
|
jsbell
2014/03/26 18:16:58
Doesn't this write the file into the directory...
|
| + path_base, saved_origin_url, error); |
| + HandleBackingStoreFailure(saved_origin_url); |
| + if (!IndexedDBBackingStore::DestroyBackingStore(path_base, saved_origin_url) |
|
jsbell
2014/03/26 18:16:58
... which this deletes?
cmumford
2014/03/26 21:40:36
No, see second reply in this review.
jsbell
2014/03/26 22:49:00
Got it, thanks.
Maybe add a comment here that the
|
| + .ok()) |
| + DLOG(ERROR) << "Unable to delete backing store"; |
| +} |
| + |
| bool IndexedDBFactory::IsDatabaseOpen(const GURL& origin_url, |
| const base::string16& name) const { |