15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Keep this file in sync with the .proto files in this directory. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/proto_value_conversions.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include <string> 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/base64.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_number_conversions.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/internal_api/public/base/unique_position.h" 17d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#include "sync/protocol/app_list_specifics.pb.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_notification_specifics.pb.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_setting_specifics.pb.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/app_specifics.pb.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/autofill_specifics.pb.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/bookmark_specifics.pb.h" 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/dictionary_specifics.pb.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/encryption.pb.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/experiments_specifics.pb.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_setting_specifics.pb.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/extension_specifics.pb.h" 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_image_specifics.pb.h" 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/favicon_tracking_specifics.pb.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/history_delete_directive_specifics.pb.h" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/nigori_specifics.pb.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/password_specifics.pb.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/preference_specifics.pb.h" 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/priority_preference_specifics.pb.h" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/proto_enum_conversions.h" 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/search_engine_specifics.pb.h" 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/session_specifics.pb.h" 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/sync.pb.h" 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "sync/protocol/synced_notification_specifics.pb.h" 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/theme_specifics.pb.h" 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/protocol/typed_url_specifics.pb.h" 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "sync/protocol/unique_position.pb.h" 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer { 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Basic Type -> Value functions. 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeInt64Value(int64 x) { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(base::Int64ToString(x)); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(akalin): Perhaps make JSONWriter support BinaryValue and use 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that instead of a StringValue. 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeBytesValue(const std::string& bytes) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string bytes_base64; 58a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::Base64Encode(bytes, &bytes_base64); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(bytes_base64); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeStringValue(const std::string& str) { 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(str); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the enum type. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T> 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::StringValue* MakeEnumValue(T t, const char* (*converter_fn)(T)) { 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new base::StringValue(converter_fn(t)); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// T is the field type, F is either RepeatedField or RepeatedPtrField, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and V is a subclass of Value. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T, class F, class V> 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* MakeRepeatedValue(const F& fields, V* (*converter_fn)(T)) { 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (typename F::const_iterator it = fields.begin(); it != fields.end(); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++it) { 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(converter_fn(*it)); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper macros to reduce the amount of boilerplate. 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET(field, fn) \ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_##field()) { \ 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(proto.field())); \ 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_REP(field, fn) \ 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeRepeatedValue(proto.field(), fn)) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_ENUM(field, fn) \ 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, MakeEnumValue(proto.field(), fn)) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_BOOL(field) SET(field, new base::FundamentalValue) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_BYTES(field) SET(field, MakeBytesValue) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32(field) SET(field, MakeInt64Value) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT32_REP(field) SET_REP(field, MakeInt64Value) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64(field) SET(field, MakeInt64Value) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_INT64_REP(field) SET_REP(field, MakeInt64Value) 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_STR(field) SET(field, new base::StringValue) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_STR_REP(field) \ 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, \ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeRepeatedValue<const std::string&, \ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) google::protobuf::RepeatedPtrField< \ 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string >, \ 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::StringValue>(proto.field(), \ 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MakeStringValue)) 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define SET_EXPERIMENT_ENABLED_FIELD(field) \ 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) do { \ 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (proto.has_##field() && \ 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().has_enabled()) { \ 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value->Set(#field, \ 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new base::FundamentalValue( \ 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) proto.field().enabled())); \ 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } \ 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } while (0) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SET_FIELD(field, fn) \ 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do { \ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (specifics.has_##field()) { \ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set(#field, fn(specifics.field())); \ 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } \ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } while (0) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If you add another macro, don't forget to add an #undef at the end 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of this file, too. 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EncryptedDataToValue( 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::EncryptedData& proto) { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key_name); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(akalin): Shouldn't blob be of type bytes instead of string? 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(blob); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingsToValue( 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotificationSettings& proto) { 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(initial_setup_done); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(disabled); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(oauth_client_id); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionHeaderToValue( 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionHeader& proto) { 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(window, SessionWindowToValue); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionTabToValue(const sync_pb::SessionTab& proto) { 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_id); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_visual_index); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(current_navigation_index); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(pinned); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_app_id); 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(navigation, TabNavigationToValue); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(favicon_type, GetFaviconTypeString); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_source); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionWindowToValue( 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionWindow& proto) { 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(window_id); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(selected_tab_index); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(tab); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(browser_type, GetBrowserTypeString); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TabNavigationToValue( 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TabNavigation& proto) { 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(virtual_url); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(referrer); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(state); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(page_transition, GetPageTransitionString); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(redirect_type, GetPageTransitionRedirectTypeString); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(unique_id); 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(timestamp_msec); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_forward_back); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_from_address_bar); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_home_page); 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_start); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(navigation_chain_end); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(global_id); 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms); 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 20290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_ENUM(blocked_state, GetBlockedStateString); 20390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR_REP(content_pack_categories); 204424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(http_status_code); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsDataToValue( 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecificsData& proto) { 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(scheme); 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(signon_realm); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(origin); 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(action); 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_element); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(username_value); 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(password_element); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->SetString("password_value", "<redacted>"); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(ssl_valid); 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(preferred); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(blacklisted); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* GlobalIdDirectiveToValue( 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GlobalIdDirective& proto) { 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(global_id); 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(start_time_usec); 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(end_time_usec); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* TimeRangeDirectiveToValue( 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TimeRangeDirective& proto) { 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(start_time_usec); 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(end_time_usec); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 243424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationImageToValue( 244424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationImage& proto) { 245424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 246424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(url); 2474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(alt_text); 2484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_width); 2494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT32(preferred_height); 250424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 251424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 252424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 253424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* SyncedNotificationProfileImageToValue( 254424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::SyncedNotificationProfileImage& proto) { 255424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 256424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(image_url); 2574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(oid); 2584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(display_name); 259424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 260424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 261424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 262424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)base::DictionaryValue* MediaToValue( 263424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const sync_pb::Media& proto) { 264424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 265424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET(image, SyncedNotificationImageToValue); 266424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return value; 267424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 268424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 2694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationActionToValue( 2704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationAction& proto) { 2714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 2734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 2744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 2754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(request_data); 2764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 2774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 2784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationDestiationToValue( 2814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotificationDestination& proto) { 2824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(text); 2844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(icon, SyncedNotificationImageToValue); 2854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 2864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(accessibility_label); 2874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 2884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2894e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2904e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* TargetToValue( 2914e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::Target& proto) { 2924e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 2934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(destination, SyncedNotificationDestiationToValue); 2944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(action, SyncedNotificationActionToValue); 2954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(target_key); 2964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 2974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 299ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* SimpleCollapsedLayoutToValue( 300ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SimpleCollapsedLayout& proto) { 301ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(app_icon, SyncedNotificationImageToValue); 3034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(profile_image, SyncedNotificationProfileImageToValue); 304ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(heading); 305ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(description); 306424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_STR(annotation); 307424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_REP(media, MediaToValue); 308ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 309ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 310ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 311ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CollapsedInfoToValue( 312ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CollapsedInfo& proto) { 313ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 314ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(simple_collapsed_layout, SimpleCollapsedLayoutToValue); 3154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_INT64(creation_timestamp_usec); 3164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(default_destination, SyncedNotificationDestiationToValue); 3174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(target, TargetToValue); 3184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 3194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* SyncedNotificationToValue( 3224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::SyncedNotification& proto) { 3234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(type); 3254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(external_id); 3264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil) Add SyncedNotificationCreator here if we ever need it. 327ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 328ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 329ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 330ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* RenderInfoToValue( 331ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::SyncedNotificationRenderInfo& proto) { 332ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 3334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(petewil): Add the expanded info values once we start using them. 334ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(collapsed_info, CollapsedInfoToValue); 335ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 336ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 337ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 338ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochbase::DictionaryValue* CoalescedNotificationToValue( 339ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const sync_pb::CoalescedSyncedNotification& proto) { 340ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 341ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_STR(key); 3424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(app_id); 3434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(notification, SyncedNotificationToValue); 3444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET(render_info, RenderInfoToValue); 345ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET_INT32(read_state); 346424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT64(creation_time_msec); 347424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SET_INT32(priority); 348ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return value; 349ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 351d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)base::DictionaryValue* AppListSpecificsToValue( 352d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) const sync_pb::AppListSpecifics& proto) { 353d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 354d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_STR(item_id); 355d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_ENUM(item_type, GetAppListItemTypeString); 356d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_STR(item_name); 357d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_STR(parent_id); 358d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_STR(page_ordinal); 359d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_STR(item_ordinal); 360d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 361d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) return value; 362d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)} 363d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppNotificationToValue( 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppNotification& proto) { 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_id); 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_timestamp_ms); 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(body_text); 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_url); 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(link_text); 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSettingSpecificsToValue( 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSettingSpecifics& proto) { 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension_setting, ExtensionSettingSpecificsToValue); 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AppSpecificsToValue( 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AppSpecifics& proto) { 3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(extension, ExtensionSpecificsToValue); 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(notification_settings, AppSettingsToValue); 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(app_launch_ordinal); 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(page_ordinal); 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillSpecificsToValue( 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillSpecifics& proto) { 3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(usage_timestamp); 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(profile, AutofillProfileSpecificsToValue); 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* AutofillProfileSpecificsToValue( 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::AutofillProfileSpecifics& proto) { 4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(guid); 409eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch SET_STR(origin); 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_first); 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_middle); 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(name_last); 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(email_address); 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(company_name); 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line1); 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_line2); 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_city); 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_state); 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_zip); 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(address_home_country); 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(phone_home_whole_number); 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 428a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)base::DictionaryValue* MetaInfoToValue( 429a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const sync_pb::MetaInfo& proto) { 430a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 431a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(key); 432a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_STR(value); 433a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return value; 434a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 435a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 4362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* BookmarkSpecificsToValue( 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::BookmarkSpecifics& proto) { 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(favicon); 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(creation_time_us); 4432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(icon_url); 444a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SET_REP(meta_info, &MetaInfoToValue); 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DeviceInfoSpecificsToValue( 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DeviceInfoSpecifics& proto) { 4502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_name); 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(device_type, GetDeviceTypeString); 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_user_agent); 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(chrome_version); 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DictionarySpecificsToValue( 4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DictionarySpecifics& proto) { 4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(word); 4632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 4642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 4652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 466c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 467c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 468eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconSyncFlagsToValue( 469c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::FaviconSyncFlags& proto) { 470c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 471c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(enabled); 472c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT32(favicon_sync_limit); 473c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 474c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 475c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 476a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace 477c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExperimentsSpecificsToValue( 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExperimentsSpecifics& proto) { 4802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(keystore_encryption); 4822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(history_delete_directives); 4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_EXPERIMENT_ENABLED_FIELD(autofill_culling); 484ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch SET_EXPERIMENT_ENABLED_FIELD(pre_commit_update_avoidance); 485c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (proto.has_favicon_sync()) 486c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(favicon_sync, FaviconSyncFlagsToValue); 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSettingSpecificsToValue( 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSettingSpecifics& proto) { 4922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(key); 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ExtensionSpecificsToValue( 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ExtensionSpecifics& proto) { 5012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id); 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(version); 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(update_url); 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(enabled); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(incognito_enabled); 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 512eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconDataToValue( 5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconData& proto) { 514eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BYTES(favicon); 5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(width); 5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(height); 5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 5212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconImageSpecificsToValue( 5232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconImageSpecifics& proto) { 524eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web, FaviconDataToValue); 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_web_32, FaviconDataToValue); 5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_64, FaviconDataToValue); 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(favicon_touch_precomposed_64, FaviconDataToValue); 5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 533eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::DictionaryValue* FaviconTrackingSpecificsToValue( 5342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::FaviconTrackingSpecifics& proto) { 535eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue* value = new base::DictionaryValue(); 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(favicon_url); 5372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT64(last_visit_time_ms) 5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(is_bookmarked); 5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::DictionaryValue* HistoryDeleteDirectiveSpecificsToValue( 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::HistoryDeleteDirectiveSpecifics& proto) { 5442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(global_id_directive, GlobalIdDirectiveToValue); 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(time_range_directive, TimeRangeDirectiveToValue); 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 550c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* ManagedUserSettingSpecificsToValue( 551c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::ManagedUserSettingSpecifics& proto) { 552c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 553c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(name); 554c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR(value); 555c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 556c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 557c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 55890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)base::DictionaryValue* ManagedUserSpecificsToValue( 55990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const sync_pb::ManagedUserSpecifics& proto) { 56090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 56190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(id); 56290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_STR(name); 56390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_BOOL(acknowledged); 5643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(master_key); 56558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chrome_avatar); 56658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SET_STR(chromeos_avatar); 56790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return value; 56890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 56990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 5702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* NigoriSpecificsToValue( 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::NigoriSpecifics& proto) { 5722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encryption_keybag, EncryptedDataToValue); 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(keybag_is_frozen); 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_bookmarks); 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_preferences); 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill_profile); 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_autofill); 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_themes); 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_typed_urls); 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extension_settings); 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_extensions); 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_sessions); 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_app_settings); 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_apps); 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_search_engines); 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(encrypt_dictionary); 5884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_BOOL(encrypt_articles); 589d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_BOOL(encrypt_app_list); 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(encrypt_everything); 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_tab_favicons); 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(passphrase_type, PassphraseTypeString); 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(keystore_decryptor_token, EncryptedDataToValue); 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(keystore_migration_time); 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(custom_passphrase_time); 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticlePageToValue( 6004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticlePage& proto) { 6014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(url); 6034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::DictionaryValue* ArticleSpecificsToValue( 6074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const sync_pb::ArticleSpecifics& proto) { 6084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(entry_id); 6104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_STR(title); 6114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_REP(pages, ArticlePageToValue); 6124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return value; 6134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 6144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 6152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PasswordSpecificsToValue( 6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PasswordSpecifics& proto) { 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(encrypted, EncryptedDataToValue); 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* PreferenceSpecificsToValue( 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::PreferenceSpecifics& proto) { 6242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(value); 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 630c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* PriorityPreferenceSpecificsToValue( 631c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::PriorityPreferenceSpecifics& specifics) { 632c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 633c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 634c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 635c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 636c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncedNotificationSpecificsToValue( 6382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncedNotificationSpecifics& proto) { 639ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // There is a lot of data, for now just use heading, description, key, and 640ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // the read state. 641ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // TODO(petewil): Eventually add more data here. 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 643ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch SET(coalesced_notification, CoalescedNotificationToValue); 6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SearchEngineSpecificsToValue( 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SearchEngineSpecifics& proto) { 6492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(short_name); 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(keyword); 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(favicon_url); 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(safe_for_autoreplace); 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originating_url); 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(date_created); 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(input_encodings); 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(show_in_default_list); 6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(suggestions_url); 6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(prepopulate_id); 6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(autogenerate_keyword); 6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(instant_url); 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(last_modified); 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(sync_guid); 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR_REP(alternate_urls); 6662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_STR(search_terms_replacement_key); 667a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url); 668a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(search_url_post_params); 669a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(suggestions_url_post_params); 670a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(instant_url_post_params); 671a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) SET_STR(image_url_post_params); 6723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) SET_STR(new_tab_url); 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SessionSpecificsToValue( 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::SessionSpecifics& proto) { 6782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(session_tag); 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(header, SessionHeaderToValue); 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(tab, SessionTabToValue); 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(tab_node_id); 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ThemeSpecificsToValue( 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ThemeSpecifics& proto) { 6882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_custom_theme); 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(use_system_theme_by_default); 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_name); 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_id); 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(custom_theme_update_url); 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* TypedUrlSpecificsToValue( 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::TypedUrlSpecifics& proto) { 6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(title); 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hidden); 7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64_REP(visits); 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(visit_transitions); 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntitySpecificsToValue( 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::EntitySpecifics& specifics) { 7102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app, AppSpecificsToValue); 712d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) SET_FIELD(app_list, AppListSpecificsToValue); 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_notification, AppNotificationToValue); 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(app_setting, AppSettingSpecificsToValue); 7154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) SET_FIELD(article, ArticleSpecificsToValue); 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill, AutofillSpecificsToValue); 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(autofill_profile, AutofillProfileSpecificsToValue); 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(bookmark, BookmarkSpecificsToValue); 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(device_info, DeviceInfoSpecificsToValue); 7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(dictionary, DictionarySpecificsToValue); 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(experiments, ExperimentsSpecificsToValue); 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension, ExtensionSpecificsToValue); 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(extension_setting, ExtensionSettingSpecificsToValue); 7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_image, FaviconImageSpecificsToValue); 7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(favicon_tracking, FaviconTrackingSpecificsToValue); 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(history_delete_directive, HistoryDeleteDirectiveSpecificsToValue); 727c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_FIELD(managed_user_setting, ManagedUserSettingSpecificsToValue); 72890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SET_FIELD(managed_user, ManagedUserSpecificsToValue); 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(nigori, NigoriSpecificsToValue); 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(password, PasswordSpecificsToValue); 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(preference, PreferenceSpecificsToValue); 7322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(priority_preference, PriorityPreferenceSpecificsToValue); 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(search_engine, SearchEngineSpecificsToValue); 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(session, SessionSpecificsToValue); 7352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_FIELD(synced_notification, SyncedNotificationSpecificsToValue); 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(theme, ThemeSpecificsToValue); 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_FIELD(typed_url, TypedUrlSpecificsToValue); 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 743eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbase::StringValue* UniquePositionToStringValue( 744c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::UniquePosition& proto) { 745c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) UniquePosition pos = UniquePosition::FromProto(proto); 746eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return new base::StringValue(pos.ToDebugString()); 747c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 748c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncEntityToValue(const sync_pb::SyncEntity& proto, 7502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool include_specifics) { 7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(old_parent_id); 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(ctime); 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(non_unique_name); 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(sync_timestamp); 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(server_defined_unique_tag); 7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 763c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(unique_position, UniquePositionToStringValue); 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(insert_after_item_id); 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(deleted); 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_cache_guid); 7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(originator_client_item_id); 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (include_specifics) 7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(specifics, EntitySpecificsToValue); 7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(folder); 7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(client_defined_unique_tag); 7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::ListValue* SyncEntitiesToValue( 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>& entities, 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ListValue* list = new base::ListValue(); 7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ::google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>::const_iterator it; 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (it = entities.begin(); it != entities.end(); ++it) { 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list->Append(SyncEntityToValue(*it, include_specifics)); 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list; 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ChromiumExtensionActivityToValue( 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ChromiumExtensionsActivity& proto) { 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(extension_id); 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(bookmark_writes_since_last_commit); 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitMessageToValue( 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitMessage& proto, 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 7982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(cache_guid); 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(extensions_activity, ChromiumExtensionActivityToValue); 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(config_params, ClientConfigParamsToValue); 8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 807c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)base::DictionaryValue* GetUpdateTriggersToValue( 808c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const sync_pb::GetUpdateTriggers& proto) { 809c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 810c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_STR_REP(notification_hint); 811c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(client_dropped_hints); 812c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_BOOL(invalidations_out_of_sync); 813c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(local_modification_nudges); 814c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_INT64(datatype_refresh_nudges); 815c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return value; 816c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 817c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DataTypeProgressMarkerToValue( 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DataTypeProgressMarker& proto) { 8202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(data_type_id); 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BYTES(token); 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(timestamp_token_for_migration); 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(notification_hint); 825c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET(get_update_triggers, GetUpdateTriggersToValue); 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesCallerInfoToValue( 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesCallerInfo& proto) { 8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(source, GetUpdatesSourceString); 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(notifications_enabled); 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesMessageToValue( 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesMessage& proto) { 8392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(fetch_folders); 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(batch_size); 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(from_progress_marker, DataTypeProgressMarkerToValue); 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(streaming); 8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(need_encryption_key); 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(create_mobile_bookmarks_folder); 847c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SET_ENUM(get_updates_origin, GetUpdatesOriginString); 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientStatusToValue(const sync_pb::ClientStatus& proto) { 8522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(hierarchy_conflict_detected); 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* EntryResponseToValue( 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::CommitResponse::EntryResponse& proto) { 8592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(response_type, GetResponseTypeString); 8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(id_string); 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(parent_id_string); 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(position_in_parent); 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(version); 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(name); 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(mtime); 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* CommitResponseToValue( 8722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::CommitResponse& proto) { 8732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(entryresponse, EntryResponseToValue); 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* GetUpdatesResponseToValue( 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::GetUpdatesResponse& proto, 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 8812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("entries", 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEntitiesToValue(proto.entries(), include_specifics)); 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT64(changes_remaining); 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_REP(new_progress_marker, DataTypeProgressMarkerToValue); 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientCommandToValue( 8902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientCommand& proto) { 8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_poll_interval); 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(set_sync_long_poll_interval); 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(max_commit_batch_size); 8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(sessions_commit_delay_seconds); 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(throttle_delay_seconds); 897b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) SET_INT32(client_invalidation_hint_buffer_size); 8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ErrorToValue( 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse::Error& proto) { 9032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_type, GetErrorTypeString); 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_description); 9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(url); 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(action, GetActionString); 9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerResponseToValue( 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerResponse& proto, 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 9162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(commit, CommitResponseToValue); 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_get_updates()) { 9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("get_updates", GetUpdatesResponseToValue(proto.get_updates(), 9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) include_specifics)); 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(error, ErrorToValue); 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_ENUM(error_code, GetErrorTypeString); 9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(error_message); 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_command, ClientCommandToValue); 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32_REP(migrated_data_type_id); 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientToServerMessageToValue( 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::ClientToServerMessage& proto, 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool include_specifics) { 9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(share); 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_INT32(protocol_version); 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (proto.has_commit()) { 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value->Set("commit", 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommitMessageToValue(proto.commit(), include_specifics)); 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(get_updates, GetUpdatesMessageToValue); 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_STR(store_birthday); 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET_BOOL(sync_problem_detected); 9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(debug_info, DebugInfoToValue); 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SET(client_status, ClientStatusToValue); 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value; 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DatatypeAssociationStatsToValue( 9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DatatypeAssociationStats& proto) { 9532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(data_type_id); 9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_before_association); 9562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_before_association); 9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_after_association); 9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_after_association); 9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_added); 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_deleted); 9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_local_items_modified); 9622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_added); 9632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_deleted); 9642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_sync_items_modified); 9657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(local_version_pre_association); 9667d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SET_INT64(sync_version_pre_association) 9672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(had_error); 968868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_wait_time_us); 969868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(download_time_us); 970868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_high_priority_us); 971868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SET_INT64(association_wait_time_for_same_priority_us); 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 9732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugEventInfoToValue( 9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::DebugEventInfo& proto) { 9772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_ENUM(singleton_event, SingletonEventTypeString); 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(sync_cycle_completed_event_info, SyncCycleCompletedEventInfoToValue); 9802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(nudging_datatype); 9812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(datatypes_notified_from_server); 9822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(datatype_association_stats, DatatypeAssociationStatsToValue); 9832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 9842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* DebugInfoToValue(const sync_pb::DebugInfo& proto) { 9872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_REP(events, DebugEventInfoToValue); 9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_ready); 9902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(cryptographer_has_pending_keys); 9912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(events_dropped); 9922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 9932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* SyncCycleCompletedEventInfoToValue( 9962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::SyncCycleCompletedEventInfo& proto) { 9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 9982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_encryption_conflicts); 9992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_hierarchy_conflicts); 10002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_server_conflicts); 10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_updates_downloaded); 10022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32(num_reflected_updates_downloaded); 10032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET(caller_info, GetUpdatesCallerInfoToValue); 10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::DictionaryValue* ClientConfigParamsToValue( 10082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const sync_pb::ClientConfigParams& proto) { 10092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* value = new base::DictionaryValue(); 10102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_INT32_REP(enabled_type_ids); 10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SET_BOOL(tabs_datatype_enabled); 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return value; 10132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_REP 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BOOL 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_BYTES 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT32 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_INT64_REP 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_STR_REP 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef SET_FIELD 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncer 1029