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

Unified Diff: chrome/browser/extensions/settings/settings_sync_util.cc

Issue 9427001: Extend TwoClientExtensionSettingsSyncTest to test app settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: oops Created 8 years, 10 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: chrome/browser/extensions/settings/settings_sync_util.cc
diff --git a/chrome/browser/extensions/settings/settings_sync_util.cc b/chrome/browser/extensions/settings/settings_sync_util.cc
index 07ca7a69463aa151419f57e37a2d7054d132fec3..18576159ba38baac05782d69521371507919b436 100644
--- a/chrome/browser/extensions/settings/settings_sync_util.cc
+++ b/chrome/browser/extensions/settings/settings_sync_util.cc
@@ -6,48 +6,96 @@
#include "base/values.h"
#include "base/json/json_writer.h"
+#include "chrome/browser/sync/protocol/app_setting_specifics.pb.h"
#include "chrome/browser/sync/protocol/extension_setting_specifics.pb.h"
namespace extensions {
namespace settings_sync_util {
+namespace {
+
+void PopulateExtensionSettingSpecifics(
+ const std::string& extension_id,
+ const std::string& key,
+ const Value& value,
+ sync_pb::ExtensionSettingSpecifics* specifics) {
+ specifics->set_extension_id(extension_id);
+ specifics->set_key(key);
+ {
+ std::string value_as_json;
+ base::JSONWriter::Write(&value, false, &value_as_json);
+ specifics->set_value(value_as_json);
+ }
+}
+
+void PopulateAppSettingSpecifics(
+ const std::string& extension_id,
+ const std::string& key,
+ const Value& value,
+ sync_pb::AppSettingSpecifics* specifics) {
+ PopulateExtensionSettingSpecifics(
+ extension_id, key, value, specifics->mutable_extension_setting());
+}
+
+} // namespace
+
SyncData CreateData(
const std::string& extension_id,
const std::string& key,
- const Value& value) {
+ const Value& value,
+ syncable::ModelType type) {
sync_pb::EntitySpecifics specifics;
- sync_pb::ExtensionSettingSpecifics* setting_specifics =
- specifics.MutableExtension(sync_pb::extension_setting);
- setting_specifics->set_extension_id(extension_id);
- setting_specifics->set_key(key);
- std::string value_as_json;
- base::JSONWriter::Write(&value, false, &value_as_json);
- setting_specifics->set_value(value_as_json);
+
+ switch (type) {
+ case syncable::EXTENSION_SETTINGS:
+ PopulateExtensionSettingSpecifics(
+ extension_id,
+ key,
+ value,
+ specifics.MutableExtension(sync_pb::extension_setting));
+ break;
+
+ case syncable::APP_SETTINGS:
+ PopulateAppSettingSpecifics(
+ extension_id,
+ key,
+ value,
+ specifics.MutableExtension(sync_pb::app_setting));
+ break;
+
+ default:
+ NOTREACHED();
+ }
+
return SyncData::CreateLocalData(extension_id + "/" + key, key, specifics);
}
SyncChange CreateAdd(
const std::string& extension_id,
const std::string& key,
- const Value& value) {
+ const Value& value,
+ syncable::ModelType type) {
return SyncChange(
- SyncChange::ACTION_ADD, CreateData(extension_id, key, value));
+ SyncChange::ACTION_ADD, CreateData(extension_id, key, value, type));
}
SyncChange CreateUpdate(
const std::string& extension_id,
const std::string& key,
- const Value& value) {
+ const Value& value,
+ syncable::ModelType type) {
return SyncChange(
- SyncChange::ACTION_UPDATE, CreateData(extension_id, key, value));
+ SyncChange::ACTION_UPDATE, CreateData(extension_id, key, value, type));
}
SyncChange CreateDelete(
- const std::string& extension_id, const std::string& key) {
+ const std::string& extension_id,
+ const std::string& key,
+ syncable::ModelType type) {
DictionaryValue no_value;
return SyncChange(
- SyncChange::ACTION_DELETE, CreateData(extension_id, key, no_value));
+ SyncChange::ACTION_DELETE, CreateData(extension_id, key, no_value, type));
}
} // namespace settings_sync_util

Powered by Google App Engine
This is Rietveld 408576698