Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Unified Diff: content/browser/service_worker/service_worker_database.cc

Issue 2867693004: Snapshot of all changes to get jumbo in blink and content.
Patch Set: Exclude certain files from jumbo because of a Windows problem Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 530617db68bb909633747a8212ee96fa2942f6b1..30c8860563550f153f8fb8292a4f1ed2ce77e8bb 100644
--- a/content/browser/service_worker/service_worker_database.cc
+++ b/content/browser/service_worker/service_worker_database.cc
@@ -24,6 +24,21 @@
#include "third_party/leveldatabase/src/include/leveldb/db.h"
#include "third_party/leveldatabase/src/include/leveldb/env.h"
#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
+// third_party/webrtc/base/thread_checker.h leaks the define
+// EXCLUSIVE_LOCKS_REQUIRED and more which collide with the same define in
+// third_party/leveldatabase/src/port/thread_annotations.
+#undef EXCLUSIVE_LOCKS_REQUIRED
+#undef SHARED_LOCKS_REQUIRED
+#undef LOCKS_EXCLUDED
+#undef LOCK_RETURNED
+#undef LOCKABLE
+#undef SCOPED_LOCKABLE
+#undef EXCLUSIVE_LOCK_FUNCTION
+#undef SHARED_LOCK_FUNCTION
+#undef EXCLUSIVE_TRYLOCK_FUNCTION
+#undef SHARED_TRYLOCK_FUNCTION
+#undef UNLOCK_FUNCTION
+#undef NO_THREAD_SAFETY_ANALYSIS
#include "url/origin.h"
// LevelDB database schema
@@ -107,12 +122,12 @@ const char kRegUserDataKeyPrefix[] = "REG_USER_DATA:";
const char kRegHasUserDataKeyPrefix[] = "REG_HAS_USER_DATA:";
const char kRegIdToOriginKeyPrefix[] = "REGID_TO_ORIGIN:";
const char kResKeyPrefix[] = "RES:";
-const char kKeySeparator = '\x00';
+const char kSWKeySeparator = '\x00';
const char kUncommittedResIdKeyPrefix[] = "URES:";
const char kPurgeableResIdKeyPrefix[] = "PRES:";
-const int64_t kCurrentSchemaVersion = 2;
+const int64_t kSWCurrentSchemaVersion = 2;
class ServiceWorkerEnv : public leveldb_env::ChromiumEnv {
public:
@@ -134,7 +149,7 @@ bool RemovePrefix(const std::string& str,
std::string CreateRegistrationKeyPrefix(const GURL& origin) {
return base::StringPrintf("%s%s%c", kRegKeyPrefix,
- origin.GetOrigin().spec().c_str(), kKeySeparator);
+ origin.GetOrigin().spec().c_str(), kSWKeySeparator);
}
std::string CreateRegistrationKey(int64_t registration_id, const GURL& origin) {
@@ -146,7 +161,7 @@ std::string CreateResourceRecordKeyPrefix(int64_t version_id) {
return base::StringPrintf("%s%s%c",
kResKeyPrefix,
base::Int64ToString(version_id).c_str(),
- kKeySeparator);
+ kSWKeySeparator);
}
std::string CreateResourceRecordKey(int64_t version_id, int64_t resource_id) {
@@ -173,7 +188,7 @@ std::string CreateUserDataKeyPrefix(int64_t registration_id) {
return base::StringPrintf("%s%s%c",
kRegUserDataKeyPrefix,
base::Int64ToString(registration_id).c_str(),
- kKeySeparator);
+ kSWKeySeparator);
}
std::string CreateUserDataKey(int64_t registration_id,
@@ -183,7 +198,7 @@ std::string CreateUserDataKey(int64_t registration_id,
std::string CreateHasUserDataKeyPrefix(const std::string& user_data_name) {
return base::StringPrintf("%s%s%c", kRegHasUserDataKeyPrefix,
- user_data_name.c_str(), kKeySeparator);
+ user_data_name.c_str(), kSWKeySeparator);
}
std::string CreateHasUserDataKey(int64_t registration_id,
@@ -225,7 +240,7 @@ ServiceWorkerDatabase::Status ParseId(const std::string& serialized,
return ServiceWorkerDatabase::STATUS_OK;
}
-ServiceWorkerDatabase::Status LevelDBStatusToStatus(
+ServiceWorkerDatabase::Status LevelDBStatusToSWStatus(
const leveldb::Status& status) {
if (status.ok())
return ServiceWorkerDatabase::STATUS_OK;
@@ -352,7 +367,7 @@ ServiceWorkerDatabase::GetOriginsWithRegistrations(std::set<GURL>* origins) {
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(kUniqueOriginKey); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
origins->clear();
break;
@@ -393,7 +408,7 @@ ServiceWorkerDatabase::GetOriginsWithForeignFetchRegistrations(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(kForeignFetchOriginKey); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
origins->clear();
break;
@@ -437,7 +452,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetRegistrationsForOrigin(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
registrations->clear();
if (opt_resources_list)
@@ -490,7 +505,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetAllRegistrations(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(kRegKeyPrefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
registrations->clear();
break;
@@ -558,7 +573,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadRegistrationOrigin(
return status;
std::string value;
- status = LevelDBStatusToStatus(
+ status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(),
CreateRegistrationIdToOriginKey(registration_id), &value));
if (status != STATUS_OK) {
@@ -868,7 +883,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadUserData(
for (size_t i = 0; i < user_data_names.size(); i++) {
const std::string key =
CreateUserDataKey(registration_id, user_data_names[i]);
- status = LevelDBStatusToStatus(
+ status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(), key, &(*user_data_values)[i]));
if (status != STATUS_OK) {
user_data_values->clear();
@@ -900,7 +915,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadUserDataByKeyPrefix(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
user_data_values->clear();
break;
@@ -910,7 +925,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadUserDataByKeyPrefix(
break;
std::string user_data_value;
- status = LevelDBStatusToStatus(
+ status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(), itr->key(), &user_data_value));
if (status != STATUS_OK) {
user_data_values->clear();
@@ -1004,7 +1019,7 @@ ServiceWorkerDatabase::DeleteUserDataByKeyPrefixes(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(key_prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK)
return status;
@@ -1048,7 +1063,7 @@ ServiceWorkerDatabase::ReadUserDataForAllRegistrations(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(key_prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
user_data->clear();
break;
@@ -1068,7 +1083,7 @@ ServiceWorkerDatabase::ReadUserDataForAllRegistrations(
}
std::string value;
- status = LevelDBStatusToStatus(
+ status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(),
CreateUserDataKey(registration_id, user_data_name), &value));
if (status != STATUS_OK) {
@@ -1101,7 +1116,7 @@ ServiceWorkerDatabase::ReadUserDataForAllRegistrationsByKeyPrefix(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(key_prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
user_data->clear();
break;
@@ -1117,7 +1132,7 @@ ServiceWorkerDatabase::ReadUserDataForAllRegistrationsByKeyPrefix(
}
std::vector<std::string> parts = base::SplitString(
- user_data_name_with_id, base::StringPrintf("%c", kKeySeparator),
+ user_data_name_with_id, base::StringPrintf("%c", kSWKeySeparator),
base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
if (parts.size() != 2) {
status = STATUS_ERROR_CORRUPTED;
@@ -1133,7 +1148,7 @@ ServiceWorkerDatabase::ReadUserDataForAllRegistrationsByKeyPrefix(
}
std::string value;
- status = LevelDBStatusToStatus(
+ status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(),
CreateUserDataKey(registration_id, parts[0]), &value));
if (status != STATUS_OK) {
@@ -1284,7 +1299,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::LazyOpen(
options.env = g_service_worker_env.Pointer();
}
- Status status = LevelDBStatusToStatus(
+ Status status = LevelDBStatusToSWStatus(
leveldb_env::OpenDB(options, path_.AsUTF8Unsafe(), &db_));
HandleOpenResult(FROM_HERE, status);
if (status != STATUS_OK) {
@@ -1309,7 +1324,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::LazyOpen(
Disable(FROM_HERE, status);
return status;
case 2:
- DCHECK_EQ(db_version, kCurrentSchemaVersion);
+ DCHECK_EQ(db_version, kSWCurrentSchemaVersion);
state_ = INITIALIZED;
return STATUS_OK;
default:
@@ -1335,7 +1350,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadNextAvailableId(
DCHECK(next_avail_id);
std::string value;
- Status status = LevelDBStatusToStatus(
+ Status status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(), id_key, &value));
if (status == STATUS_ERROR_NOT_FOUND) {
// Nobody has gotten the next resource id for |id_key|.
@@ -1360,7 +1375,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadRegistrationData(
const std::string key = CreateRegistrationKey(registration_id, origin);
std::string value;
- Status status = LevelDBStatusToStatus(
+ Status status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(), key, &value));
if (status != STATUS_OK) {
HandleReadResult(
@@ -1522,7 +1537,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadResourceRecords(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
- Status status = LevelDBStatusToStatus(itr->status());
+ Status status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
resources->clear();
break;
@@ -1623,7 +1638,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteResourceRecords(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK)
break;
@@ -1668,7 +1683,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadResourceIds(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(id_key_prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK) {
ids->clear();
break;
@@ -1747,7 +1762,7 @@ ServiceWorkerDatabase::DeleteUserDataForRegistration(
std::unique_ptr<leveldb::Iterator> itr(
db_->NewIterator(leveldb::ReadOptions()));
for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
- status = LevelDBStatusToStatus(itr->status());
+ status = LevelDBStatusToSWStatus(itr->status());
if (status != STATUS_OK)
break;
@@ -1767,7 +1782,7 @@ ServiceWorkerDatabase::DeleteUserDataForRegistration(
ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadDatabaseVersion(
int64_t* db_version) {
std::string value;
- Status status = LevelDBStatusToStatus(
+ Status status = LevelDBStatusToSWStatus(
db_->Get(leveldb::ReadOptions(), kDatabaseVersionKey, &value));
if (status == STATUS_ERROR_NOT_FOUND) {
// The database hasn't been initialized yet.
@@ -1783,7 +1798,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadDatabaseVersion(
const int kFirstValidVersion = 1;
if (!base::StringToInt64(value, db_version) ||
- *db_version < kFirstValidVersion || kCurrentSchemaVersion < *db_version) {
+ *db_version < kFirstValidVersion || kSWCurrentSchemaVersion < *db_version) {
status = STATUS_ERROR_CORRUPTED;
HandleReadResult(FROM_HERE, status);
return status;
@@ -1801,11 +1816,11 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteBatch(
if (state_ == UNINITIALIZED) {
// Write database default values.
- batch->Put(kDatabaseVersionKey, base::Int64ToString(kCurrentSchemaVersion));
+ batch->Put(kDatabaseVersionKey, base::Int64ToString(kSWCurrentSchemaVersion));
state_ = INITIALIZED;
}
- Status status = LevelDBStatusToStatus(
+ Status status = LevelDBStatusToSWStatus(
db_->Write(leveldb::WriteOptions(), batch));
HandleWriteResult(FROM_HERE, status);
return status;

Powered by Google App Engine
This is Rietveld 408576698