| 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 2e69f621fe41e7be321c86f47f2e439cd5673091..51b4cb3414377cfecfdfa906db66f06f90009925 100644
|
| --- a/content/browser/service_worker/service_worker_database.cc
|
| +++ b/content/browser/service_worker/service_worker_database.cc
|
| @@ -968,11 +968,15 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteResourceIdsInBatch(
|
| if (status != STATUS_OK)
|
| return status;
|
|
|
| + if (ids.empty())
|
| + return STATUS_OK;
|
| for (std::set<int64>::const_iterator itr = ids.begin();
|
| itr != ids.end(); ++itr) {
|
| // Value should be empty.
|
| batch->Put(CreateResourceIdKey(id_key_prefix, *itr), "");
|
| }
|
| + // std::set is sorted, so the last element is the largest.
|
| + BumpNextResourceIdIfNeeded(*ids.rbegin(), batch);
|
| return STATUS_OK;
|
| }
|
|
|
| @@ -1054,6 +1058,15 @@ void ServiceWorkerDatabase::BumpNextRegistrationIdIfNeeded(
|
| }
|
| }
|
|
|
| +void ServiceWorkerDatabase::BumpNextResourceIdIfNeeded(
|
| + int64 used_id, leveldb::WriteBatch* batch) {
|
| + DCHECK(batch);
|
| + if (next_avail_resource_id_ <= used_id) {
|
| + next_avail_resource_id_ = used_id + 1;
|
| + batch->Put(kNextResIdKey, base::Int64ToString(next_avail_resource_id_));
|
| + }
|
| +}
|
| +
|
| void ServiceWorkerDatabase::BumpNextVersionIdIfNeeded(
|
| int64 used_id, leveldb::WriteBatch* batch) {
|
| DCHECK(batch);
|
|
|