| Index: content/browser/indexed_db/indexed_db_backing_store.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc
|
| index f62b871d90920fa4adec57eb1589040b4de3c66e..5b90e6834c76f1a2281577f2d285243cff388895 100644
|
| --- a/content/browser/indexed_db/indexed_db_backing_store.cc
|
| +++ b/content/browser/indexed_db/indexed_db_backing_store.cc
|
| @@ -1824,6 +1824,42 @@ leveldb::Status IndexedDBBackingStore::DeleteObjectStore(
|
| return ClearObjectStore(transaction, database_id, object_store_id);
|
| }
|
|
|
| +leveldb::Status IndexedDBBackingStore::RenameObjectStore(
|
| + IndexedDBBackingStore::Transaction* transaction,
|
| + int64_t database_id,
|
| + int64_t object_store_id,
|
| + const base::string16& new_name) {
|
| + IDB_TRACE("IndexedDBBackingStore::RenameObjectStore");
|
| + if (!KeyPrefix::ValidIds(database_id, object_store_id))
|
| + return InvalidDBKeyStatus();
|
| + LevelDBTransaction* leveldb_transaction = transaction->transaction();
|
| +
|
| + const std::string name_key = ObjectStoreMetaDataKey::Encode(
|
| + database_id, object_store_id, ObjectStoreMetaDataKey::NAME);
|
| + const std::string new_names_key = ObjectStoreNamesKey::Encode(
|
| + database_id, new_name);
|
| +
|
| + base::string16 old_name;
|
| + bool found = false;
|
| + leveldb::Status s =
|
| + GetString(leveldb_transaction, name_key, &old_name, &found);
|
| + if (!s.ok()) {
|
| + INTERNAL_READ_ERROR_UNTESTED(DELETE_OBJECT_STORE);
|
| + return s;
|
| + }
|
| + if (!found) {
|
| + INTERNAL_CONSISTENCY_ERROR_UNTESTED(DELETE_OBJECT_STORE);
|
| + return InternalInconsistencyStatus();
|
| + }
|
| + const std::string old_names_key = ObjectStoreNamesKey::Encode(
|
| + database_id, old_name);
|
| +
|
| + PutString(leveldb_transaction, name_key, new_name);
|
| + PutInt(leveldb_transaction, new_names_key, object_store_id);
|
| + leveldb_transaction->Remove(old_names_key);
|
| + return s;
|
| +}
|
| +
|
| leveldb::Status IndexedDBBackingStore::GetRecord(
|
| IndexedDBBackingStore::Transaction* transaction,
|
| int64_t database_id,
|
| @@ -2866,6 +2902,24 @@ leveldb::Status IndexedDBBackingStore::DeleteIndex(
|
| return s;
|
| }
|
|
|
| +leveldb::Status IndexedDBBackingStore::RenameIndex(
|
| + IndexedDBBackingStore::Transaction* transaction,
|
| + int64_t database_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id,
|
| + const base::string16& new_name) {
|
| + IDB_TRACE("IndexedDBBackingStore::RenameIndex");
|
| + if (!KeyPrefix::ValidIds(database_id, object_store_id, index_id))
|
| + return InvalidDBKeyStatus();
|
| + LevelDBTransaction* leveldb_transaction = transaction->transaction();
|
| +
|
| + const std::string name_key = IndexMetaDataKey::Encode(
|
| + database_id, object_store_id, index_id, IndexMetaDataKey::NAME);
|
| +
|
| + PutString(leveldb_transaction, name_key, new_name);
|
| + return leveldb::Status::OK();
|
| +}
|
| +
|
| leveldb::Status IndexedDBBackingStore::PutIndexDataForRecord(
|
| IndexedDBBackingStore::Transaction* transaction,
|
| int64_t database_id,
|
|
|