Index: extensions/browser/value_store/lazy_leveldb.cc |
diff --git a/extensions/browser/value_store/lazy_leveldb.cc b/extensions/browser/value_store/lazy_leveldb.cc |
index ca5501d075f90b056b7d8a160d15dbf76e26d90e..1d972f849111fe28b4ef84ffc92502f9380edcf2 100644 |
--- a/extensions/browser/value_store/lazy_leveldb.cc |
+++ b/extensions/browser/value_store/lazy_leveldb.cc |
@@ -8,6 +8,8 @@ |
#include "base/json/json_reader.h" |
#include "base/memory/ptr_util.h" |
#include "base/strings/string_util.h" |
+#include "base/threading/sequenced_task_runner_handle.h" |
+#include "base/threading/thread_restrictions.h" |
#include "content/public/browser/browser_thread.h" |
#include "third_party/leveldatabase/env_chromium.h" |
#include "third_party/leveldatabase/src/include/leveldb/iterator.h" |
@@ -50,7 +52,7 @@ ValueStore::StatusCode LevelDbToValueStoreStatusCode( |
} |
leveldb::Status DeleteValue(leveldb::DB* db, const std::string& key) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
leveldb::WriteBatch batch; |
batch.Delete(key); |
@@ -86,13 +88,12 @@ LazyLevelDb::LazyLevelDb(const std::string& uma_client_name, |
} |
LazyLevelDb::~LazyLevelDb() { |
- if (db_ && !BrowserThread::CurrentlyOn(BrowserThread::FILE)) |
- BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE, db_.release()); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
} |
ValueStore::Status LazyLevelDb::Read(const std::string& key, |
std::unique_ptr<base::Value>* value) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
DCHECK(value); |
std::string value_as_json; |
@@ -118,7 +119,7 @@ ValueStore::Status LazyLevelDb::Read(const std::string& key, |
} |
ValueStore::Status LazyLevelDb::Delete(const std::string& key) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
ValueStore::Status status = EnsureDbIsOpen(); |
if (!status.ok()) |
@@ -154,7 +155,7 @@ ValueStore::BackingStoreRestoreStatus LazyLevelDb::LogRestoreStatus( |
ValueStore::BackingStoreRestoreStatus LazyLevelDb::FixCorruption( |
const std::string* key) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
leveldb::Status s; |
if (key && db_) { |
s = DeleteValue(db_.get(), *key); |
@@ -222,7 +223,7 @@ ValueStore::BackingStoreRestoreStatus LazyLevelDb::FixCorruption( |
} |
ValueStore::Status LazyLevelDb::EnsureDbIsOpen() { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
if (db_) |
return ValueStore::Status(); |
@@ -268,7 +269,7 @@ ValueStore::Status LazyLevelDb::ToValueStoreError( |
} |
bool LazyLevelDb::DeleteDbFile() { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ base::ThreadRestrictions::AssertIOAllowed(); |
db_.reset(); // release any lock on the directory |
if (!base::DeleteFile(db_path_, true /* recursive */)) { |
LOG(WARNING) << "Failed to delete leveldb database at " << db_path_.value(); |