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" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/i18n/time_formatting.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_number_conversions.h" 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/time/time.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/internal_api/public/base/unique_position.h" 195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "sync/protocol/app_list_specifics.pb.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_notification_specifics.pb.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_setting_specifics.pb.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_specifics.pb.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/autofill_specifics.pb.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/bookmark_specifics.pb.h" 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/dictionary_specifics.pb.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/encryption.pb.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/experiments_specifics.pb.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_setting_specifics.pb.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_specifics.pb.h" 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_image_specifics.pb.h" 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_tracking_specifics.pb.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/history_delete_directive_specifics.pb.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/nigori_specifics.pb.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/password_specifics.pb.h" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/preference_specifics.pb.h" 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/priority_preference_specifics.pb.h" 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/proto_enum_conversions.h" 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/search_engine_specifics.pb.h" 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/session_specifics.pb.h" 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/sync.pb.h" 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "sync/protocol/synced_notification_app_info_specifics.pb.h" 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/synced_notification_specifics.pb.h" 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/theme_specifics.pb.h" 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/typed_url_specifics.pb.h" 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/protocol/unique_position.pb.h" 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "sync/util/time.h" 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Basic Type -> Value functions. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeInt64Value(int64 x) { 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(base::Int64ToString(x)); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(akalin): Perhaps make JSONWriter support BinaryValue and use 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that instead of a StringValue. 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeBytesValue(const std::string& bytes) { 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string bytes_base64; 62a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::Base64Encode(bytes, &bytes_base64); 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(bytes_base64); 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeStringValue(const std::string& str) { 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(str); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the enum type. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T> 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeEnumValue(T t, const char* (*converter_fn)(T)) { 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(converter_fn(t)); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the field type, F is either RepeatedField or RepeatedPtrField, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and V is a subclass of Value. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T, class F, class V> 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* MakeRepeatedValue(const F& fields, V* (*converter_fn)(T)) { 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (typename F::const_iterator it = fields.begin(); it != fields.end(); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++it) { 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(converter_fn(*it)); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbase::StringValue* MakeTimestampValue(int64 tm) { 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return new base::StringValue( 90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::TimeFormatShortDateAndTime(syncer::ProtoTimeToTime(tm))); 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper macros to reduce the amount of boilerplate. 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET(field, fn) \ 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_##field()) { \ 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(proto.field())); \ 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_REP(field, fn) \ 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeRepeatedValue(proto.field(), fn)) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_ENUM(field, fn) \ 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeEnumValue(proto.field(), fn)) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_BOOL(field) SET(field, new base::FundamentalValue) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_BYTES(field) SET(field, MakeBytesValue) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32(field) SET(field, MakeInt64Value) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32_REP(field) SET_REP(field, MakeInt64Value) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64(field) SET(field, MakeInt64Value) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64_REP(field) SET_REP(field, MakeInt64Value) 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_STR(field) SET(field, new base::StringValue) 113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define SET_TIME_STR(field) SET(field, MakeTimestampValue) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_STR_REP(field) \ 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, \ 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeRepeatedValue<const std::string&, \ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) google::protobuf::RepeatedPtrField< \ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string >, \ 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::StringValue>(proto.field(), \ 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MakeStringValue)) 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_EXPERIMENT_ENABLED_FIELD(field) \ 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) do { \ 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (proto.has_##field() && \ 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().has_enabled()) { \ 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value->Set(#field, \ 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new base::FundamentalValue( \ 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().enabled())); \ 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } \ 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } while (0) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_FIELD(field, fn) \ 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do { \ 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (specifics.has_##field()) { \ 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(specifics.field())); \ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } \ 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } while (0) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If you add another macro, don't forget to add an #undef at the end 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of this file, too. 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EncryptedDataToValue( 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::EncryptedData& proto) { 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key_name); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(akalin): Shouldn't blob be of type bytes instead of string? 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(blob); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingsToValue( 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotificationSettings& proto) { 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(initial_setup_done); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(disabled); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(oauth_client_id); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionHeaderToValue( 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionHeader& proto) { 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(window, SessionWindowToValue); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionTabToValue(const sync_pb::SessionTab& proto) { 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_id); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_visual_index); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(current_navigation_index); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(pinned); 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_app_id); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(navigation, TabNavigationToValue); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(favicon_type, GetFaviconTypeString); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_source); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionWindowToValue( 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionWindow& proto) { 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(selected_tab_index); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(tab); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(browser_type, GetBrowserTypeString); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TabNavigationToValue( 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TabNavigation& proto) { 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(virtual_url); 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(referrer); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(state); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(page_transition, GetPageTransitionString); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(redirect_type, GetPageTransitionRedirectTypeString); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(unique_id); 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(timestamp_msec); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_forward_back); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_from_address_bar); 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_home_page); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_start); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_end); 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(global_id); 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms); 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 21290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_ENUM(blocked_state, GetBlockedStateString); 21390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR_REP(content_pack_categories); 214424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(http_status_code); 2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_INT32(referrer_policy); 2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(is_restored); 2170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_REP(navigation_redirect, NavigationRedirectToValue); 2180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(last_navigation_redirect_url); 2190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return value; 2200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 2210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 2220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochbase::DictionaryValue* NavigationRedirectToValue( 2230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch const sync_pb::NavigationRedirect& proto) { 2240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 2250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(url); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsDataToValue( 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecificsData& proto) { 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(scheme); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(signon_realm); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(origin); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(action); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_element); 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_value); 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(password_element); 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->SetString("password_value", "<redacted>"); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(ssl_valid); 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(preferred); 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(blacklisted); 2440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_INT32(type); 2450529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_INT32(times_used); 2461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SET_STR(display_name); 2471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SET_STR(avatar_url); 2481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SET_STR(federation_url); 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* GlobalIdDirectiveToValue( 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GlobalIdDirective& proto) { 2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(global_id); 2562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(start_time_usec); 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(end_time_usec); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* TimeRangeDirectiveToValue( 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TimeRangeDirective& proto) { 2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(start_time_usec); 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(end_time_usec); 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* SyncedNotificationAppInfoToValue( 2705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::SyncedNotificationAppInfo& proto) { 2715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR_REP(app_id); 2735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(settings_display_name); 2740529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(app_name); 2750529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(settings_url); 2760529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch SET_STR(info_url); 2775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 2785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(petewil): Add fields for the monochrome icon when it is available. 2795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 2805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 2815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 282424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationImageToValue( 283424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationImage& proto) { 284424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 285424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(url); 2864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(alt_text); 2874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_width); 2884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_height); 289424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 290424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 291424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 292424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationProfileImageToValue( 293424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationProfileImage& proto) { 294424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 295424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(image_url); 2964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(oid); 2974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(display_name); 298424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 299424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 300424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 301424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* MediaToValue( 302424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::Media& proto) { 303424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 304424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET(image, SyncedNotificationImageToValue); 305424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 306424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 307424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 3084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationActionToValue( 3094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationAction& proto) { 3104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 3124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 3134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 3144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(request_data); 3154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 3164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationDestiationToValue( 3204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationDestination& proto) { 3214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 3234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 3244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 3254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 3264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* TargetToValue( 3304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::Target& proto) { 3314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(destination, SyncedNotificationDestiationToValue); 3334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(action, SyncedNotificationActionToValue); 3344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(target_key); 3354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 338ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* SimpleCollapsedLayoutToValue( 339ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SimpleCollapsedLayout& proto) { 340ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(app_icon, SyncedNotificationImageToValue); 3424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(profile_image, SyncedNotificationProfileImageToValue); 343ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(heading); 344ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(description); 345424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(annotation); 346424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_REP(media, MediaToValue); 347ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 348ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 349ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 350ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CollapsedInfoToValue( 351ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CollapsedInfo& proto) { 352ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 353ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(simple_collapsed_layout, SimpleCollapsedLayoutToValue); 3544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT64(creation_timestamp_usec); 3554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(default_destination, SyncedNotificationDestiationToValue); 3564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(target, TargetToValue); 3574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationToValue( 3614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotification& proto) { 3624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(type); 3644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(external_id); 3654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil) Add SyncedNotificationCreator here if we ever need it. 366ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 367ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 368ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 369ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* RenderInfoToValue( 370ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SyncedNotificationRenderInfo& proto) { 371ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil): Add the expanded info values once we start using them. 373ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(collapsed_info, CollapsedInfoToValue); 374ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 375ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 376ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 377ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CoalescedNotificationToValue( 378ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CoalescedSyncedNotification& proto) { 379ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 380ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(key); 3814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(app_id); 3824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(notification, SyncedNotificationToValue); 3834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(render_info, RenderInfoToValue); 384ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_INT32(read_state); 385424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT64(creation_time_msec); 386424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(priority); 387ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 388ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* AppListSpecificsToValue( 3915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::AppListSpecifics& proto) { 3925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_id); 3945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_ENUM(item_type, GetAppListItemTypeString); 3955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_name); 3965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(parent_id); 3975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(page_ordinal); 3985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(item_ordinal); 3995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 4015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 4025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppNotificationToValue( 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotification& proto) { 4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_id); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_timestamp_ms); 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(body_text); 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_url); 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_text); 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingSpecificsToValue( 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSettingSpecifics& proto) { 4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension_setting, ExtensionSettingSpecificsToValue); 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSpecificsToValue( 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSpecifics& proto) { 4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension, ExtensionSpecificsToValue); 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(notification_settings, AppSettingsToValue); 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_launch_ordinal); 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(page_ordinal); 4305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_ENUM(launch_type, GetLaunchTypeString); 4315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu SET_STR(bookmark_app_url); 4325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu SET_STR(bookmark_app_description); 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillSpecificsToValue( 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillSpecifics& proto) { 4392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(usage_timestamp); 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(profile, AutofillProfileSpecificsToValue); 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillProfileSpecificsToValue( 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillProfileSpecifics& proto) { 4492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 451eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch SET_STR(origin); 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_first); 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_middle); 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_last); 4566d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) SET_STR_REP(name_full); 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(email_address); 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(company_name); 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line1); 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line2); 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_city); 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_state); 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_zip); 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_country); 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_street_address); 4685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_sorting_code); 4695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(address_home_dependent_locality); 470a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch SET_STR(address_home_language_code); 4715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(phone_home_whole_number); 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 476a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)base::DictionaryValue* MetaInfoToValue( 477a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const sync_pb::MetaInfo& proto) { 478a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 479a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(key); 480a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(value); 481a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return value; 482a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 483a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 4842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* BookmarkSpecificsToValue( 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::BookmarkSpecifics& proto) { 4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_time_us); 4912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(icon_url); 492a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_REP(meta_info, &MetaInfoToValue); 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DeviceInfoSpecificsToValue( 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DeviceInfoSpecifics& proto) { 4982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_user_agent); 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(chrome_version); 504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch SET_TIME_STR(backup_timestamp); 5055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) SET_STR(signin_scoped_device_id); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DictionarySpecificsToValue( 5102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DictionarySpecifics& proto) { 5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(word); 5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 516c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 517c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 518eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconSyncFlagsToValue( 519c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::FaviconSyncFlags& proto) { 520c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 521c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(enabled); 522c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT32(favicon_sync_limit); 523c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 524c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 525c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 526010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)base::DictionaryValue* EnhancedBookmarksFlagsToValue( 527010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const sync_pb::EnhancedBookmarksFlags& proto) { 528010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 529010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SET_BOOL(enabled); 530010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SET_STR(extension_id); 531010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return value; 532010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 533010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 534a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace 535c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExperimentsSpecificsToValue( 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExperimentsSpecifics& proto) { 5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(keystore_encryption); 5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(history_delete_directives); 5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(autofill_culling); 542ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch SET_EXPERIMENT_ENABLED_FIELD(pre_commit_update_avoidance); 5435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET(favicon_sync, FaviconSyncFlagsToValue); 5445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(gcm_channel); 545010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SET(enhanced_bookmarks, EnhancedBookmarksFlagsToValue); 546effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch SET_EXPERIMENT_ENABLED_FIELD(gcm_invalidations); 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSettingSpecificsToValue( 5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSettingSpecifics& proto) { 5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key); 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSpecificsToValue( 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSpecifics& proto) { 5612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id); 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(version); 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(update_url); 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(enabled); 5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(incognito_enabled); 567010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SET_BOOL(remote_install); 568116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch SET_BOOL(installed_by_custodian); 5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 574eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconDataToValue( 5752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconData& proto) { 576eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BYTES(favicon); 5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(width); 5792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(height); 5802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 584eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconImageSpecificsToValue( 5852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconImageSpecifics& proto) { 586eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web, FaviconDataToValue); 5892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web_32, FaviconDataToValue); 5902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_64, FaviconDataToValue); 5912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_precomposed_64, FaviconDataToValue); 5922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 595eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconTrackingSpecificsToValue( 5962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconTrackingSpecifics& proto) { 597eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(last_visit_time_ms) 6002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(is_bookmarked); 6012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 6022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 6032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* HistoryDeleteDirectiveSpecificsToValue( 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::HistoryDeleteDirectiveSpecifics& proto) { 6062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(global_id_directive, GlobalIdDirectiveToValue); 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(time_range_directive, TimeRangeDirectiveToValue); 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 612c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* ManagedUserSettingSpecificsToValue( 613c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::ManagedUserSettingSpecifics& proto) { 614c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 615c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(name); 616c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(value); 617c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 618c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 619c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 62090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)base::DictionaryValue* ManagedUserSpecificsToValue( 62190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const sync_pb::ManagedUserSpecifics& proto) { 62290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 62390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(id); 62490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(name); 62590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_BOOL(acknowledged); 6263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(master_key); 62758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chrome_avatar); 62858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chromeos_avatar); 62990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return value; 63090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 63190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 6325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* ManagedUserSharedSettingSpecificsToValue( 6335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::ManagedUserSharedSettingSpecifics& proto) { 6345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(mu_id); 6365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(key); 6375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_STR(value); 6385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(acknowledged); 6395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 6405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 6415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* NigoriSpecificsToValue( 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::NigoriSpecifics& proto) { 6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encryption_keybag, EncryptedDataToValue); 6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(keybag_is_frozen); 6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_bookmarks); 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_preferences); 6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill_profile); 6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill); 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_themes); 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_typed_urls); 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extension_settings); 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extensions); 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_sessions); 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_app_settings); 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_apps); 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_search_engines); 6592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(encrypt_dictionary); 6604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_BOOL(encrypt_articles); 6615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_BOOL(encrypt_app_list); 6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_everything); 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_tab_favicons); 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(passphrase_type, PassphraseTypeString); 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(keystore_decryptor_token, EncryptedDataToValue); 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(keystore_migration_time); 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(custom_passphrase_time); 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticlePageToValue( 6724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticlePage& proto) { 6734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 6754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticleSpecificsToValue( 6794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticleSpecifics& proto) { 6804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(entry_id); 6824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(title); 6834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(pages, ArticlePageToValue); 6844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsToValue( 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecifics& proto) { 6892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encrypted, EncryptedDataToValue); 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PreferenceSpecificsToValue( 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PreferenceSpecifics& proto) { 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 702c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* PriorityPreferenceSpecificsToValue( 703c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::PriorityPreferenceSpecifics& specifics) { 704c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 705c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 706c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 707c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 708c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::DictionaryValue* SyncedNotificationAppInfoSpecificsToValue( 7105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const sync_pb::SyncedNotificationAppInfoSpecifics& proto) { 7115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_REP(synced_notification_app_info, SyncedNotificationAppInfoToValue); 7135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return value; 7145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 7155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncedNotificationSpecificsToValue( 7172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncedNotificationSpecifics& proto) { 718ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // There is a lot of data, for now just use heading, description, key, and 719ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // the read state. 720ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // TODO(petewil): Eventually add more data here. 7212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 722ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(coalesced_notification, CoalescedNotificationToValue); 7232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SearchEngineSpecificsToValue( 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SearchEngineSpecifics& proto) { 7282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(short_name); 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(keyword); 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_url); 7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(safe_for_autoreplace); 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originating_url); 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(input_encodings); 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(show_in_default_list); 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(suggestions_url); 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(prepopulate_id); 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(autogenerate_keyword); 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(instant_url); 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(last_modified); 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_guid); 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(alternate_urls); 7452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms_replacement_key); 746a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url); 747a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(search_url_post_params); 748a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(suggestions_url_post_params); 749a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(instant_url_post_params); 750a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url_post_params); 7513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(new_tab_url); 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionSpecificsToValue( 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionSpecifics& proto) { 7572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(session_tag); 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(header, SessionHeaderToValue); 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(tab, SessionTabToValue); 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_node_id); 7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ThemeSpecificsToValue( 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ThemeSpecifics& proto) { 7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_custom_theme); 7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_system_theme_by_default); 7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_name); 7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_id); 7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_update_url); 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TypedUrlSpecificsToValue( 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TypedUrlSpecifics& proto) { 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hidden); 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(visits); 7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(visit_transitions); 7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntitySpecificsToValue( 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::EntitySpecifics& specifics) { 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app, AppSpecificsToValue); 7915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(app_list, AppListSpecificsToValue); 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_notification, AppNotificationToValue); 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_setting, AppSettingSpecificsToValue); 7944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_FIELD(article, ArticleSpecificsToValue); 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill, AutofillSpecificsToValue); 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill_profile, AutofillProfileSpecificsToValue); 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(bookmark, BookmarkSpecificsToValue); 7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(device_info, DeviceInfoSpecificsToValue); 7992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(dictionary, DictionarySpecificsToValue); 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(experiments, ExperimentsSpecificsToValue); 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension, ExtensionSpecificsToValue); 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension_setting, ExtensionSettingSpecificsToValue); 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_image, FaviconImageSpecificsToValue); 8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_tracking, FaviconTrackingSpecificsToValue); 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(history_delete_directive, HistoryDeleteDirectiveSpecificsToValue); 806c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(managed_user_setting, ManagedUserSettingSpecificsToValue); 8075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(managed_user_shared_setting, 8085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ManagedUserSharedSettingSpecificsToValue); 80990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_FIELD(managed_user, ManagedUserSpecificsToValue); 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(nigori, NigoriSpecificsToValue); 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(password, PasswordSpecificsToValue); 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(priority_preference, PriorityPreferenceSpecificsToValue); 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(search_engine, SearchEngineSpecificsToValue); 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(session, SessionSpecificsToValue); 8162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(synced_notification, SyncedNotificationSpecificsToValue); 8175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SET_FIELD(synced_notification_app_info, 8185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SyncedNotificationAppInfoSpecificsToValue); 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(theme, ThemeSpecificsToValue); 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(typed_url, TypedUrlSpecificsToValue); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 826eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::StringValue* UniquePositionToStringValue( 827c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::UniquePosition& proto) { 828c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UniquePosition pos = UniquePosition::FromProto(proto); 829eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return new base::StringValue(pos.ToDebugString()); 830c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 831c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 83246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace 83346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncEntityToValue(const sync_pb::SyncEntity& proto, 8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool include_specifics) { 8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(old_parent_id); 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(ctime); 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(non_unique_name); 8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(sync_timestamp); 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(server_defined_unique_tag); 8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 848c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(unique_position, UniquePositionToStringValue); 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(insert_after_item_id); 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(deleted); 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_cache_guid); 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_client_item_id); 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (include_specifics) 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(specifics, EntitySpecificsToValue); 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(folder); 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_defined_unique_tag); 857116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch SET_REP(attachment_id, AttachmentIdProtoToValue); 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 86146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace { 86246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* SyncEntitiesToValue( 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>& entities, 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 8662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>::const_iterator it; 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (it = entities.begin(); it != entities.end(); ++it) { 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(SyncEntityToValue(*it, include_specifics)); 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ChromiumExtensionActivityToValue( 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ChromiumExtensionsActivity& proto) { 8772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(bookmark_writes_since_last_commit); 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitMessageToValue( 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitMessage& proto, 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 8862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(extensions_activity, ChromiumExtensionActivityToValue); 8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(config_params, ClientConfigParamsToValue); 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* GetUpdateTriggersToValue( 896c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::GetUpdateTriggers& proto) { 897c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 898c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR_REP(notification_hint); 899c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(client_dropped_hints); 900c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(invalidations_out_of_sync); 901c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(local_modification_nudges); 902c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(datatype_refresh_nudges); 903c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 904c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 905c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DataTypeProgressMarkerToValue( 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DataTypeProgressMarker& proto) { 9082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(data_type_id); 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(token); 9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(timestamp_token_for_migration); 9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(notification_hint); 913c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(get_update_triggers, GetUpdateTriggersToValue); 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 917c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochbase::DictionaryValue* DataTypeContextToValue( 918c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const sync_pb::DataTypeContext& proto) { 919c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 920c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_INT32(data_type_id); 921c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_STR(context); 922c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_INT64(version); 923c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch return value; 924c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 925c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 9262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesCallerInfoToValue( 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesCallerInfo& proto) { 9282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(source, GetUpdatesSourceString); 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(notifications_enabled); 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesMessageToValue( 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesMessage& proto) { 9362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(fetch_folders); 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(batch_size); 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(from_progress_marker, DataTypeProgressMarkerToValue); 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(streaming); 9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(need_encryption_key); 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(create_mobile_bookmarks_folder); 944c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_ENUM(get_updates_origin, GetUpdatesOriginString); 945c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_REP(client_contexts, DataTypeContextToValue); 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientStatusToValue(const sync_pb::ClientStatus& proto) { 9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hierarchy_conflict_detected); 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntryResponseToValue( 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitResponse::EntryResponse& proto) { 9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(response_type, GetResponseTypeString); 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitResponseToValue( 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::CommitResponse& proto) { 9712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(entryresponse, EntryResponseToValue); 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesResponseToValue( 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesResponse& proto, 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(changes_remaining); 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(new_progress_marker, DataTypeProgressMarkerToValue); 984c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch SET_REP(context_mutations, DataTypeContextToValue); 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientCommandToValue( 9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientCommand& proto) { 9902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_poll_interval); 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_long_poll_interval); 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(max_commit_batch_size); 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(sessions_commit_delay_seconds); 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(throttle_delay_seconds); 996b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) SET_INT32(client_invalidation_hint_buffer_size); 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ErrorToValue( 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse::Error& proto) { 10022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_type, GetErrorTypeString); 10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_description); 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(action, GetActionString); 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerResponseToValue( 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse& proto, 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(commit, CommitResponseToValue); 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_get_updates()) { 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("get_updates", GetUpdatesResponseToValue(proto.get_updates(), 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) include_specifics)); 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(error, ErrorToValue); 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_code, GetErrorTypeString); 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_command, ClientCommandToValue); 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(migrated_data_type_id); 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerMessageToValue( 10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerMessage& proto, 10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(share); 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(protocol_version); 10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_commit()) { 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("commit", 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommitMessageToValue(proto.commit(), include_specifics)); 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(get_updates, GetUpdatesMessageToValue); 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_problem_detected); 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(debug_info, DebugInfoToValue); 10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_status, ClientStatusToValue); 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DatatypeAssociationStatsToValue( 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DatatypeAssociationStats& proto) { 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(data_type_id); 10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_before_association); 10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_before_association); 10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_after_association); 10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_after_association); 10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_added); 10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_deleted); 10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_modified); 10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_added); 10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_deleted); 10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_modified); 10647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(local_version_pre_association); 10657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(sync_version_pre_association) 10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(had_error); 1067868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_wait_time_us); 1068868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_time_us); 1069868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_high_priority_us); 1070868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_same_priority_us); 10712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugEventInfoToValue( 10752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DebugEventInfo& proto) { 10762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 107723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) SET_ENUM(singleton_event, SingletonDebugEventTypeString); 10782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(sync_cycle_completed_event_info, SyncCycleCompletedEventInfoToValue); 10792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(nudging_datatype); 10802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(datatypes_notified_from_server); 10812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(datatype_association_stats, DatatypeAssociationStatsToValue); 10822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugInfoToValue(const sync_pb::DebugInfo& proto) { 10862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_REP(events, DebugEventInfoToValue); 10882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_ready); 10892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_has_pending_keys); 10902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(events_dropped); 10912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncCycleCompletedEventInfoToValue( 10952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncCycleCompletedEventInfo& proto) { 10962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_encryption_conflicts); 10982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_hierarchy_conflicts); 10992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_server_conflicts); 11002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_updates_downloaded); 11012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_reflected_updates_downloaded); 11022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 11032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 11042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 11052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientConfigParamsToValue( 11072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientConfigParams& proto) { 11082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 11092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(enabled_type_ids); 11102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(tabs_datatype_enabled); 11112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 11122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 11132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1114e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdochbase::DictionaryValue* AttachmentIdProtoToValue( 1115e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch const sync_pb::AttachmentIdProto& proto) { 1116e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 1117e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch SET_STR(unique_id); 1118e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch return value; 1119e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch} 1120e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch 11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_REP 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BOOL 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BYTES 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT32 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64_REP 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR_REP 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_FIELD 11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncer 1135