| Index: content/browser/indexed_db/indexed_db_factory_impl.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_factory_impl.cc b/content/browser/indexed_db/indexed_db_factory_impl.cc
|
| index f818f3f6181f7adff689abe7ec8308c47d497cfd..039cbddfbbf121826def25edb702623d1b52e4bc 100644
|
| --- a/content/browser/indexed_db/indexed_db_factory_impl.cc
|
| +++ b/content/browser/indexed_db/indexed_db_factory_impl.cc
|
| @@ -257,6 +257,26 @@ void IndexedDBFactoryImpl::DeleteDatabase(
|
| return;
|
| }
|
|
|
| + std::vector<base::string16> names = backing_store->GetDatabaseNames(&s);
|
| + if (!s.ok()) {
|
| + DLOG(ERROR) << "Internal error getting database names";
|
| + IndexedDBDatabaseError error(blink::WebIDBDatabaseExceptionUnknownError,
|
| + "Internal error opening backing store for "
|
| + "indexedDB.deleteDatabase.");
|
| + callbacks->OnError(error);
|
| + backing_store = NULL;
|
| + if (s.IsCorruption())
|
| + HandleBackingStoreCorruption(origin_url, error);
|
| + return;
|
| + }
|
| + if (!ContainsValue(names, name)) {
|
| + const int64 version = 0;
|
| + callbacks->OnSuccess(version);
|
| + backing_store = NULL;
|
| + ReleaseBackingStore(origin_url, false /* immediate */);
|
| + return;
|
| + }
|
| +
|
| scoped_refptr<IndexedDBDatabase> database = IndexedDBDatabase::Create(
|
| name, backing_store.get(), this, unique_identifier, &s);
|
| if (!database.get()) {
|
|
|