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

Side by Side Diff: chrome/browser/extensions/settings/settings_sync_util.cc

Issue 11747025: Run the JSON Schema Compiler's bundle compilation on JSON files. Previously it (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix ms release build Created 7 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/settings/settings_sync_util.h"
6
7 #include "base/json/json_writer.h"
8 #include "base/values.h"
9 #include "sync/protocol/app_setting_specifics.pb.h"
10 #include "sync/protocol/extension_setting_specifics.pb.h"
11 #include "sync/protocol/sync.pb.h"
12
13 namespace extensions {
14
15 namespace settings_sync_util {
16
17 namespace {
18
19 void PopulateExtensionSettingSpecifics(
20 const std::string& extension_id,
21 const std::string& key,
22 const Value& value,
23 sync_pb::ExtensionSettingSpecifics* specifics) {
24 specifics->set_extension_id(extension_id);
25 specifics->set_key(key);
26 {
27 std::string value_as_json;
28 base::JSONWriter::Write(&value, &value_as_json);
29 specifics->set_value(value_as_json);
30 }
31 }
32
33 void PopulateAppSettingSpecifics(
34 const std::string& extension_id,
35 const std::string& key,
36 const Value& value,
37 sync_pb::AppSettingSpecifics* specifics) {
38 PopulateExtensionSettingSpecifics(
39 extension_id, key, value, specifics->mutable_extension_setting());
40 }
41
42 } // namespace
43
44 syncer::SyncData CreateData(
45 const std::string& extension_id,
46 const std::string& key,
47 const Value& value,
48 syncer::ModelType type) {
49 sync_pb::EntitySpecifics specifics;
50 switch (type) {
51 case syncer::EXTENSION_SETTINGS:
52 PopulateExtensionSettingSpecifics(
53 extension_id,
54 key,
55 value,
56 specifics.mutable_extension_setting());
57 break;
58
59 case syncer::APP_SETTINGS:
60 PopulateAppSettingSpecifics(
61 extension_id,
62 key,
63 value,
64 specifics.mutable_app_setting());
65 break;
66
67 default:
68 NOTREACHED();
69 }
70
71 return syncer::SyncData::CreateLocalData(
72 extension_id + "/" + key, key, specifics);
73 }
74
75 syncer::SyncChange CreateAdd(
76 const std::string& extension_id,
77 const std::string& key,
78 const Value& value,
79 syncer::ModelType type) {
80 return syncer::SyncChange(
81 FROM_HERE,
82 syncer::SyncChange::ACTION_ADD,
83 CreateData(extension_id, key, value, type));
84 }
85
86 syncer::SyncChange CreateUpdate(
87 const std::string& extension_id,
88 const std::string& key,
89 const Value& value,
90 syncer::ModelType type) {
91 return syncer::SyncChange(
92 FROM_HERE,
93 syncer::SyncChange::ACTION_UPDATE,
94 CreateData(extension_id, key, value, type));
95 }
96
97 syncer::SyncChange CreateDelete(
98 const std::string& extension_id,
99 const std::string& key,
100 syncer::ModelType type) {
101 DictionaryValue no_value;
102 return syncer::SyncChange(
103 FROM_HERE,
104 syncer::SyncChange::ACTION_DELETE,
105 CreateData(extension_id, key, no_value, type));
106 }
107
108 } // namespace settings_sync_util
109
110 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/settings/settings_sync_util.h ('k') | chrome/browser/extensions/settings/settings_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698