| 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 cfedd00dd4f944aaa7395aaa24ad7a6bbb5b5ad9..b0104f1318e70f099d3ee35f62f2d2e9bdcf02ee 100644
|
| --- a/content/browser/service_worker/service_worker_database.cc
|
| +++ b/content/browser/service_worker/service_worker_database.cc
|
| @@ -240,9 +240,7 @@ ServiceWorkerDatabase::ServiceWorkerDatabase(const base::FilePath& path)
|
| next_avail_registration_id_(0),
|
| next_avail_resource_id_(0),
|
| next_avail_version_id_(0),
|
| - is_disabled_(false),
|
| - was_corruption_detected_(false),
|
| - is_initialized_(false) {
|
| + state_(UNINITIALIZED) {
|
| sequence_checker_.DetachFromSequence();
|
| }
|
|
|
| @@ -635,7 +633,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::LazyOpen(
|
| DCHECK(sequence_checker_.CalledOnValidSequencedThread());
|
|
|
| // Do not try to open a database if we tried and failed once.
|
| - if (is_disabled_)
|
| + if (state_ == DISABLED)
|
| return STATUS_ERROR_FAILED;
|
| if (IsOpen())
|
| return STATUS_OK;
|
| @@ -676,7 +674,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::LazyOpen(
|
| return status;
|
| DCHECK_LE(0, db_version);
|
| if (db_version > 0)
|
| - is_initialized_ = true;
|
| + state_ = INITIALIZED;
|
| return STATUS_OK;
|
| }
|
|
|
| @@ -684,7 +682,7 @@ bool ServiceWorkerDatabase::IsNewOrNonexistentDatabase(
|
| ServiceWorkerDatabase::Status status) {
|
| if (status == STATUS_ERROR_NOT_FOUND)
|
| return true;
|
| - if (status == STATUS_OK && !is_initialized_)
|
| + if (status == STATUS_OK && state_ == UNINITIALIZED)
|
| return true;
|
| return false;
|
| }
|
| @@ -923,12 +921,12 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadDatabaseVersion(
|
| ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteBatch(
|
| leveldb::WriteBatch* batch) {
|
| DCHECK(batch);
|
| - DCHECK(!is_disabled_);
|
| + DCHECK_NE(DISABLED, state_);
|
|
|
| - if (!is_initialized_) {
|
| + if (state_ == UNINITIALIZED) {
|
| // Write the database schema version.
|
| batch->Put(kDatabaseVersionKey, base::Int64ToString(kCurrentSchemaVersion));
|
| - is_initialized_ = true;
|
| + state_ = INITIALIZED;
|
| }
|
|
|
| leveldb::Status status = db_->Write(leveldb::WriteOptions(), batch);
|
| @@ -956,7 +954,7 @@ void ServiceWorkerDatabase::BumpNextVersionIdIfNeeded(
|
| }
|
|
|
| bool ServiceWorkerDatabase::IsOpen() {
|
| - return db_.get() != NULL;
|
| + return db_ != NULL;
|
| }
|
|
|
| void ServiceWorkerDatabase::HandleError(
|
| @@ -965,9 +963,7 @@ void ServiceWorkerDatabase::HandleError(
|
| // TODO(nhiroki): Add an UMA histogram.
|
| DLOG(ERROR) << "Failed at: " << from_here.ToString()
|
| << " with error: " << status.ToString();
|
| - is_disabled_ = true;
|
| - if (status.IsCorruption())
|
| - was_corruption_detected_ = true;
|
| + state_ = DISABLED;
|
| db_.reset();
|
| }
|
|
|
|
|