proto_value_conversions.cc revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Keep this file in sync with the .proto files in this directory. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/proto_value_conversions.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include <string> 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/base64.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_number_conversions.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/internal_api/public/base/unique_position.h" 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "sync/protocol/app_list_specifics.pb.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_notification_specifics.pb.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_setting_specifics.pb.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_specifics.pb.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/autofill_specifics.pb.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/bookmark_specifics.pb.h" 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/dictionary_specifics.pb.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/encryption.pb.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/experiments_specifics.pb.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_setting_specifics.pb.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_specifics.pb.h" 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_image_specifics.pb.h" 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_tracking_specifics.pb.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/history_delete_directive_specifics.pb.h" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/nigori_specifics.pb.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/password_specifics.pb.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/preference_specifics.pb.h" 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/priority_preference_specifics.pb.h" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/proto_enum_conversions.h" 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/search_engine_specifics.pb.h" 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/session_specifics.pb.h" 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/sync.pb.h" 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "sync/protocol/synced_notification_app_info_specifics.pb.h" 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/synced_notification_specifics.pb.h" 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/theme_specifics.pb.h" 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/typed_url_specifics.pb.h" 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/protocol/unique_position.pb.h" 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer { 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Basic Type -> Value functions. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeInt64Value(int64 x) { 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(base::Int64ToString(x)); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(akalin): Perhaps make JSONWriter support BinaryValue and use 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that instead of a StringValue. 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeBytesValue(const std::string& bytes) { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string bytes_base64; 59a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::Base64Encode(bytes, &bytes_base64); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(bytes_base64); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeStringValue(const std::string& str) { 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(str); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the enum type. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T> 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeEnumValue(T t, const char* (*converter_fn)(T)) { 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(converter_fn(t)); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the field type, F is either RepeatedField or RepeatedPtrField, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and V is a subclass of Value. 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T, class F, class V> 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* MakeRepeatedValue(const F& fields, V* (*converter_fn)(T)) { 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (typename F::const_iterator it = fields.begin(); it != fields.end(); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++it) { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(converter_fn(*it)); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper macros to reduce the amount of boilerplate. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET(field, fn) \ 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_##field()) { \ 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(proto.field())); \ 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_REP(field, fn) \ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeRepeatedValue(proto.field(), fn)) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_ENUM(field, fn) \ 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeEnumValue(proto.field(), fn)) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_BOOL(field) SET(field, new base::FundamentalValue) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_BYTES(field) SET(field, MakeBytesValue) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32(field) SET(field, MakeInt64Value) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32_REP(field) SET_REP(field, MakeInt64Value) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64(field) SET(field, MakeInt64Value) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64_REP(field) SET_REP(field, MakeInt64Value) 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_STR(field) SET(field, new base::StringValue) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_STR_REP(field) \ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, \ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeRepeatedValue<const std::string&, \ 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) google::protobuf::RepeatedPtrField< \ 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string >, \ 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::StringValue>(proto.field(), \ 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MakeStringValue)) 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_EXPERIMENT_ENABLED_FIELD(field) \ 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) do { \ 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (proto.has_##field() && \ 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().has_enabled()) { \ 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value->Set(#field, \ 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new base::FundamentalValue( \ 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().enabled())); \ 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } \ 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } while (0) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_FIELD(field, fn) \ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do { \ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (specifics.has_##field()) { \ 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(specifics.field())); \ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } \ 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } while (0) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If you add another macro, don't forget to add an #undef at the end 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of this file, too. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EncryptedDataToValue( 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::EncryptedData& proto) { 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key_name); 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(akalin): Shouldn't blob be of type bytes instead of string? 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(blob); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingsToValue( 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotificationSettings& proto) { 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(initial_setup_done); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(disabled); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(oauth_client_id); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionHeaderToValue( 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionHeader& proto) { 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(window, SessionWindowToValue); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionTabToValue(const sync_pb::SessionTab& proto) { 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_id); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_visual_index); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(current_navigation_index); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(pinned); 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_app_id); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(navigation, TabNavigationToValue); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(favicon_type, GetFaviconTypeString); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_source); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionWindowToValue( 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionWindow& proto) { 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(selected_tab_index); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(tab); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(browser_type, GetBrowserTypeString); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TabNavigationToValue( 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TabNavigation& proto) { 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(virtual_url); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(referrer); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(state); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(page_transition, GetPageTransitionString); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(redirect_type, GetPageTransitionRedirectTypeString); 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(unique_id); 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(timestamp_msec); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_forward_back); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_from_address_bar); 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_home_page); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_start); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_end); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(global_id); 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms); 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 20390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_ENUM(blocked_state, GetBlockedStateString); 20490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR_REP(content_pack_categories); 205424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(http_status_code); 2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_INT32(referrer_policy); 2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(is_restored); 2080529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_REP(navigation_redirect, NavigationRedirectToValue); 2090529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(last_navigation_redirect_url); 2100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return value; 2110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 2120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 2130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochbase::DictionaryValue* NavigationRedirectToValue( 2140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch const sync_pb::NavigationRedirect& proto) { 2150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 2160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(url); 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsDataToValue( 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecificsData& proto) { 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(scheme); 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(signon_realm); 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(origin); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(action); 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_element); 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_value); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(password_element); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->SetString("password_value", "<redacted>"); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(ssl_valid); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(preferred); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(blacklisted); 2350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_INT32(type); 2360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_INT32(times_used); 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* GlobalIdDirectiveToValue( 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GlobalIdDirective& proto) { 2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(global_id); 2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(start_time_usec); 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(end_time_usec); 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* TimeRangeDirectiveToValue( 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TimeRangeDirective& proto) { 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(start_time_usec); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(end_time_usec); 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* SyncedNotificationAppInfoToValue( 2585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::SyncedNotificationAppInfo& proto) { 2595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR_REP(app_id); 2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(settings_display_name); 2620529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(app_name); 2630529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(settings_url); 2640529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(info_url); 2655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 2665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(petewil): Add fields for the monochrome icon when it is available. 2675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 2685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 270424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationImageToValue( 271424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationImage& proto) { 272424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 273424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(url); 2744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(alt_text); 2754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_width); 2764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_height); 277424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 278424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 279424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 280424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationProfileImageToValue( 281424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationProfileImage& proto) { 282424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 283424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(image_url); 2844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(oid); 2854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(display_name); 286424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 287424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 288424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 289424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* MediaToValue( 290424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::Media& proto) { 291424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 292424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET(image, SyncedNotificationImageToValue); 293424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 294424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 295424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 2964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationActionToValue( 2974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationAction& proto) { 2984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 3004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 3014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 3024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(request_data); 3034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 3044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationDestiationToValue( 3084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationDestination& proto) { 3094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 3114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 3124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 3134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 3144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* TargetToValue( 3184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::Target& proto) { 3194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(destination, SyncedNotificationDestiationToValue); 3214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(action, SyncedNotificationActionToValue); 3224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(target_key); 3234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 326ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* SimpleCollapsedLayoutToValue( 327ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SimpleCollapsedLayout& proto) { 328ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(app_icon, SyncedNotificationImageToValue); 3304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(profile_image, SyncedNotificationProfileImageToValue); 331ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(heading); 332ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(description); 333424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(annotation); 334424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_REP(media, MediaToValue); 335ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 336ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 337ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 338ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CollapsedInfoToValue( 339ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CollapsedInfo& proto) { 340ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 341ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(simple_collapsed_layout, SimpleCollapsedLayoutToValue); 3424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT64(creation_timestamp_usec); 3434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(default_destination, SyncedNotificationDestiationToValue); 3444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(target, TargetToValue); 3454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationToValue( 3494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotification& proto) { 3504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(type); 3524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(external_id); 3534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil) Add SyncedNotificationCreator here if we ever need it. 354ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 355ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 356ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 357ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* RenderInfoToValue( 358ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SyncedNotificationRenderInfo& proto) { 359ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil): Add the expanded info values once we start using them. 361ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(collapsed_info, CollapsedInfoToValue); 362ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 363ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 364ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 365ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CoalescedNotificationToValue( 366ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CoalescedSyncedNotification& proto) { 367ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 368ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(key); 3694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(app_id); 3704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(notification, SyncedNotificationToValue); 3714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(render_info, RenderInfoToValue); 372ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_INT32(read_state); 373424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT64(creation_time_msec); 374424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(priority); 375ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 376ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* AppListSpecificsToValue( 3795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::AppListSpecifics& proto) { 3805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_id); 3825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_ENUM(item_type, GetAppListItemTypeString); 3835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_name); 3845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(parent_id); 3855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(page_ordinal); 3865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_ordinal); 3875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 3895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppNotificationToValue( 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotification& proto) { 3932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_id); 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_timestamp_ms); 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(body_text); 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_url); 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_text); 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingSpecificsToValue( 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSettingSpecifics& proto) { 4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension_setting, ExtensionSettingSpecificsToValue); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSpecificsToValue( 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSpecifics& proto) { 4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension, ExtensionSpecificsToValue); 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(notification_settings, AppSettingsToValue); 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_launch_ordinal); 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(page_ordinal); 4185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_ENUM(launch_type, GetLaunchTypeString); 4195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu SET_STR(bookmark_app_url); 4205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu SET_STR(bookmark_app_description); 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillSpecificsToValue( 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillSpecifics& proto) { 4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(usage_timestamp); 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(profile, AutofillProfileSpecificsToValue); 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillProfileSpecificsToValue( 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillProfileSpecifics& proto) { 4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 439eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch SET_STR(origin); 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_first); 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_middle); 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_last); 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(email_address); 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(company_name); 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line1); 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line2); 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_city); 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_state); 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_zip); 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_country); 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_street_address); 4555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_sorting_code); 4565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_dependent_locality); 457a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch SET_STR(address_home_language_code); 4585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(phone_home_whole_number); 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 463a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)base::DictionaryValue* MetaInfoToValue( 464a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const sync_pb::MetaInfo& proto) { 465a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 466a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(key); 467a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(value); 468a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return value; 469a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 470a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 4712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* BookmarkSpecificsToValue( 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::BookmarkSpecifics& proto) { 4732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_time_us); 4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(icon_url); 479a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_REP(meta_info, &MetaInfoToValue); 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DeviceInfoSpecificsToValue( 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DeviceInfoSpecifics& proto) { 4852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_user_agent); 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(chrome_version); 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DictionarySpecificsToValue( 4952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DictionarySpecifics& proto) { 4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(word); 4982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 501c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 502c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 503eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconSyncFlagsToValue( 504c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::FaviconSyncFlags& proto) { 505c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 506c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(enabled); 507c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT32(favicon_sync_limit); 508c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 509c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 510c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 511a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace 512c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExperimentsSpecificsToValue( 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExperimentsSpecifics& proto) { 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(keystore_encryption); 5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(history_delete_directives); 5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(autofill_culling); 519ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch SET_EXPERIMENT_ENABLED_FIELD(pre_commit_update_avoidance); 5205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET(favicon_sync, FaviconSyncFlagsToValue); 5215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(gcm_channel); 5225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(enhanced_bookmarks); 523effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch SET_EXPERIMENT_ENABLED_FIELD(gcm_invalidations); 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSettingSpecificsToValue( 5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSettingSpecifics& proto) { 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key); 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSpecificsToValue( 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSpecifics& proto) { 5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id); 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(version); 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(update_url); 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(enabled); 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(incognito_enabled); 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 549eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconDataToValue( 5502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconData& proto) { 551eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BYTES(favicon); 5532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(width); 5542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(height); 5552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 559eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconImageSpecificsToValue( 5602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconImageSpecifics& proto) { 561eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web, FaviconDataToValue); 5642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web_32, FaviconDataToValue); 5652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_64, FaviconDataToValue); 5662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_precomposed_64, FaviconDataToValue); 5672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 570eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconTrackingSpecificsToValue( 5712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconTrackingSpecifics& proto) { 572eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(last_visit_time_ms) 5752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(is_bookmarked); 5762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* HistoryDeleteDirectiveSpecificsToValue( 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::HistoryDeleteDirectiveSpecifics& proto) { 5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(global_id_directive, GlobalIdDirectiveToValue); 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(time_range_directive, TimeRangeDirectiveToValue); 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 587c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* ManagedUserSettingSpecificsToValue( 588c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::ManagedUserSettingSpecifics& proto) { 589c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 590c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(name); 591c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(value); 592c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 593c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 594c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 59590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)base::DictionaryValue* ManagedUserSpecificsToValue( 59690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const sync_pb::ManagedUserSpecifics& proto) { 59790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 59890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(id); 59990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(name); 60090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_BOOL(acknowledged); 6013551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(master_key); 60258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chrome_avatar); 60358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chromeos_avatar); 60490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return value; 60590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 60690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 6075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* ManagedUserSharedSettingSpecificsToValue( 6085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::ManagedUserSharedSettingSpecifics& proto) { 6095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(mu_id); 6115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(key); 6125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(value); 6135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(acknowledged); 6145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 6155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 6165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* NigoriSpecificsToValue( 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::NigoriSpecifics& proto) { 6192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encryption_keybag, EncryptedDataToValue); 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(keybag_is_frozen); 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_bookmarks); 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_preferences); 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill_profile); 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill); 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_themes); 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_typed_urls); 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extension_settings); 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extensions); 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_sessions); 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_app_settings); 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_apps); 6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_search_engines); 6342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(encrypt_dictionary); 6354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_BOOL(encrypt_articles); 6365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(encrypt_app_list); 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_everything); 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_tab_favicons); 6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(passphrase_type, PassphraseTypeString); 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(keystore_decryptor_token, EncryptedDataToValue); 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(keystore_migration_time); 6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(custom_passphrase_time); 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticlePageToValue( 6474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticlePage& proto) { 6484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 6504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticleSpecificsToValue( 6544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticleSpecifics& proto) { 6554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(entry_id); 6574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(title); 6584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(pages, ArticlePageToValue); 6594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsToValue( 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecifics& proto) { 6642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encrypted, EncryptedDataToValue); 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PreferenceSpecificsToValue( 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PreferenceSpecifics& proto) { 6712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 677c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* PriorityPreferenceSpecificsToValue( 678c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::PriorityPreferenceSpecifics& specifics) { 679c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 680c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 681c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 682c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 683c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* SyncedNotificationAppInfoSpecificsToValue( 6855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::SyncedNotificationAppInfoSpecifics& proto) { 6865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_REP(synced_notification_app_info, SyncedNotificationAppInfoToValue); 6885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 6895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 6905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncedNotificationSpecificsToValue( 6922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncedNotificationSpecifics& proto) { 693ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // There is a lot of data, for now just use heading, description, key, and 694ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // the read state. 695ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // TODO(petewil): Eventually add more data here. 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 697ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(coalesced_notification, CoalescedNotificationToValue); 6982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SearchEngineSpecificsToValue( 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SearchEngineSpecifics& proto) { 7032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(short_name); 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(keyword); 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_url); 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(safe_for_autoreplace); 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originating_url); 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(input_encodings); 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(show_in_default_list); 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(suggestions_url); 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(prepopulate_id); 7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(autogenerate_keyword); 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(instant_url); 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(last_modified); 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_guid); 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(alternate_urls); 7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms_replacement_key); 721a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url); 722a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(search_url_post_params); 723a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(suggestions_url_post_params); 724a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(instant_url_post_params); 725a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url_post_params); 7263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(new_tab_url); 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionSpecificsToValue( 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionSpecifics& proto) { 7322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(session_tag); 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(header, SessionHeaderToValue); 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(tab, SessionTabToValue); 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_node_id); 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ThemeSpecificsToValue( 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ThemeSpecifics& proto) { 7422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_custom_theme); 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_system_theme_by_default); 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_name); 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_id); 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_update_url); 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TypedUrlSpecificsToValue( 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TypedUrlSpecifics& proto) { 7532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hidden); 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(visits); 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(visit_transitions); 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntitySpecificsToValue( 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::EntitySpecifics& specifics) { 7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app, AppSpecificsToValue); 7665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(app_list, AppListSpecificsToValue); 7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_notification, AppNotificationToValue); 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_setting, AppSettingSpecificsToValue); 7694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_FIELD(article, ArticleSpecificsToValue); 7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill, AutofillSpecificsToValue); 7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill_profile, AutofillProfileSpecificsToValue); 7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(bookmark, BookmarkSpecificsToValue); 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(device_info, DeviceInfoSpecificsToValue); 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(dictionary, DictionarySpecificsToValue); 7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(experiments, ExperimentsSpecificsToValue); 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension, ExtensionSpecificsToValue); 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension_setting, ExtensionSettingSpecificsToValue); 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_image, FaviconImageSpecificsToValue); 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_tracking, FaviconTrackingSpecificsToValue); 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(history_delete_directive, HistoryDeleteDirectiveSpecificsToValue); 781c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(managed_user_setting, ManagedUserSettingSpecificsToValue); 7825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(managed_user_shared_setting, 7835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ManagedUserSharedSettingSpecificsToValue); 78490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_FIELD(managed_user, ManagedUserSpecificsToValue); 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(nigori, NigoriSpecificsToValue); 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(password, PasswordSpecificsToValue); 7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(priority_preference, PriorityPreferenceSpecificsToValue); 7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(search_engine, SearchEngineSpecificsToValue); 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(session, SessionSpecificsToValue); 7912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(synced_notification, SyncedNotificationSpecificsToValue); 7925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(synced_notification_app_info, 7935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SyncedNotificationAppInfoSpecificsToValue); 7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(theme, ThemeSpecificsToValue); 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(typed_url, TypedUrlSpecificsToValue); 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 801eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::StringValue* UniquePositionToStringValue( 802c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::UniquePosition& proto) { 803c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UniquePosition pos = UniquePosition::FromProto(proto); 804eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return new base::StringValue(pos.ToDebugString()); 805c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 806c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncEntityToValue(const sync_pb::SyncEntity& proto, 8082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool include_specifics) { 8092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(old_parent_id); 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(ctime); 8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(non_unique_name); 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(sync_timestamp); 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(server_defined_unique_tag); 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 821c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(unique_position, UniquePositionToStringValue); 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(insert_after_item_id); 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(deleted); 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_cache_guid); 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_client_item_id); 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (include_specifics) 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(specifics, EntitySpecificsToValue); 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(folder); 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_defined_unique_tag); 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* SyncEntitiesToValue( 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>& entities, 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>::const_iterator it; 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (it = entities.begin(); it != entities.end(); ++it) { 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(SyncEntityToValue(*it, include_specifics)); 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ChromiumExtensionActivityToValue( 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ChromiumExtensionsActivity& proto) { 8472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(bookmark_writes_since_last_commit); 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitMessageToValue( 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitMessage& proto, 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 8562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(extensions_activity, ChromiumExtensionActivityToValue); 8612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(config_params, ClientConfigParamsToValue); 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* GetUpdateTriggersToValue( 866c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::GetUpdateTriggers& proto) { 867c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 868c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR_REP(notification_hint); 869c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(client_dropped_hints); 870c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(invalidations_out_of_sync); 871c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(local_modification_nudges); 872c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(datatype_refresh_nudges); 873c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 874c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 875c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DataTypeProgressMarkerToValue( 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DataTypeProgressMarker& proto) { 8782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(data_type_id); 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(token); 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(timestamp_token_for_migration); 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(notification_hint); 883c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(get_update_triggers, GetUpdateTriggersToValue); 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 887c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochbase::DictionaryValue* DataTypeContextToValue( 888c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const sync_pb::DataTypeContext& proto) { 889c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 890c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_INT32(data_type_id); 891c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_STR(context); 892c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_INT64(version); 893c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch return value; 894c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 895c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 8962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesCallerInfoToValue( 8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesCallerInfo& proto) { 8982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(source, GetUpdatesSourceString); 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(notifications_enabled); 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesMessageToValue( 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesMessage& proto) { 9062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(fetch_folders); 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(batch_size); 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(from_progress_marker, DataTypeProgressMarkerToValue); 9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(streaming); 9122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(need_encryption_key); 9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(create_mobile_bookmarks_folder); 914c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_ENUM(get_updates_origin, GetUpdatesOriginString); 915c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_REP(client_contexts, DataTypeContextToValue); 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientStatusToValue(const sync_pb::ClientStatus& proto) { 9202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hierarchy_conflict_detected); 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntryResponseToValue( 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitResponse::EntryResponse& proto) { 9272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(response_type, GetResponseTypeString); 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitResponseToValue( 9402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::CommitResponse& proto) { 9412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(entryresponse, EntryResponseToValue); 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesResponseToValue( 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesResponse& proto, 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(changes_remaining); 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(new_progress_marker, DataTypeProgressMarkerToValue); 954c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_REP(context_mutations, DataTypeContextToValue); 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientCommandToValue( 9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientCommand& proto) { 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_poll_interval); 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_long_poll_interval); 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(max_commit_batch_size); 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(sessions_commit_delay_seconds); 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(throttle_delay_seconds); 966b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) SET_INT32(client_invalidation_hint_buffer_size); 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ErrorToValue( 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse::Error& proto) { 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_type, GetErrorTypeString); 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_description); 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(action, GetActionString); 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerResponseToValue( 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse& proto, 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 9852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(commit, CommitResponseToValue); 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_get_updates()) { 9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("get_updates", GetUpdatesResponseToValue(proto.get_updates(), 9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) include_specifics)); 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(error, ErrorToValue); 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_code, GetErrorTypeString); 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_command, ClientCommandToValue); 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(migrated_data_type_id); 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerMessageToValue( 10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerMessage& proto, 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(share); 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(protocol_version); 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_commit()) { 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("commit", 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommitMessageToValue(proto.commit(), include_specifics)); 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(get_updates, GetUpdatesMessageToValue); 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_problem_detected); 10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(debug_info, DebugInfoToValue); 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_status, ClientStatusToValue); 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DatatypeAssociationStatsToValue( 10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DatatypeAssociationStats& proto) { 10222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(data_type_id); 10242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_before_association); 10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_before_association); 10262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_after_association); 10272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_after_association); 10282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_added); 10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_deleted); 10302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_modified); 10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_added); 10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_deleted); 10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_modified); 10347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(local_version_pre_association); 10357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(sync_version_pre_association) 10362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(had_error); 1037868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_wait_time_us); 1038868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_time_us); 1039868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_high_priority_us); 1040868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_same_priority_us); 10412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugEventInfoToValue( 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DebugEventInfo& proto) { 10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 104723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) SET_ENUM(singleton_event, SingletonDebugEventTypeString); 10482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(sync_cycle_completed_event_info, SyncCycleCompletedEventInfoToValue); 10492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(nudging_datatype); 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(datatypes_notified_from_server); 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(datatype_association_stats, DatatypeAssociationStatsToValue); 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugInfoToValue(const sync_pb::DebugInfo& proto) { 10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_REP(events, DebugEventInfoToValue); 10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_ready); 10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_has_pending_keys); 10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(events_dropped); 10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncCycleCompletedEventInfoToValue( 10652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncCycleCompletedEventInfo& proto) { 10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_encryption_conflicts); 10682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_hierarchy_conflicts); 10692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_server_conflicts); 10702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_updates_downloaded); 10712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_reflected_updates_downloaded); 10722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 10732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientConfigParamsToValue( 10772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientConfigParams& proto) { 10782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(enabled_type_ids); 10802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(tabs_datatype_enabled); 10812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1084e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdochbase::DictionaryValue* AttachmentIdProtoToValue( 1085e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch const sync_pb::AttachmentIdProto& proto) { 1086e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 1087e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch SET_STR(unique_id); 1088e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch return value; 1089e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch} 1090e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_REP 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BOOL 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BYTES 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT32 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64_REP 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR_REP 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_FIELD 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncer 1105