Index: content/browser/service_worker/service_worker_database.cc |
diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc |
index 0bd5bbc09fd3012698773898a07a069ef2a458b5..5cc8cd0f93b0c98970e84af7c873ad71c6eb1311 100644 |
--- a/content/browser/service_worker/service_worker_database.cc |
+++ b/content/browser/service_worker/service_worker_database.cc |
@@ -725,8 +725,19 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteAllDataForOrigin( |
ServiceWorkerDatabase::Status ServiceWorkerDatabase::DestroyDatabase() { |
DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
Disable(FROM_HERE, STATUS_OK); |
+ |
+ leveldb::Options options; |
+ if (path_.empty()) { |
+ if (env_) { |
+ options.env = env_.get(); |
+ } else { |
+ // In-memory database not initialized. |
+ return STATUS_OK; |
+ } |
+ } |
+ |
return LevelDBStatusToStatus( |
- leveldb::DestroyDB(path_.AsUTF8Unsafe(), leveldb::Options())); |
+ leveldb::DestroyDB(path_.AsUTF8Unsafe(), options)); |
} |
ServiceWorkerDatabase::Status ServiceWorkerDatabase::LazyOpen( |