| Index: chrome/browser/sync/protocol/proto_value_conversions.cc
|
| diff --git a/chrome/browser/sync/protocol/proto_value_conversions.cc b/chrome/browser/sync/protocol/proto_value_conversions.cc
|
| deleted file mode 100644
|
| index ce8e749ce5d2d143dbf4a7f02e9d4cabb0ca37c2..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/protocol/proto_value_conversions.cc
|
| +++ /dev/null
|
| @@ -1,413 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Keep this file in sync with the .proto files in this directory.
|
| -
|
| -#include "chrome/browser/sync/protocol/proto_value_conversions.h"
|
| -
|
| -#include "base/base64.h"
|
| -#include "base/basictypes.h"
|
| -#include "base/logging.h"
|
| -#include "base/string_number_conversions.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/sync/protocol/proto_enum_conversions.h"
|
| -#include "sync/protocol/app_notification_specifics.pb.h"
|
| -#include "sync/protocol/app_setting_specifics.pb.h"
|
| -#include "sync/protocol/app_specifics.pb.h"
|
| -#include "sync/protocol/autofill_specifics.pb.h"
|
| -#include "sync/protocol/bookmark_specifics.pb.h"
|
| -#include "sync/protocol/encryption.pb.h"
|
| -#include "sync/protocol/extension_setting_specifics.pb.h"
|
| -#include "sync/protocol/extension_specifics.pb.h"
|
| -#include "sync/protocol/nigori_specifics.pb.h"
|
| -#include "sync/protocol/password_specifics.pb.h"
|
| -#include "sync/protocol/preference_specifics.pb.h"
|
| -#include "sync/protocol/search_engine_specifics.pb.h"
|
| -#include "sync/protocol/session_specifics.pb.h"
|
| -#include "sync/protocol/sync.pb.h"
|
| -#include "sync/protocol/theme_specifics.pb.h"
|
| -#include "sync/protocol/typed_url_specifics.pb.h"
|
| -
|
| -namespace browser_sync {
|
| -
|
| -namespace {
|
| -
|
| -// Basic Type -> Value functions.
|
| -
|
| -StringValue* MakeInt64Value(int64 x) {
|
| - return Value::CreateStringValue(base::Int64ToString(x));
|
| -}
|
| -
|
| -// TODO(akalin): Perhaps make JSONWriter support BinaryValue and use
|
| -// that instead of a StringValue.
|
| -StringValue* MakeBytesValue(const std::string& bytes) {
|
| - std::string bytes_base64;
|
| - if (!base::Base64Encode(bytes, &bytes_base64)) {
|
| - NOTREACHED();
|
| - }
|
| - return Value::CreateStringValue(bytes_base64);
|
| -}
|
| -
|
| -// T is the enum type.
|
| -template <class T>
|
| -StringValue* MakeEnumValue(T t, const char* (*converter_fn)(T)) {
|
| - return Value::CreateStringValue(converter_fn(t));
|
| -}
|
| -
|
| -// T is the field type, F is either RepeatedField or RepeatedPtrField,
|
| -// and V is a subclass of Value.
|
| -template <class T, class F, class V>
|
| -ListValue* MakeRepeatedValue(const F& fields, V* (*converter_fn)(T)) {
|
| - ListValue* list = new ListValue();
|
| - for (typename F::const_iterator it = fields.begin(); it != fields.end();
|
| - ++it) {
|
| - list->Append(converter_fn(*it));
|
| - }
|
| - return list;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// Helper macros to reduce the amount of boilerplate.
|
| -
|
| -#define SET(field, fn) value->Set(#field, fn(proto.field()))
|
| -#define SET_REP(field, fn) \
|
| - value->Set(#field, MakeRepeatedValue(proto.field(), fn))
|
| -#define SET_ENUM(field, fn) \
|
| - value->Set(#field, MakeEnumValue(proto.field(), fn))
|
| -
|
| -#define SET_BOOL(field) SET(field, Value::CreateBooleanValue)
|
| -#define SET_BYTES(field) SET(field, MakeBytesValue)
|
| -#define SET_INT32(field) SET(field, MakeInt64Value)
|
| -#define SET_INT32_REP(field) SET_REP(field, MakeInt64Value)
|
| -#define SET_INT64(field) SET(field, MakeInt64Value)
|
| -#define SET_INT64_REP(field) SET_REP(field, MakeInt64Value)
|
| -#define SET_STR(field) SET(field, Value::CreateStringValue)
|
| -#define SET_STR_REP(field) \
|
| - value->Set(#field, \
|
| - MakeRepeatedValue<const std::string&, \
|
| - google::protobuf::RepeatedPtrField< \
|
| - std::string >, \
|
| - StringValue>(proto.field(), \
|
| - Value::CreateStringValue))
|
| -
|
| -#define SET_FIELD(field, fn) \
|
| - do { \
|
| - if (specifics.has_##field()) { \
|
| - value->Set(#field, fn(specifics.field())); \
|
| - } \
|
| - } while (0)
|
| -
|
| -// If you add another macro, don't forget to add an #undef at the end
|
| -// of this file, too.
|
| -
|
| -DictionaryValue* EncryptedDataToValue(const sync_pb::EncryptedData& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(key_name);
|
| - // TODO(akalin): Shouldn't blob be of type bytes instead of string?
|
| - SET_BYTES(blob);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AppSettingsToValue(
|
| - const sync_pb::AppNotificationSettings& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_BOOL(initial_setup_done);
|
| - SET_BOOL(disabled);
|
| - SET_STR(oauth_client_id);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* SessionHeaderToValue(
|
| - const sync_pb::SessionHeader& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_REP(window, SessionWindowToValue);
|
| - SET_STR(client_name);
|
| - SET_ENUM(device_type, GetDeviceTypeString);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* SessionTabToValue(
|
| - const sync_pb::SessionTab& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_INT32(tab_id);
|
| - SET_INT32(window_id);
|
| - SET_INT32(tab_visual_index);
|
| - SET_INT32(current_navigation_index);
|
| - SET_BOOL(pinned);
|
| - SET_STR(extension_app_id);
|
| - SET_REP(navigation, TabNavigationToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* SessionWindowToValue(
|
| - const sync_pb::SessionWindow& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_INT32(window_id);
|
| - SET_INT32(selected_tab_index);
|
| - SET_INT32_REP(tab);
|
| - SET_ENUM(browser_type, GetBrowserTypeString);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* TabNavigationToValue(
|
| - const sync_pb::TabNavigation& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_INT32(index);
|
| - SET_STR(virtual_url);
|
| - SET_STR(referrer);
|
| - SET_STR(title);
|
| - SET_STR(state);
|
| - SET_ENUM(page_transition, GetPageTransitionString);
|
| - SET_ENUM(navigation_qualifier, GetPageTransitionQualifierString);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* PasswordSpecificsDataToValue(
|
| - const sync_pb::PasswordSpecificsData& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_INT32(scheme);
|
| - SET_STR(signon_realm);
|
| - SET_STR(origin);
|
| - SET_STR(action);
|
| - SET_STR(username_element);
|
| - SET_STR(username_value);
|
| - SET_STR(password_element);
|
| - value->SetString("password_value", "<redacted>");
|
| - SET_BOOL(ssl_valid);
|
| - SET_BOOL(preferred);
|
| - SET_INT64(date_created);
|
| - SET_BOOL(blacklisted);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* DeviceInformationToValue(
|
| - const sync_pb::DeviceInformation& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(cache_guid);
|
| - SET_STR(name);
|
| - SET_STR(platform);
|
| - SET_STR(chrome_version);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AppNotificationToValue(
|
| - const sync_pb::AppNotification& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(guid);
|
| - SET_STR(app_id);
|
| - SET_INT64(creation_timestamp_ms);
|
| - SET_STR(title);
|
| - SET_STR(body_text);
|
| - SET_STR(link_url);
|
| - SET_STR(link_text);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AppSettingSpecificsToValue(
|
| - const sync_pb::AppSettingSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET(extension_setting, ExtensionSettingSpecificsToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AppSpecificsToValue(
|
| - const sync_pb::AppSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET(extension, ExtensionSpecificsToValue);
|
| - SET(notification_settings, AppSettingsToValue);
|
| - SET_STR(app_launch_ordinal);
|
| - SET_STR(page_ordinal);
|
| -
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AutofillSpecificsToValue(
|
| - const sync_pb::AutofillSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(name);
|
| - SET_STR(value);
|
| - SET_INT64_REP(usage_timestamp);
|
| - SET(profile, AutofillProfileSpecificsToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* AutofillProfileSpecificsToValue(
|
| - const sync_pb::AutofillProfileSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(label);
|
| - SET_STR(guid);
|
| -
|
| - SET_STR_REP(name_first);
|
| - SET_STR_REP(name_middle);
|
| - SET_STR_REP(name_last);
|
| - SET_STR_REP(email_address);
|
| - SET_STR(company_name);
|
| -
|
| - SET_STR(address_home_line1);
|
| - SET_STR(address_home_line2);
|
| - SET_STR(address_home_city);
|
| - SET_STR(address_home_state);
|
| - SET_STR(address_home_zip);
|
| - SET_STR(address_home_country);
|
| -
|
| - SET_STR_REP(phone_home_whole_number);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* BookmarkSpecificsToValue(
|
| - const sync_pb::BookmarkSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(url);
|
| - SET_BYTES(favicon);
|
| - SET_STR(title);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* ExtensionSettingSpecificsToValue(
|
| - const sync_pb::ExtensionSettingSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(extension_id);
|
| - SET_STR(key);
|
| - SET_STR(value);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* ExtensionSpecificsToValue(
|
| - const sync_pb::ExtensionSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(id);
|
| - SET_STR(version);
|
| - SET_STR(update_url);
|
| - SET_BOOL(enabled);
|
| - SET_BOOL(incognito_enabled);
|
| - SET_STR(name);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* NigoriSpecificsToValue(
|
| - const sync_pb::NigoriSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET(encrypted, EncryptedDataToValue);
|
| - SET_BOOL(using_explicit_passphrase);
|
| - SET_BOOL(encrypt_bookmarks);
|
| - SET_BOOL(encrypt_preferences);
|
| - SET_BOOL(encrypt_autofill_profile);
|
| - SET_BOOL(encrypt_autofill);
|
| - SET_BOOL(encrypt_themes);
|
| - SET_BOOL(encrypt_typed_urls);
|
| - SET_BOOL(encrypt_extension_settings);
|
| - SET_BOOL(encrypt_extensions);
|
| - SET_BOOL(encrypt_sessions);
|
| - SET_BOOL(encrypt_app_settings);
|
| - SET_BOOL(encrypt_apps);
|
| - SET_BOOL(encrypt_search_engines);
|
| - SET_BOOL(sync_tabs);
|
| - SET_BOOL(encrypt_everything);
|
| - SET_REP(device_information, DeviceInformationToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* PasswordSpecificsToValue(
|
| - const sync_pb::PasswordSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET(encrypted, EncryptedDataToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* PreferenceSpecificsToValue(
|
| - const sync_pb::PreferenceSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(name);
|
| - SET_STR(value);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* SearchEngineSpecificsToValue(
|
| - const sync_pb::SearchEngineSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(short_name);
|
| - SET_STR(keyword);
|
| - SET_STR(favicon_url);
|
| - SET_STR(url);
|
| - SET_BOOL(safe_for_autoreplace);
|
| - SET_STR(originating_url);
|
| - SET_INT64(date_created);
|
| - SET_STR(input_encodings);
|
| - SET_BOOL(show_in_default_list);
|
| - SET_STR(suggestions_url);
|
| - SET_INT32(prepopulate_id);
|
| - SET_BOOL(autogenerate_keyword);
|
| - SET_STR(instant_url);
|
| - SET_INT64(last_modified);
|
| - SET_STR(sync_guid);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* SessionSpecificsToValue(
|
| - const sync_pb::SessionSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(session_tag);
|
| - SET(header, SessionHeaderToValue);
|
| - SET(tab, SessionTabToValue);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* ThemeSpecificsToValue(
|
| - const sync_pb::ThemeSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_BOOL(use_custom_theme);
|
| - SET_BOOL(use_system_theme_by_default);
|
| - SET_STR(custom_theme_name);
|
| - SET_STR(custom_theme_id);
|
| - SET_STR(custom_theme_update_url);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* TypedUrlSpecificsToValue(
|
| - const sync_pb::TypedUrlSpecifics& proto) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_STR(url);
|
| - SET_STR(title);
|
| - SET_BOOL(hidden);
|
| - SET_INT64_REP(visits);
|
| - SET_INT32_REP(visit_transitions);
|
| - return value;
|
| -}
|
| -
|
| -DictionaryValue* EntitySpecificsToValue(
|
| - const sync_pb::EntitySpecifics& specifics) {
|
| - DictionaryValue* value = new DictionaryValue();
|
| - SET_FIELD(app, AppSpecificsToValue);
|
| - SET_FIELD(app_notification, AppNotificationToValue);
|
| - SET_FIELD(app_setting, AppSettingSpecificsToValue);
|
| - SET_FIELD(autofill, AutofillSpecificsToValue);
|
| - SET_FIELD(autofill_profile, AutofillProfileSpecificsToValue);
|
| - SET_FIELD(bookmark, BookmarkSpecificsToValue);
|
| - SET_FIELD(extension, ExtensionSpecificsToValue);
|
| - SET_FIELD(extension_setting, ExtensionSettingSpecificsToValue);
|
| - SET_FIELD(nigori, NigoriSpecificsToValue);
|
| - SET_FIELD(password, PasswordSpecificsToValue);
|
| - SET_FIELD(preference, PreferenceSpecificsToValue);
|
| - SET_FIELD(search_engine, SearchEngineSpecificsToValue);
|
| - SET_FIELD(session, SessionSpecificsToValue);
|
| - SET_FIELD(theme, ThemeSpecificsToValue);
|
| - SET_FIELD(typed_url, TypedUrlSpecificsToValue);
|
| - return value;
|
| -}
|
| -
|
| -#undef SET
|
| -#undef SET_REP
|
| -
|
| -#undef SET_BOOL
|
| -#undef SET_BYTES
|
| -#undef SET_INT32
|
| -#undef SET_INT64
|
| -#undef SET_INT64_REP
|
| -#undef SET_STR
|
| -#undef SET_STR_REP
|
| -
|
| -#undef SET_FIELD
|
| -
|
| -} // namespace browser_sync
|
|
|