| Index: google_apis/gcm/engine/gcm_store_impl.cc
|
| diff --git a/google_apis/gcm/engine/gcm_store_impl.cc b/google_apis/gcm/engine/gcm_store_impl.cc
|
| index 2738c43dfe1dd161848d5b4f1670f4c2198839ad..3a74127c4b9607a52bc76da8848e2c372096ea24 100644
|
| --- a/google_apis/gcm/engine/gcm_store_impl.cc
|
| +++ b/google_apis/gcm/engine/gcm_store_impl.cc
|
| @@ -16,14 +16,12 @@
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_piece.h"
|
| -#include "base/time/time.h"
|
| #include "base/tracked_objects.h"
|
| #include "components/os_crypt/os_crypt.h"
|
| #include "google_apis/gcm/base/mcs_message.h"
|
| #include "google_apis/gcm/base/mcs_util.h"
|
| #include "google_apis/gcm/protocol/mcs.pb.h"
|
| #include "third_party/leveldatabase/src/include/leveldb/db.h"
|
| -#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
|
|
|
| namespace gcm {
|
|
|
| @@ -55,14 +53,6 @@
|
| // Key guaranteed to be higher than all outgoing message keys.
|
| // Used for limiting iteration.
|
| const char kOutgoingMsgKeyEnd[] = "outgoing2-";
|
| -// Lowest lexicographically ordered G-service settings key.
|
| -// Used for prefixing G-services settings.
|
| -const char kGServiceSettingKeyStart[] = "gservice1-";
|
| -// Key guaranteed to be higher than all G-services settings keys.
|
| -// Used for limiting iteration.
|
| -const char kGServiceSettingKeyEnd[] = "gservice2-";
|
| -// Key for digest of the last G-services settings update.
|
| -const char kGServiceSettingsDigestKey[] = "gservices_digest";
|
| // Key used to timestamp last checkin (marked with G services settings update).
|
| const char kLastCheckinTimeKey[] = "last_checkin_time";
|
|
|
| @@ -84,14 +74,6 @@
|
|
|
| std::string ParseOutgoingKey(const std::string& key) {
|
| return key.substr(arraysize(kOutgoingMsgKeyStart) - 1);
|
| -}
|
| -
|
| -std::string MakeGServiceSettingKey(const std::string& setting_name) {
|
| - return kGServiceSettingKeyStart + setting_name;
|
| -}
|
| -
|
| -std::string ParseGServiceSettingKey(const std::string& key) {
|
| - return key.substr(arraysize(kGServiceSettingKeyStart) - 1);
|
| }
|
|
|
| // Note: leveldb::Slice keeps a pointer to the data in |s|, which must therefore
|
| @@ -139,10 +121,6 @@
|
| const UpdateCallback& callback);
|
| void SetLastCheckinTime(const base::Time& last_checkin_time,
|
| const UpdateCallback& callback);
|
| - void SetGServicesSettings(
|
| - const std::map<std::string, std::string>& settings,
|
| - const std::string& digest,
|
| - const UpdateCallback& callback);
|
|
|
| private:
|
| friend class base::RefCountedThreadSafe<Backend>;
|
| @@ -153,8 +131,6 @@
|
| bool LoadIncomingMessages(std::vector<std::string>* incoming_messages);
|
| bool LoadOutgoingMessages(OutgoingMessageMap* outgoing_messages);
|
| bool LoadLastCheckinTime(base::Time* last_checkin_time);
|
| - bool LoadGServicesSettings(std::map<std::string, std::string>* settings,
|
| - std::string* digest);
|
|
|
| const base::FilePath path_;
|
| scoped_refptr<base::SequencedTaskRunner> foreground_task_runner_;
|
| @@ -200,16 +176,12 @@
|
| !LoadRegistrations(&result->registrations) ||
|
| !LoadIncomingMessages(&result->incoming_messages) ||
|
| !LoadOutgoingMessages(&result->outgoing_messages) ||
|
| - !LoadLastCheckinTime(&result->last_checkin_time) ||
|
| - !LoadGServicesSettings(&result->gservices_settings,
|
| - &result->gservices_digest)) {
|
| + !LoadLastCheckinTime(&result->last_checkin_time)) {
|
| result->device_android_id = 0;
|
| result->device_security_token = 0;
|
| result->registrations.clear();
|
| result->incoming_messages.clear();
|
| result->outgoing_messages.clear();
|
| - result->gservices_settings.clear();
|
| - result->gservices_digest.clear();
|
| result->last_checkin_time = base::Time::FromInternalValue(0LL);
|
| foreground_task_runner_->PostTask(FROM_HERE,
|
| base::Bind(callback,
|
| @@ -493,44 +465,7 @@
|
|
|
| if (!s.ok())
|
| LOG(ERROR) << "LevelDB set last checkin time failed: " << s.ToString();
|
| - foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, s.ok()));
|
| -}
|
| -
|
| -void GCMStoreImpl::Backend::SetGServicesSettings(
|
| - const std::map<std::string, std::string>& settings,
|
| - const std::string& settings_digest,
|
| - const UpdateCallback& callback) {
|
| - leveldb::WriteBatch write_batch;
|
| -
|
| - // Remove all existing settings.
|
| - leveldb::ReadOptions read_options;
|
| - read_options.verify_checksums = true;
|
| - scoped_ptr<leveldb::Iterator> iter(db_->NewIterator(read_options));
|
| - for (iter->Seek(MakeSlice(kGServiceSettingKeyStart));
|
| - iter->Valid() && iter->key().ToString() < kGServiceSettingKeyEnd;
|
| - iter->Next()) {
|
| - write_batch.Delete(iter->key());
|
| - }
|
| -
|
| - // Add the new settings.
|
| - for (std::map<std::string, std::string>::const_iterator iter =
|
| - settings.begin();
|
| - iter != settings.end(); ++iter) {
|
| - write_batch.Put(MakeSlice(MakeGServiceSettingKey(iter->first)),
|
| - MakeSlice(iter->second));
|
| - }
|
| -
|
| - // Update the settings digest.
|
| - write_batch.Put(MakeSlice(kGServiceSettingsDigestKey),
|
| - MakeSlice(settings_digest));
|
| -
|
| - // Write it all in a batch.
|
| - leveldb::WriteOptions write_options;
|
| - write_options.sync = true;
|
| -
|
| - leveldb::Status s = db_->Write(write_options, &write_batch);
|
| - if (!s.ok())
|
| - LOG(ERROR) << "LevelDB GService Settings update failed: " << s.ToString();
|
| +
|
| foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, s.ok()));
|
| }
|
|
|
| @@ -669,34 +604,6 @@
|
| return true;
|
| }
|
|
|
| -bool GCMStoreImpl::Backend::LoadGServicesSettings(
|
| - std::map<std::string, std::string>* settings,
|
| - std::string* digest) {
|
| - leveldb::ReadOptions read_options;
|
| - read_options.verify_checksums = true;
|
| -
|
| - // Load all of the GServices settings.
|
| - scoped_ptr<leveldb::Iterator> iter(db_->NewIterator(read_options));
|
| - for (iter->Seek(MakeSlice(kGServiceSettingKeyStart));
|
| - iter->Valid() && iter->key().ToString() < kGServiceSettingKeyEnd;
|
| - iter->Next()) {
|
| - std::string value = iter->value().ToString();
|
| - if (value.empty()) {
|
| - LOG(ERROR) << "Error reading GService Settings " << value;
|
| - return false;
|
| - }
|
| - std::string id = ParseGServiceSettingKey(iter->key().ToString());
|
| - (*settings)[id] = value;
|
| - DVLOG(1) << "Found G Service setting with key: " << id
|
| - << ", and value: " << value;
|
| - }
|
| -
|
| - // Load the settings digest. It's ok if it is empty.
|
| - db_->Get(read_options, MakeSlice(kGServiceSettingsDigestKey), digest);
|
| -
|
| - return true;
|
| -}
|
| -
|
| GCMStoreImpl::GCMStoreImpl(
|
| bool use_mock_keychain,
|
| const base::FilePath& path,
|
| @@ -878,19 +785,6 @@
|
| base::Bind(&GCMStoreImpl::Backend::SetLastCheckinTime,
|
| backend_,
|
| last_checkin_time,
|
| - callback));
|
| -}
|
| -
|
| -void GCMStoreImpl::SetGServicesSettings(
|
| - const std::map<std::string, std::string>& settings,
|
| - const std::string& digest,
|
| - const UpdateCallback& callback) {
|
| - blocking_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&GCMStoreImpl::Backend::SetGServicesSettings,
|
| - backend_,
|
| - settings,
|
| - digest,
|
| callback));
|
| }
|
|
|
|
|