| Index: components/sync/protocol/proto_visitors.h | 
| diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h | 
| index b2b57e20f3af469e5996bc2bdd050bec893e6f37..146cdbad8bd4b64242c6835f680d6e10bcdc1b95 100644 | 
| --- a/components/sync/protocol/proto_visitors.h | 
| +++ b/components/sync/protocol/proto_visitors.h | 
| @@ -143,6 +143,7 @@ void VisitProtoFields(V& visitor, const sync_pb::PasswordSpecificsData& proto) { | 
| VISIT(username_element); | 
| VISIT(username_value); | 
| VISIT(password_element); | 
| +  VISIT(password_value); | 
| VISIT(preferred); | 
| VISIT(date_created); | 
| VISIT(blacklisted); | 
| @@ -358,6 +359,17 @@ void VisitProtoFields(V& visitor, const sync_pb::GcmInvalidationsFlags& proto) { | 
| } | 
|  | 
| template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::EnhancedBookmarksFlags& proto) { | 
| +  VISIT(enabled); | 
| +  VISIT(extension_id); | 
| +} | 
| + | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::WalletSyncFlags& proto) { | 
| +  VISIT(enabled); | 
| +} | 
| + | 
| +template <class V> | 
| void VisitProtoFields(V& visitor, const sync_pb::ExperimentsSpecifics& proto) { | 
| VISIT(keystore_encryption); | 
| VISIT(history_delete_directives); | 
| @@ -366,6 +378,8 @@ void VisitProtoFields(V& visitor, const sync_pb::ExperimentsSpecifics& proto) { | 
| VISIT(favicon_sync); | 
| VISIT(gcm_channel); | 
| VISIT(gcm_invalidations); | 
| +  VISIT(obsolete_enhanced_bookmarks); // excluded from ToValue | 
| +  VISIT(obsolete_wallet_sync); // excluded from ToValue | 
| } | 
|  | 
| template <class V> | 
| @@ -432,6 +446,8 @@ void VisitProtoFields(V& visitor, const sync_pb::ManagedUserSpecifics& proto) { | 
| VISIT(master_key); | 
| VISIT(chrome_avatar); | 
| VISIT(chromeos_avatar); | 
| +  VISIT(password_signature_key); // TODO(dskiba): exclude from ToValue? | 
| +  VISIT(password_encryption_key); // TODO(dskiba): exclude from ToValue? | 
| } | 
|  | 
| template <class V> | 
| @@ -488,12 +504,19 @@ void VisitProtoFields(V& visitor, const sync_pb::ArticleSpecifics& proto) { | 
| VISIT(entry_id); | 
| VISIT(title); | 
| VISIT_REP(pages); | 
| +  VISIT(attachments); // TODO(dskiba): exclude from ToValue? | 
| +} | 
| + | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::ArticleAttachments& proto) { | 
| +  VISIT(distilled_article); | 
| } | 
|  | 
| template <class V> | 
| void VisitProtoFields(V& visitor, const sync_pb::PasswordSpecifics& proto) { | 
| VISIT(encrypted); | 
| VISIT(unencrypted_metadata); | 
| +  VISIT(client_only_encrypted_data); // TODO(dskiba): exclude from ToValue? | 
| } | 
|  | 
| template <class V> | 
| @@ -618,6 +641,7 @@ void VisitProtoFields(V& visitor, const sync_pb::WifiCredentialSpecifics& proto) | 
|  | 
| template <class V> | 
| void VisitProtoFields(V& visitor, const sync_pb::EntitySpecifics& proto) { | 
| +  VISIT(encrypted); // TODO(dskiba): exclude from ToValue? | 
| VISIT(app); | 
| VISIT(app_list); | 
| VISIT(app_notification); | 
| @@ -657,6 +681,13 @@ void VisitProtoFields(V& visitor, const sync_pb::EntitySpecifics& proto) { | 
| } | 
|  | 
| template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::SyncEntity::BookmarkData& proto) { | 
| +  VISIT(bookmark_folder); | 
| +  VISIT(bookmark_url); | 
| +  VISIT(bookmark_favicon); | 
| +} | 
| + | 
| +template <class V> | 
| void VisitProtoFields(V& visitor, const sync_pb::SyncEntity& proto) { | 
| VISIT(id_string); | 
| VISIT(parent_id_string); | 
| @@ -678,6 +709,8 @@ void VisitProtoFields(V& visitor, const sync_pb::SyncEntity& proto) { | 
| VISIT(folder); | 
| VISIT(client_defined_unique_tag); | 
| VISIT_REP(attachment_id); | 
| +  VISIT_BYTES(ordinal_in_parent); // TODO(dskiba): exclude from ToValue? | 
| +  VISIT(bookmarkdata); // TODO(dskiba): exclude from ToValue? | 
| } | 
|  | 
| template <class V> | 
| @@ -830,6 +863,8 @@ void VisitProtoFields(V& visitor, const sync_pb::DatatypeAssociationStats& proto | 
| VISIT(download_time_us); | 
| VISIT(association_wait_time_for_high_priority_us); | 
| VISIT(association_wait_time_for_same_priority_us); | 
| +  VISIT_REP(high_priority_type_configured_before); // TODO(dskiba): exclude from ToValue? | 
| +  VISIT_REP(same_priority_type_configured_before); // TODO(dskiba): exclude from ToValue? | 
| } | 
|  | 
| template <class V> | 
| @@ -857,6 +892,7 @@ void VisitProtoFields(V& visitor, const sync_pb::SyncCycleCompletedEventInfo& pr | 
| VISIT(num_updates_downloaded); | 
| VISIT(num_reflected_updates_downloaded); | 
| VISIT(caller_info); | 
| +  VISIT_REP(source_info); // TODO(dskiba): exclude from ToValue? | 
| } | 
|  | 
| template <class V> | 
| @@ -872,6 +908,17 @@ void VisitProtoFields(V& visitor, const sync_pb::AttachmentIdProto& proto) { | 
| } | 
|  | 
| template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::AttachmentMetadataRecord& proto) { | 
| +  VISIT(id); | 
| +  VISIT(is_on_server); | 
| +} | 
| + | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::AttachmentMetadata& proto) { | 
| +  VISIT_REP(record); | 
| +} | 
| + | 
| +template <class V> | 
| void VisitProtoFields(V& visitor, const sync_pb::EntityMetadata& proto) { | 
| VISIT(client_tag_hash); | 
| VISIT(server_id); | 
| @@ -885,6 +932,26 @@ void VisitProtoFields(V& visitor, const sync_pb::EntityMetadata& proto) { | 
| VISIT(base_specifics_hash); | 
| } | 
|  | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::UniquePosition& proto) { | 
| +  VISIT_BYTES(value); | 
| +  VISIT_BYTES(compressed_value); | 
| +  VISIT(uncompressed_length); | 
| +  VISIT_BYTES(custom_compressed_v1); | 
| +} | 
| + | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::TypeHint& proto) { | 
| +  VISIT(data_type_id); | 
| +  VISIT(has_valid_hint); | 
| +} | 
| + | 
| +template <class V> | 
| +void VisitProtoFields(V& visitor, const sync_pb::SourceInfo& proto) { | 
| +  VISIT_ENUM(source); | 
| +  VISIT_REP(type_hint); | 
| +} | 
| + | 
| }  // namespace syncer | 
|  | 
| #endif  // COMPONENTS_SYNC_PROTOCOL_PROTO_VALUE_VISITOR_CONVERSIONS_H_ | 
|  |