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

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

Issue 9460047: sync: remove use of protobuf extensions in protocol to reduce static init overhead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fred's review Created 8 years, 9 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/settings/setting_sync_data.h" 5 #include "chrome/browser/extensions/settings/setting_sync_data.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "chrome/browser/sync/api/sync_data.h" 9 #include "chrome/browser/sync/api/sync_data.h"
10 #include "chrome/browser/sync/protocol/app_setting_specifics.pb.h" 10 #include "chrome/browser/sync/protocol/app_setting_specifics.pb.h"
(...skipping 10 matching lines...) Expand all
21 SettingSyncData::SettingSyncData( 21 SettingSyncData::SettingSyncData(
22 const SyncData& sync_data) { 22 const SyncData& sync_data) {
23 Init(SyncChange::ACTION_INVALID, sync_data); 23 Init(SyncChange::ACTION_INVALID, sync_data);
24 } 24 }
25 25
26 void SettingSyncData::Init( 26 void SettingSyncData::Init(
27 SyncChange::SyncChangeType change_type, const SyncData& sync_data) { 27 SyncChange::SyncChangeType change_type, const SyncData& sync_data) {
28 DCHECK(!internal_.get()); 28 DCHECK(!internal_.get());
29 sync_pb::EntitySpecifics specifics = sync_data.GetSpecifics(); 29 sync_pb::EntitySpecifics specifics = sync_data.GetSpecifics();
30 // The data must only be either extension or app specfics. 30 // The data must only be either extension or app specfics.
31 DCHECK_NE(specifics.HasExtension(sync_pb::extension_setting), 31 DCHECK_NE(specifics.has_extension_setting(),
32 specifics.HasExtension(sync_pb::app_setting)); 32 specifics.has_app_setting());
33 if (specifics.HasExtension(sync_pb::extension_setting)) { 33 if (specifics.has_extension_setting()) {
34 InitFromExtensionSettingSpecifics( 34 InitFromExtensionSettingSpecifics(
35 change_type, 35 change_type,
36 specifics.GetExtension(sync_pb::extension_setting)); 36 specifics.extension_setting());
37 } else if (specifics.HasExtension(sync_pb::app_setting)) { 37 } else if (specifics.has_app_setting()) {
38 InitFromExtensionSettingSpecifics( 38 InitFromExtensionSettingSpecifics(
39 change_type, 39 change_type,
40 specifics.GetExtension(sync_pb::app_setting).extension_setting()); 40 specifics.app_setting().extension_setting());
41 } 41 }
42 } 42 }
43 43
44 void SettingSyncData::InitFromExtensionSettingSpecifics( 44 void SettingSyncData::InitFromExtensionSettingSpecifics(
45 SyncChange::SyncChangeType change_type, 45 SyncChange::SyncChangeType change_type,
46 const sync_pb::ExtensionSettingSpecifics& specifics) { 46 const sync_pb::ExtensionSettingSpecifics& specifics) {
47 DCHECK(!internal_.get()); 47 DCHECK(!internal_.get());
48 scoped_ptr<Value> value( 48 scoped_ptr<Value> value(
49 base::JSONReader().JsonToValue(specifics.value(), false, false)); 49 base::JSONReader().JsonToValue(specifics.value(), false, false));
50 if (!value.get()) { 50 if (!value.get()) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 : change_type_(change_type), 92 : change_type_(change_type),
93 extension_id_(extension_id), 93 extension_id_(extension_id),
94 key_(key), 94 key_(key),
95 value_(value.Pass()) { 95 value_(value.Pass()) {
96 DCHECK(value_.get()); 96 DCHECK(value_.get());
97 } 97 }
98 98
99 SettingSyncData::Internal::~Internal() {} 99 SettingSyncData::Internal::~Internal() {}
100 100
101 } // namespace extensions 101 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_sync_data_unittest.cc ('k') | chrome/browser/extensions/settings/settings_sync_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698