summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/chrome.gyp4
-rw-r--r--chrome/chrome_browser.gypi12
-rw-r--r--chrome/chrome_browser_chromeos.gypi8
-rw-r--r--chrome/chrome_browser_extensions.gypi4
-rw-r--r--chrome/chrome_browser_ui.gypi8
-rw-r--r--chrome/chrome_tests.gypi27
-rw-r--r--chrome/chrome_tests_unit.gypi8
-rw-r--r--chrome_frame/chrome_frame.gyp6
-rw-r--r--jingle/jingle.gyp1
-rw-r--r--sync/base/sync_export.h3
-rw-r--r--sync/internal_api/public/base/unique_position.h3
-rw-r--r--sync/internal_api/public/delete_journal.h3
-rw-r--r--sync/protocol/sync_proto.gyp49
-rw-r--r--sync/sync.gyp1087
-rw-r--r--sync/sync_api.gypi33
-rw-r--r--sync/sync_core.gypi190
-rw-r--r--sync/sync_internal_api.gypi111
-rw-r--r--sync/sync_notifier.gypi64
-rw-r--r--sync/sync_proto.gypi51
-rw-r--r--sync/sync_tests.gypi617
-rw-r--r--sync/syncable/syncable_base_transaction.cc8
-rw-r--r--sync/syncable/syncable_base_transaction.h6
-rw-r--r--sync/syncable/syncable_delete_journal.h3
-rw-r--r--sync/syncable/syncable_read_transaction.h2
-rw-r--r--sync/syncable/syncable_write_transaction.h2
25 files changed, 1197 insertions, 1113 deletions
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index eb94a43..352f264 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -14,7 +14,7 @@
'common',
'browser',
'../content/content.gyp:content_app',
- '../sync/sync.gyp:sync_core',
+ '../sync/sync.gyp:sync',
],
'allocator_target': '../base/allocator/allocator.gyp:allocator',
'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome',
@@ -385,7 +385,7 @@
'dependencies': [
'test_support_common',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_core',
+ '../sync/sync.gyp:sync',
],
'include_dirs': [
'..',
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index b6585a0..adb5d6a 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -35,12 +35,8 @@
'../google_apis/google_apis.gyp:google_apis',
'../media/media.gyp:media',
'../skia/skia.gyp:skia',
- '../sync/protocol/sync_proto.gyp:sync_proto',
- # TODO(akalin): Depend only on sync_api from sync.
- '../sync/sync.gyp:sync_api',
- '../sync/sync.gyp:sync_internal_api',
- '../sync/sync.gyp:sync_notifier',
- '../ui/ui.gyp:shell_dialogs',
+ '../sql/sql.gyp:sql',
+ '../sync/sync.gyp:sync',
'../third_party/bzip2/bzip2.gyp:bzip2',
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
@@ -51,6 +47,7 @@
'../third_party/zlib/zlib.gyp:minizip',
'../third_party/zlib/zlib.gyp:zlib',
'../ui/base/strings/ui_strings.gyp:ui_strings',
+ '../ui/ui.gyp:shell_dialogs',
'../ui/ui.gyp:ui',
'../ui/ui.gyp:ui_resources',
'../webkit/support/webkit_support.gyp:user_agent',
@@ -62,7 +59,8 @@
'<(SHARED_INTERMEDIATE_DIR)',
],
'export_dependent_settings': [
- '../sync/sync.gyp:sync_notifier',
+ '../sql/sql.gyp:sql',
+ '../sync/sync.gyp:sync',
],
'sources': [
# All .cc, .h, .m, and .mm files under browser except for:
diff --git a/chrome/chrome_browser_chromeos.gypi b/chrome/chrome_browser_chromeos.gypi
index ab7c9fe..d352867 100644
--- a/chrome/chrome_browser_chromeos.gypi
+++ b/chrome/chrome_browser_chromeos.gypi
@@ -57,11 +57,7 @@
'../ppapi/ppapi_internal.gyp:ppapi_ipc', # For PpapiMsg_LoadPlugin
'../printing/printing.gyp:printing',
'../skia/skia.gyp:skia',
- '../sync/protocol/sync_proto.gyp:sync_proto',
- # TODO(akalin): Depend only on sync_api from sync.
- '../sync/sync.gyp:sync_api',
- '../sync/sync.gyp:sync_internal_api',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../third_party/adobe/flash/flash_player.gyp:flapper_version_h',
'../third_party/bzip2/bzip2.gyp:bzip2',
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
@@ -104,7 +100,7 @@
],
},
'export_dependent_settings': [
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
],
'sources': [
# All .cc, .h, .m, and .mm files unde browser/chromeos, except for tests
diff --git a/chrome/chrome_browser_extensions.gypi b/chrome/chrome_browser_extensions.gypi
index c5e8557..e0497de 100644
--- a/chrome/chrome_browser_extensions.gypi
+++ b/chrome/chrome_browser_extensions.gypi
@@ -14,7 +14,6 @@
# have the same dependencies. Once browser_extensions is untangled from
# browser, then we can clean up these dependencies.
'dependencies': [
- '../sync/protocol/sync_proto.gyp:sync_proto',
'chrome_resources.gyp:chrome_extra_resources',
'chrome_resources.gyp:chrome_resources',
'chrome_resources.gyp:chrome_strings',
@@ -32,8 +31,9 @@
'../device/device.gyp:device_bluetooth',
'../net/net.gyp:net',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../third_party/bzip2/bzip2.gyp:bzip2',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index 505a8ba..8923e07 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -36,11 +36,7 @@
'../crypto/crypto.gyp:crypto',
'../media/media.gyp:media',
'../skia/skia.gyp:skia',
- '../sync/protocol/sync_proto.gyp:sync_proto',
- # TODO(akalin): Depend only on sync_api from sync.
- '../sync/sync.gyp:sync_api',
- '../sync/sync.gyp:sync_internal_api',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../third_party/bzip2/bzip2.gyp:bzip2',
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
@@ -63,7 +59,7 @@
'<(SHARED_INTERMEDIATE_DIR)',
],
'export_dependent_settings': [
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
],
'sources': [
# All .cc, .h, .m, and .mm files under browser/ui except for:
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index b1a966f..c04b4084 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -153,8 +153,7 @@
'../net/net.gyp:net_resources',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
- '../sync/protocol/sync_proto.gyp:sync_proto',
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/libpng/libpng.gyp:libpng',
@@ -462,7 +461,7 @@
'../build/temp_gyp/googleurl.gyp:googleurl',
'../net/net.gyp:net',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
'../testing/gtest.gyp:gtest',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
@@ -928,11 +927,11 @@
'../net/net.gyp:net',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
- '../sync/protocol/sync_proto.gyp:sync_proto',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../sync/sync.gyp:test_support_sync_api',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
'../third_party/cld/cld.gyp:cld',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
@@ -1768,7 +1767,6 @@
'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'],
'dependencies': [
'browser',
- '../sync/protocol/sync_proto.gyp:sync_proto',
'chrome_resources.gyp:chrome_resources',
'chrome_resources.gyp:chrome_strings',
'chrome_resources.gyp:packed_extra_resources',
@@ -1781,6 +1779,7 @@
'../net/net.gyp:net',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
+ '../sync/sync.gyp:sync',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
'../third_party/cld/cld.gyp:cld',
@@ -2070,7 +2069,6 @@
'type': 'executable',
'dependencies': [
'browser',
- '../sync/protocol/sync_proto.gyp:sync_proto',
'chrome',
'chrome_resources.gyp:chrome_resources',
'chrome_resources.gyp:chrome_strings',
@@ -2083,7 +2081,7 @@
'../net/net.gyp:net',
'../printing/printing.gyp:printing',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../sync/sync.gyp:test_support_sync_testserver',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
@@ -2107,8 +2105,6 @@
'app/chrome_dll.rc',
'app/chrome_dll_resource.h',
'app/chrome_version.rc.version',
- 'browser/sessions/session_backend.cc',
- 'browser/sync/glue/session_model_associator.cc',
'test/base/chrome_test_launcher.cc',
'test/data/resource.rc',
'browser/sync/test/integration/apps_helper.cc',
@@ -2246,13 +2242,12 @@
'target_name': 'sync_performance_tests',
'type': 'executable',
'dependencies': [
- '../sync/protocol/sync_proto.gyp:sync_proto',
'browser',
'chrome',
'common/extensions/api/api.gyp:api',
'test_support_common',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_notifier',
+ '../sync/sync.gyp:sync',
'../sync/sync.gyp:test_support_sync_testserver',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
@@ -2270,8 +2265,6 @@
'app/chrome_dll.rc',
'app/chrome_dll_resource.h',
'app/chrome_version.rc.version',
- 'browser/sessions/session_backend.cc',
- 'browser/sync/glue/session_model_associator.cc',
'browser/sync/test/integration/autofill_helper.cc',
'browser/sync/test/integration/autofill_helper.h',
'browser/sync/test/integration/bookmarks_helper.cc',
@@ -2557,11 +2550,11 @@
'test_support_common',
'browser',
'renderer',
- 'chrome_resources.gyp:packed_resources',
+ 'chrome_resources.gyp:packed_resources',
'../base/base.gyp:base',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
],
'include_dirs': [
'..',
@@ -2610,7 +2603,7 @@
'debugger',
'test_support_common',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
'../testing/gtest.gyp:gtest',
],
'export_dependent_settings': [
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index 2dcc754..6b3ba32 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -13,7 +13,6 @@
# dependencies block below, rather than here.
'app/policy/cloud_policy_codegen.gyp:policy_test_support',
'browser',
- '../sync/protocol/sync_proto.gyp:sync_proto',
'chrome_resources.gyp:chrome_resources',
'chrome_resources.gyp:chrome_strings',
'chrome_resources.gyp:theme_resources',
@@ -26,6 +25,7 @@
'../net/net.gyp:net',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
+ '../sync/sync.gyp:sync',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
],
@@ -374,13 +374,13 @@
'../media/media.gyp:media_test_support',
'../net/net.gyp:net',
'../net/net.gyp:net_test_support',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'test_support_common',
'../sync/sync.gyp:test_support_sync_api',
'../sync/sync.gyp:test_support_sync_core',
'../sync/sync.gyp:test_support_sync_internal_api',
'../sync/sync.gyp:test_support_sync_notifier',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'test_support_common',
'test_support_unit',
# 3) anything tests directly depend on
'../google_apis/google_apis.gyp:google_apis',
diff --git a/chrome_frame/chrome_frame.gyp b/chrome_frame/chrome_frame.gyp
index 4b9e5bd..797f731 100644
--- a/chrome_frame/chrome_frame.gyp
+++ b/chrome_frame/chrome_frame.gyp
@@ -417,7 +417,7 @@
'../net/net.gyp:net',
'../net/net.gyp:net_test_support',
'../skia/skia.gyp:skia',
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
'../testing/gtest.gyp:gtest',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
@@ -800,7 +800,7 @@
'../chrome/chrome.gyp:installer_util',
'../google_update/google_update.gyp:google_update',
# Make the archive build happy.
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
# Crash Reporting
'crash_reporting/crash_reporting.gyp:crash_report',
],
@@ -923,7 +923,7 @@
'../chrome/chrome.gyp:installer_util',
'../google_update/google_update.gyp:google_update',
# Make the archive build happy.
- '../sync/sync.gyp:sync_api',
+ '../sync/sync.gyp:sync',
# Crash Reporting
'crash_reporting/crash_reporting.gyp:crash_report',
],
diff --git a/jingle/jingle.gyp b/jingle/jingle.gyp
index 0fd9811..2506978 100644
--- a/jingle/jingle.gyp
+++ b/jingle/jingle.gyp
@@ -111,6 +111,7 @@
'../net/net.gyp:net',
'../third_party/expat/expat.gyp:expat',
'../third_party/libjingle/libjingle.gyp:libjingle',
+ 'jingle_glue',
],
'export_dependent_settings': [
'../third_party/libjingle/libjingle.gyp:libjingle',
diff --git a/sync/base/sync_export.h b/sync/base/sync_export.h
index a38e8b2..83c65a6 100644
--- a/sync/base/sync_export.h
+++ b/sync/base/sync_export.h
@@ -5,8 +5,7 @@
#ifndef SYNC_SYNC_EXPORT_H_
#define SYNC_SYNC_EXPORT_H_
-// TODO(akalin): Remove '0 && ' when sync becomes a component.
-#if 0 && defined(COMPONENT_BUILD)
+#if defined(COMPONENT_BUILD)
#if defined(WIN32)
#if defined(SYNC_IMPLEMENTATION)
diff --git a/sync/internal_api/public/base/unique_position.h b/sync/internal_api/public/base/unique_position.h
index 8a0a1ba..3fbd5af 100644
--- a/sync/internal_api/public/base/unique_position.h
+++ b/sync/internal_api/public/base/unique_position.h
@@ -8,6 +8,7 @@
#include <string>
#include "base/basictypes.h"
+#include "sync/base/sync_export.h"
namespace sync_pb {
class UniquePosition;
@@ -37,7 +38,7 @@ namespace syncer {
//
// This class currently has several bookmarks-related assumptions built in,
// though it could be adapted to be more generally useful.
-class UniquePosition {
+class SYNC_EXPORT_PRIVATE UniquePosition {
public:
static const size_t kSuffixLength;
diff --git a/sync/internal_api/public/delete_journal.h b/sync/internal_api/public/delete_journal.h
index 1e66b3c..3152b02 100644
--- a/sync/internal_api/public/delete_journal.h
+++ b/sync/internal_api/public/delete_journal.h
@@ -7,6 +7,7 @@
#include <vector>
+#include "sync/base/sync_export.h"
#include "sync/internal_api/public/base/model_type.h"
#include "sync/protocol/sync.pb.h"
@@ -23,7 +24,7 @@ typedef std::vector<BookmarkDeleteJournal> BookmarkDeleteJournalList;
// Static APIs for passing delete journals between syncer::syncable namspace
// and syncer namespace.
-class DeleteJournal {
+class SYNC_EXPORT DeleteJournal {
public:
// Return info about deleted bookmark entries stored in the delete journal
// of |trans|'s directory.
diff --git a/sync/protocol/sync_proto.gyp b/sync/protocol/sync_proto.gyp
deleted file mode 100644
index edcb897..0000000
--- a/sync/protocol/sync_proto.gyp
+++ /dev/null
@@ -1,49 +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.
-
-{
- 'variables': {
- 'chromium_code': 1,
- },
- 'targets': [
- {
- 'target_name': 'sync_proto',
- 'type': 'static_library',
- 'sources': [
- 'app_notification_specifics.proto',
- 'app_setting_specifics.proto',
- 'app_specifics.proto',
- 'autofill_specifics.proto',
- 'bookmark_specifics.proto',
- 'client_commands.proto',
- 'client_debug_info.proto',
- 'device_info_specifics.proto',
- 'dictionary_specifics.proto',
- 'encryption.proto',
- 'experiments_specifics.proto',
- 'extension_setting_specifics.proto',
- 'extension_specifics.proto',
- 'get_updates_caller_info.proto',
- 'history_delete_directive_specifics.proto',
- 'nigori_specifics.proto',
- 'password_specifics.proto',
- 'preference_specifics.proto',
- 'priority_preference_specifics.proto',
- 'search_engine_specifics.proto',
- 'session_specifics.proto',
- 'sync.proto',
- 'sync_enums.proto',
- 'synced_notification_specifics.proto',
- 'test.proto',
- 'theme_specifics.proto',
- 'typed_url_specifics.proto',
- 'unique_position.proto',
- ],
- 'variables': {
- 'proto_out_dir': 'sync/protocol',
- },
- 'includes': ['../../build/protoc.gypi'],
- },
- ],
-}
diff --git a/sync/sync.gyp b/sync/sync.gyp
index 12f5267..baeffba 100644
--- a/sync/sync.gyp
+++ b/sync/sync.gyp
@@ -6,1054 +6,127 @@
'variables': {
'chromium_code': 1,
},
- 'targets': [
- # The core sync library.
- {
- 'target_name': 'sync_core',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'defines': [
- 'SYNC_IMPLEMENTATION',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../build/temp_gyp/googleurl.gyp:googleurl',
- '../crypto/crypto.gyp:crypto',
- '../google_apis/google_apis.gyp:google_apis',
- '../net/net.gyp:net',
- '../sql/sql.gyp:sql',
- 'protocol/sync_proto.gyp:sync_proto',
- ],
- 'conditions': [
- ['OS=="linux" and chromeos==1', {
- # Required by get_session_name.cc on Chrome OS.
- 'dependencies': [
- '../chromeos/chromeos.gyp:chromeos',
- ],
- }],
- ],
- 'export_dependent_settings': [
- # Propagate sync_proto since our headers include its generated
- # files.
- 'protocol/sync_proto.gyp:sync_proto',
- ],
- 'sources': [
- 'base/sync_export.h',
- 'engine/all_status.cc',
- 'engine/all_status.h',
- 'engine/apply_control_data_updates.cc',
- 'engine/apply_control_data_updates.h',
- 'engine/apply_updates_and_resolve_conflicts_command.cc',
- 'engine/apply_updates_and_resolve_conflicts_command.h',
- 'engine/backoff_delay_provider.cc',
- 'engine/backoff_delay_provider.h',
- 'engine/build_commit_command.cc',
- 'engine/build_commit_command.h',
- 'engine/commit.cc',
- 'engine/commit.h',
- 'engine/conflict_resolver.cc',
- 'engine/conflict_resolver.h',
- 'engine/conflict_util.cc',
- 'engine/conflict_util.h',
- 'engine/download_updates_command.cc',
- 'engine/download_updates_command.h',
- 'engine/get_commit_ids_command.cc',
- 'engine/get_commit_ids_command.h',
- 'engine/model_changing_syncer_command.cc',
- 'engine/model_changing_syncer_command.h',
- 'engine/net/server_connection_manager.cc',
- 'engine/net/server_connection_manager.h',
- 'engine/net/url_translator.cc',
- 'engine/net/url_translator.h',
- 'engine/nudge_source.cc',
- 'engine/nudge_source.h',
- 'engine/process_commit_response_command.cc',
- 'engine/process_commit_response_command.h',
- 'engine/process_updates_command.cc',
- 'engine/process_updates_command.h',
- 'engine/store_timestamps_command.cc',
- 'engine/store_timestamps_command.h',
- 'engine/sync_engine_event.cc',
- 'engine/sync_engine_event.h',
- 'engine/sync_scheduler.cc',
- 'engine/sync_scheduler.h',
- 'engine/sync_scheduler_impl.cc',
- 'engine/sync_scheduler_impl.h',
- 'engine/sync_session_job.cc',
- 'engine/sync_session_job.h',
- 'engine/syncer.cc',
- 'engine/syncer.h',
- 'engine/syncer_command.cc',
- 'engine/syncer_command.h',
- 'engine/syncer_proto_util.cc',
- 'engine/syncer_proto_util.h',
- 'engine/syncer_types.h',
- 'engine/syncer_util.cc',
- 'engine/syncer_util.h',
- 'engine/throttled_data_type_tracker.cc',
- 'engine/throttled_data_type_tracker.h',
- 'engine/traffic_logger.cc',
- 'engine/traffic_logger.h',
- 'engine/traffic_recorder.cc',
- 'engine/traffic_recorder.h',
- 'engine/update_applicator.cc',
- 'engine/update_applicator.h',
- 'js/js_arg_list.cc',
- 'js/js_arg_list.h',
- 'js/js_backend.h',
- 'js/js_controller.h',
- 'js/js_event_details.cc',
- 'js/js_event_details.h',
- 'js/js_event_handler.h',
- 'js/js_reply_handler.h',
- 'js/sync_js_controller.cc',
- 'js/sync_js_controller.h',
- 'protocol/proto_enum_conversions.cc',
- 'protocol/proto_enum_conversions.h',
- 'protocol/proto_value_conversions.cc',
- 'protocol/proto_value_conversions.h',
- 'protocol/sync_protocol_error.cc',
- 'protocol/sync_protocol_error.h',
- 'sessions/debug_info_getter.h',
- 'sessions/ordered_commit_set.cc',
- 'sessions/ordered_commit_set.h',
- 'sessions/status_controller.cc',
- 'sessions/status_controller.h',
- 'sessions/sync_session.cc',
- 'sessions/sync_session.h',
- 'sessions/sync_session_context.cc',
- 'sessions/sync_session_context.h',
- 'syncable/blob.h',
- 'syncable/dir_open_result.h',
- 'syncable/directory.cc',
- 'syncable/directory.h',
- 'syncable/directory_backing_store.cc',
- 'syncable/directory_backing_store.h',
- 'syncable/directory_change_delegate.h',
- 'syncable/entry.cc',
- 'syncable/entry.h',
- 'syncable/entry_kernel.cc',
- 'syncable/entry_kernel.h',
- 'syncable/in_memory_directory_backing_store.cc',
- 'syncable/in_memory_directory_backing_store.h',
- 'syncable/invalid_directory_backing_store.cc',
- 'syncable/invalid_directory_backing_store.h',
- 'syncable/metahandle_set.h',
- 'syncable/model_type.cc',
- 'syncable/mutable_entry.cc',
- 'syncable/mutable_entry.h',
- 'syncable/nigori_handler.cc',
- 'syncable/nigori_handler.h',
- 'syncable/nigori_util.cc',
- 'syncable/nigori_util.h',
- 'syncable/on_disk_directory_backing_store.cc',
- 'syncable/on_disk_directory_backing_store.h',
- 'syncable/scoped_kernel_lock.h',
- 'syncable/syncable-inl.h',
- 'syncable/syncable_base_transaction.cc',
- 'syncable/syncable_base_transaction.h',
- 'syncable/syncable_changes_version.h',
- 'syncable/syncable_columns.h',
- 'syncable/syncable_delete_journal.cc',
- 'syncable/syncable_delete_journal.h',
- 'syncable/syncable_enum_conversions.cc',
- 'syncable/syncable_enum_conversions.h',
- 'syncable/syncable_id.cc',
- 'syncable/syncable_id.h',
- 'syncable/syncable_proto_util.cc',
- 'syncable/syncable_proto_util.h',
- 'syncable/syncable_read_transaction.cc',
- 'syncable/syncable_read_transaction.h',
- 'syncable/syncable_util.cc',
- 'syncable/syncable_util.h',
- 'syncable/syncable_write_transaction.cc',
- 'syncable/syncable_write_transaction.h',
- 'syncable/transaction_observer.h',
- 'syncable/write_transaction_info.cc',
- 'syncable/write_transaction_info.h',
- 'util/cryptographer.cc',
- 'util/cryptographer.h',
-
- # TODO(akalin): Figure out a better place to put
- # data_encryption_win*; it's also used by autofill.
- 'util/data_encryption_win.cc',
- 'util/data_encryption_win.h',
-
- 'util/data_type_histogram.h',
- 'util/encryptor.h',
- 'util/extensions_activity_monitor.cc',
- 'util/extensions_activity_monitor.h',
- 'util/get_session_name.cc',
- 'util/get_session_name.h',
- 'util/get_session_name_ios.mm',
- 'util/get_session_name_ios.h',
- 'util/get_session_name_mac.mm',
- 'util/get_session_name_mac.h',
- 'util/get_session_name_win.cc',
- 'util/get_session_name_win.h',
- 'util/logging.cc',
- 'util/logging.h',
- 'util/nigori.cc',
- 'util/nigori.h',
- 'util/time.cc',
- 'util/time.h',
- ],
- },
-
- # The sync notifications library.
- {
- 'target_name': 'sync_notifier',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../jingle/jingle.gyp:jingle_glue',
- '../jingle/jingle.gyp:notifier',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
- # TODO(akalin): Remove this (http://crbug.com/133352).
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
- '../third_party/libjingle/libjingle.gyp:libjingle',
- 'sync_core',
- ],
- 'export_dependent_settings': [
- '../jingle/jingle.gyp:notifier',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
- ],
- 'sources': [
- 'notifier/invalidation_handler.h',
- 'notifier/invalidation_state_tracker.cc',
- 'notifier/invalidation_state_tracker.h',
- 'notifier/invalidation_util.cc',
- 'notifier/invalidation_util.h',
- 'notifier/invalidator_factory.cc',
- 'notifier/invalidator_factory.h',
- 'notifier/invalidator.h',
- 'notifier/invalidator_registrar.cc',
- 'notifier/invalidator_registrar.h',
- 'notifier/invalidator_state.cc',
- 'notifier/invalidator_state.h',
- 'notifier/object_id_invalidation_map.cc',
- 'notifier/object_id_invalidation_map.h',
- ],
- 'conditions': [
- ['OS != "android"', {
- 'sources': [
- 'notifier/ack_tracker.cc',
- 'notifier/ack_tracker.h',
- 'notifier/invalidation_notifier.cc',
- 'notifier/invalidation_notifier.h',
- 'notifier/non_blocking_invalidator.cc',
- 'notifier/non_blocking_invalidator.h',
- 'notifier/p2p_invalidator.cc',
- 'notifier/p2p_invalidator.h',
- 'notifier/push_client_channel.cc',
- 'notifier/push_client_channel.h',
- 'notifier/registration_manager.cc',
- 'notifier/registration_manager.h',
- 'notifier/state_writer.h',
- 'notifier/sync_invalidation_listener.cc',
- 'notifier/sync_invalidation_listener.h',
- 'notifier/sync_system_resources.cc',
- 'notifier/sync_system_resources.h',
- ],
- }],
- ],
- },
- # The sync internal API library.
- {
- 'target_name': 'sync_internal_api',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../build/temp_gyp/googleurl.gyp:googleurl',
- '../net/net.gyp:net',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_notifier',
- ],
- 'export_dependent_settings': [
- # Propagate sync_proto since our headers include its generated
- # files.
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- ],
- 'sources': [
- 'internal_api/base_node.cc',
- 'internal_api/base_transaction.cc',
- 'internal_api/change_record.cc',
- 'internal_api/change_reorder_buffer.cc',
- 'internal_api/change_reorder_buffer.h',
- 'internal_api/debug_info_event_listener.cc',
- 'internal_api/debug_info_event_listener.h',
- 'internal_api/http_bridge.cc',
- 'internal_api/internal_components_factory_impl.cc',
- 'internal_api/js_mutation_event_observer.cc',
- 'internal_api/js_mutation_event_observer.h',
- 'internal_api/js_sync_encryption_handler_observer.cc',
- 'internal_api/js_sync_encryption_handler_observer.h',
- 'internal_api/js_sync_manager_observer.cc',
- 'internal_api/js_sync_manager_observer.h',
- 'internal_api/public/base/enum_set.h',
- 'internal_api/public/base/invalidation.cc',
- 'internal_api/public/base/invalidation.h',
- 'internal_api/public/base/model_type.h',
- 'internal_api/public/base/model_type_invalidation_map.cc',
- 'internal_api/public/base/model_type_invalidation_map.h',
- 'internal_api/public/base/node_ordinal.cc',
- 'internal_api/public/base/node_ordinal.h',
- 'internal_api/public/base/ordinal.h',
- 'internal_api/public/base/progress_marker_map.cc',
- 'internal_api/public/base/progress_marker_map.h',
- 'internal_api/public/base/unique_position.cc',
- 'internal_api/public/base/unique_position.h',
- 'internal_api/public/base_node.h',
- 'internal_api/public/base_transaction.h',
- 'internal_api/public/change_record.h',
- 'internal_api/public/configure_reason.h',
- 'internal_api/public/data_type_association_stats.cc',
- 'internal_api/public/data_type_association_stats.h',
- 'internal_api/public/data_type_debug_info_listener.h',
- 'internal_api/public/engine/model_safe_worker.cc',
- 'internal_api/public/engine/model_safe_worker.h',
- 'internal_api/public/engine/passive_model_worker.cc',
- 'internal_api/public/engine/passive_model_worker.h',
- 'internal_api/public/engine/polling_constants.cc',
- 'internal_api/public/engine/polling_constants.h',
- 'internal_api/public/engine/sync_status.cc',
- 'internal_api/public/engine/sync_status.h',
- 'internal_api/public/http_bridge.h',
- 'internal_api/public/http_post_provider_factory.h',
- 'internal_api/public/http_post_provider_interface.h',
- 'internal_api/public/internal_components_factory_impl.h',
- 'internal_api/public/internal_components_factory.h',
- 'internal_api/public/delete_journal.h',
- 'internal_api/public/read_node.h',
- 'internal_api/public/read_transaction.h',
- 'internal_api/public/sessions/model_neutral_state.cc',
- 'internal_api/public/sessions/model_neutral_state.h',
- 'internal_api/public/sessions/sync_session_snapshot.cc',
- 'internal_api/public/sessions/sync_session_snapshot.h',
- 'internal_api/public/sessions/sync_source_info.cc',
- 'internal_api/public/sessions/sync_source_info.h',
- 'internal_api/public/sync_encryption_handler.cc',
- 'internal_api/public/sync_encryption_handler.h',
- 'internal_api/public/sync_manager_factory.h',
- 'internal_api/public/sync_manager.cc',
- 'internal_api/public/sync_manager.h',
- 'internal_api/public/user_share.h',
- 'internal_api/public/util/experiments.h',
- 'internal_api/public/util/immutable.h',
- 'internal_api/public/util/report_unrecoverable_error_function.h',
- 'internal_api/public/util/sync_string_conversions.cc',
- 'internal_api/public/util/sync_string_conversions.h',
- 'internal_api/public/util/syncer_error.cc',
- 'internal_api/public/util/syncer_error.h',
- 'internal_api/public/util/unrecoverable_error_handler.h',
- 'internal_api/public/util/unrecoverable_error_info.cc',
- 'internal_api/public/util/unrecoverable_error_info.h',
- 'internal_api/public/util/weak_handle.cc',
- 'internal_api/public/util/weak_handle.h',
- 'internal_api/public/write_node.h',
- 'internal_api/public/write_transaction.h',
- 'internal_api/delete_journal.cc',
- 'internal_api/read_node.cc',
- 'internal_api/read_transaction.cc',
- 'internal_api/sync_encryption_handler_impl.cc',
- 'internal_api/sync_encryption_handler_impl.h',
- 'internal_api/sync_manager_factory.cc',
- 'internal_api/sync_manager_impl.cc',
- 'internal_api/sync_manager_impl.h',
- 'internal_api/syncapi_internal.cc',
- 'internal_api/syncapi_internal.h',
- 'internal_api/syncapi_server_connection_manager.cc',
- 'internal_api/syncapi_server_connection_manager.h',
- 'internal_api/user_share.cc',
- 'internal_api/write_node.cc',
- 'internal_api/write_transaction.cc',
- ],
- },
-
- # The sync external API library.
- {
- 'target_name': 'sync_api',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_internal_api',
- ],
- # We avoid including header files from sync_proto in our public
- # header files so we don't need to export its settings.
- 'sources': [
- 'api/string_ordinal.h',
- 'api/syncable_service.cc',
- 'api/syncable_service.h',
- 'api/sync_data.h',
- 'api/sync_data.cc',
- 'api/sync_change.h',
- 'api/sync_change.cc',
- 'api/sync_change_processor.h',
- 'api/sync_change_processor.cc',
- 'api/sync_error.h',
- 'api/sync_error.cc',
- 'api/sync_error_factory.h',
- 'api/sync_error_factory.cc',
- 'api/sync_merge_result.h',
- 'api/sync_merge_result.cc',
- 'api/time.h',
- ],
- },
-
- # The componentized sync library.
- {
- 'target_name': 'sync_component',
- # TODO(rsimha): Change the type of this target to '<(component)' after
- # exporting dependencies on 'sync_proto'.
- 'type': 'none',
- 'dependencies': [
- 'sync_api',
- 'sync_core',
- 'sync_notifier',
- 'sync_internal_api',
- ],
- 'export_dependent_settings': [
- 'sync_api',
- 'sync_core',
- 'sync_notifier',
- 'sync_internal_api',
- ],
- },
-
- # The public sync target. This depends on 'sync_component' and
- # 'sync_proto' separately since 'sync_proto' isn't exportable from
- # 'sync_component' (for now).
- {
- 'target_name': 'sync',
- 'type': 'none',
- 'dependencies': [
- 'sync_component',
- 'protocol/sync_proto.gyp:sync_proto',
- ],
- 'export_dependent_settings': [
- 'sync_component',
- 'protocol/sync_proto.gyp:sync_proto',
- ],
- },
-
- # Test support files for the 'sync_core' target.
- {
- 'target_name': 'test_support_sync_core',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- ],
- 'export_dependent_settings': [
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- ],
- 'sources': [
- 'js/js_test_util.cc',
- 'js/js_test_util.h',
- 'sessions/test_util.cc',
- 'sessions/test_util.h',
- 'syncable/syncable_mock.cc',
- 'syncable/syncable_mock.h',
- 'test/callback_counter.h',
- 'test/engine/fake_model_worker.cc',
- 'test/engine/fake_model_worker.h',
- 'test/engine/fake_sync_scheduler.cc',
- 'test/engine/fake_sync_scheduler.h',
- 'test/engine/mock_connection_manager.cc',
- 'test/engine/mock_connection_manager.h',
- 'test/engine/syncer_command_test.cc',
- 'test/engine/syncer_command_test.h',
- 'test/engine/test_directory_setter_upper.cc',
- 'test/engine/test_directory_setter_upper.h',
- 'test/engine/test_id_factory.h',
- 'test/engine/test_syncable_utils.cc',
- 'test/engine/test_syncable_utils.h',
- 'test/fake_encryptor.cc',
- 'test/fake_encryptor.h',
- 'test/fake_sync_encryption_handler.h',
- 'test/fake_sync_encryption_handler.cc',
- 'test/fake_extensions_activity_monitor.cc',
- 'test/fake_extensions_activity_monitor.h',
- 'test/test_transaction_observer.cc',
- 'test/test_transaction_observer.h',
- 'test/null_directory_change_delegate.cc',
- 'test/null_directory_change_delegate.h',
- 'test/null_transaction_observer.cc',
- 'test/null_transaction_observer.h',
- 'test/sessions/test_scoped_session_event_listener.h',
- 'test/test_directory_backing_store.cc',
- 'test/test_directory_backing_store.h',
- 'util/test_unrecoverable_error_handler.cc',
- 'util/test_unrecoverable_error_handler.h',
- ],
- },
-
- # Test support files for the python sync test server.
- {
- 'target_name': 'test_support_sync_testserver',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../net/net.gyp:net_test_support',
-
- # The sync test server uses Python modules generated by the sync protos.
- '../third_party/protobuf/protobuf.gyp:py_proto',
- 'protocol/sync_proto.gyp:sync_proto',
- ],
- 'export_dependent_settings': [
- '../base/base.gyp:base',
- '../net/net.gyp:net_test_support',
- ],
- 'sources': [
- 'test/local_sync_test_server.cc',
- 'test/local_sync_test_server.h',
- ],
- },
-
- # Test support files for the 'sync_notifier' target.
- {
- 'target_name': 'test_support_sync_notifier',
- 'type': 'static_library',
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../testing/gmock.gyp:gmock',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
- 'sync_internal_api',
- 'sync_notifier',
- ],
- 'export_dependent_settings': [
- '../testing/gmock.gyp:gmock',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
- 'sync_internal_api',
- 'sync_notifier',
- ],
- 'sources': [
- 'notifier/fake_invalidation_state_tracker.cc',
- 'notifier/fake_invalidation_state_tracker.h',
- 'notifier/fake_invalidator.cc',
- 'notifier/fake_invalidator.h',
- 'notifier/fake_invalidation_handler.cc',
- 'notifier/fake_invalidation_handler.h',
- 'notifier/invalidator_test_template.cc',
- 'notifier/invalidator_test_template.h',
- 'notifier/object_id_invalidation_map_test_util.cc',
- 'notifier/object_id_invalidation_map_test_util.h',
- ],
- },
-
- # Test support files for the 'sync_internal_api' target.
- {
- 'target_name': 'test_support_sync_internal_api',
- 'type': 'static_library',
- 'variables': { 'enable_wexit_time_destructors': 1, },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../base/base.gyp:base',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'sync_notifier',
- 'test_support_sync_core',
- ],
- 'export_dependent_settings': [
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'sync_notifier',
- 'test_support_sync_core',
- ],
- 'sources': [
- 'internal_api/public/base/invalidation_test_util.cc',
- 'internal_api/public/base/invalidation_test_util.h',
- 'internal_api/public/base/model_type_invalidation_map_test_util.cc',
- 'internal_api/public/base/model_type_invalidation_map_test_util.h',
- 'internal_api/public/base/model_type_test_util.cc',
- 'internal_api/public/base/model_type_test_util.h',
- 'internal_api/public/test/fake_sync_manager.h',
- 'internal_api/public/test/test_entry_factory.h',
- 'internal_api/public/test/test_internal_components_factory.h',
- 'internal_api/public/test/test_user_share.h',
- 'internal_api/test/fake_sync_manager.cc',
- 'internal_api/test/test_entry_factory.cc',
- 'internal_api/test/test_internal_components_factory.cc',
- 'internal_api/test/test_user_share.cc',
- ],
- },
-
- # Test support files for the 'sync_api' target.
- {
- 'target_name': 'test_support_sync_api',
- 'type': 'static_library',
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../testing/gmock.gyp:gmock',
- 'sync_api',
- ],
- 'export_dependent_settings': [
- '../testing/gmock.gyp:gmock',
- 'sync_api',
- ],
- 'sources': [
- 'api/fake_syncable_service.cc',
- 'api/fake_syncable_service.h',
- 'api/sync_error_factory_mock.cc',
- 'api/sync_error_factory_mock.h',
- ],
- },
-
- # Unit tests for the 'sync_core' target. This cannot be a static
- # library because the unit test files have to be compiled directly
- # into the executable, so we push the target files to the
- # depending executable target via direct_dependent_settings.
- {
- 'target_name': 'sync_core_tests',
- 'type': 'none',
- # We only want unit test executables to include this target.
- 'suppress_wildcard': 1,
- 'dependencies': [
- '../base/base.gyp:base',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'test_support_sync_core',
- ],
- # Propagate all dependencies since the actual compilation
- # happens in the dependents.
- 'export_dependent_settings': [
- '../base/base.gyp:base',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'test_support_sync_core',
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- '..',
- ],
- 'sources': [
- 'internal_api/public/base/enum_set_unittest.cc',
- 'internal_api/public/base/model_type_invalidation_map_unittest.cc',
- 'internal_api/public/base/node_ordinal_unittest.cc',
- 'internal_api/public/base/ordinal_unittest.cc',
- 'internal_api/public/base/unique_position_unittest.cc',
- 'internal_api/public/engine/model_safe_worker_unittest.cc',
- 'internal_api/public/util/immutable_unittest.cc',
- 'internal_api/public/util/weak_handle_unittest.cc',
- 'engine/apply_control_data_updates_unittest.cc',
- 'engine/apply_updates_and_resolve_conflicts_command_unittest.cc',
- 'engine/backoff_delay_provider_unittest.cc',
- 'engine/build_commit_command_unittest.cc',
- 'engine/download_updates_command_unittest.cc',
- 'engine/model_changing_syncer_command_unittest.cc',
- 'engine/process_commit_response_command_unittest.cc',
- 'engine/process_updates_command_unittest.cc',
- 'engine/store_timestamps_command_unittest.cc',
- 'engine/sync_session_job_unittest.cc',
- 'engine/sync_scheduler_unittest.cc',
- 'engine/sync_scheduler_whitebox_unittest.cc',
- 'engine/syncer_proto_util_unittest.cc',
- 'engine/syncer_unittest.cc',
- 'engine/throttled_data_type_tracker_unittest.cc',
- 'engine/traffic_recorder_unittest.cc',
- 'js/js_arg_list_unittest.cc',
- 'js/js_event_details_unittest.cc',
- 'js/sync_js_controller_unittest.cc',
- 'protocol/proto_enum_conversions_unittest.cc',
- 'protocol/proto_value_conversions_unittest.cc',
- 'sessions/ordered_commit_set_unittest.cc',
- 'sessions/status_controller_unittest.cc',
- 'sessions/sync_session_unittest.cc',
- 'syncable/directory_backing_store_unittest.cc',
- 'syncable/model_type_unittest.cc',
- 'syncable/nigori_util_unittest.cc',
- 'syncable/syncable_enum_conversions_unittest.cc',
- 'syncable/syncable_id_unittest.cc',
- 'syncable/syncable_unittest.cc',
- 'syncable/syncable_util_unittest.cc',
- 'util/cryptographer_unittest.cc',
- 'util/data_encryption_win_unittest.cc',
- 'util/data_type_histogram_unittest.cc',
- 'util/get_session_name_unittest.cc',
- 'util/nigori_unittest.cc',
- 'util/protobuf_unittest.cc',
- ],
- 'conditions': [
- ['OS == "ios" and coverage != 0', {
- 'sources!': [
- # These sources can't be built with coverage due to a toolchain
- # bug: http://openradar.appspot.com/radar?id=1499403
- 'engine/syncer_unittest.cc',
-
- # These tests crash when run with coverage turned on due to an
- # issue with llvm_gcda_increment_indirect_counter:
- # http://crbug.com/156058
- 'syncable/directory_backing_store_unittest.cc',
- ],
- }],
- ],
- },
- },
-
- # Unit tests for the 'sync_notifier' target. This cannot be a static
- # library because the unit test files have to be compiled directly
- # into the executable, so we push the target files to the
- # depending executable target via direct_dependent_settings.
- {
- 'target_name': 'sync_notifier_tests',
- 'type': 'none',
- # We only want unit test executables to include this target.
- 'suppress_wildcard': 1,
- 'dependencies': [
- '../base/base.gyp:base',
- '../jingle/jingle.gyp:notifier_test_util',
- '../net/net.gyp:net_test_support',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
- '../third_party/libjingle/libjingle.gyp:libjingle',
- 'sync_core',
- 'sync_notifier',
- 'test_support_sync_notifier',
- ],
- # Propagate all dependencies since the actual compilation
- # happens in the dependents.
- 'export_dependent_settings': [
- '../base/base.gyp:base',
- '../jingle/jingle.gyp:notifier_test_util',
- '../net/net.gyp:net_test_support',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
- '../third_party/libjingle/libjingle.gyp:libjingle',
- 'sync_core',
- 'sync_notifier',
- 'test_support_sync_notifier',
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- '..',
- ],
- 'sources': [
- 'notifier/invalidator_factory_unittest.cc',
- ],
- 'conditions': [
- ['OS != "android"', {
- 'sources': [
- 'notifier/ack_tracker_unittest.cc',
- 'notifier/fake_invalidator_unittest.cc',
- 'notifier/invalidation_notifier_unittest.cc',
- 'notifier/invalidator_registrar_unittest.cc',
- 'notifier/non_blocking_invalidator_unittest.cc',
- 'notifier/p2p_invalidator_unittest.cc',
- 'notifier/push_client_channel_unittest.cc',
- 'notifier/registration_manager_unittest.cc',
- 'notifier/sync_invalidation_listener_unittest.cc',
- 'notifier/sync_system_resources_unittest.cc',
- ],
- }],
- ],
- },
- },
- # Unit tests for the 'sync_internal_api' target. This cannot be a static
- # library because the unit test files have to be compiled directly
- # into the executable, so we push the target files to the
- # depending executable target via direct_dependent_settings.
- {
- 'target_name': 'sync_internal_api_tests',
- 'type': 'none',
- # We only want unit test executables to include this target.
- 'suppress_wildcard': 1,
- 'dependencies': [
- '../base/base.gyp:base',
- '../net/net.gyp:net',
- '../net/net.gyp:net_test_support',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'sync_notifier',
- 'test_support_sync_internal_api',
- ],
- # Propagate all dependencies since the actual compilation
- # happens in the dependents.
- 'export_dependent_settings': [
- '../base/base.gyp:base',
- '../net/net.gyp:net',
- '../net/net.gyp:net_test_support',
- '../testing/gmock.gyp:gmock',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'sync_notifier',
- 'test_support_sync_internal_api',
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- '..',
- ],
- 'sources': [
- 'internal_api/debug_info_event_listener_unittest.cc',
- 'internal_api/http_bridge_unittest.cc',
- 'internal_api/js_mutation_event_observer_unittest.cc',
- 'internal_api/js_sync_encryption_handler_observer_unittest.cc',
- 'internal_api/js_sync_manager_observer_unittest.cc',
- 'internal_api/public/change_record_unittest.cc',
- 'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
- 'internal_api/public/sessions/sync_source_info_unittest.cc',
- 'internal_api/syncapi_server_connection_manager_unittest.cc',
- 'internal_api/sync_encryption_handler_impl_unittest.cc',
- 'internal_api/sync_manager_impl_unittest.cc',
- ],
- 'conditions': [
- ['OS == "ios"', {
- 'sources!': [
- 'internal_api/http_bridge_unittest.cc',
- ],
- }],
- ],
- },
- },
-
- # Unit tests for the 'sync_api' target. This cannot be a static
- # library because the unit test files have to be compiled directly
- # into the executable, so we push the target files to the
- # depending executable target via direct_dependent_settings.
- {
- 'target_name': 'sync_api_tests',
- 'type': 'none',
- # We only want unit test executables to include this target.
- 'suppress_wildcard': 1,
- 'dependencies': [
- '../base/base.gyp:base',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'test_support_sync_internal_api',
- ],
- # Propagate all dependencies since the actual compilation
- # happens in the dependents.
- 'export_dependent_settings': [
- '../base/base.gyp:base',
- '../testing/gtest.gyp:gtest',
- 'protocol/sync_proto.gyp:sync_proto',
- 'sync_core',
- 'sync_internal_api',
- 'test_support_sync_internal_api',
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- '..',
- ],
- 'sources': [
- 'api/sync_change_unittest.cc',
- 'api/sync_error_unittest.cc',
- 'api/sync_merge_result_unittest.cc',
- ],
- },
- },
-
- # The unit test executable for sync tests.
- {
- 'target_name': 'sync_unit_tests',
- 'type': '<(gtest_target_type)',
- # Typed-parametrized tests generate exit-time destructors.
- 'variables': { 'enable_wexit_time_destructors': 0, },
- 'dependencies': [
- '../base/base.gyp:run_all_unittests',
- 'sync',
- 'sync_api_tests',
- 'sync_core_tests',
- 'sync_internal_api_tests',
- 'sync_notifier_tests',
- ],
- 'conditions': [
- # TODO(akalin): This is needed because histogram.cc uses
- # leak_annotations.h, which pulls this in. Make 'base'
- # propagate this dependency.
- ['OS=="linux" and linux_use_tcmalloc==1', {
- 'dependencies': [
- '../base/allocator/allocator.gyp:allocator',
- ],
- }],
- ['OS == "android" and gtest_target_type == "shared_library"', {
- 'dependencies': [
- '../testing/android/native_test.gyp:native_test_native_code',
- ],
- }],
- ],
- },
+ 'includes': [
+ 'sync_tests.gypi',
],
+
'conditions': [
- ['OS != "ios"', {
+ # Notes:
+ # 1) In static mode, the public 'sync' target has a target type of 'none',
+ # and is composed of the static library targets 'sync_api', 'sync_core',
+ # 'sync_internal_api', 'sync_notifier', and 'sync_proto'.
+ # 2) In component mode, we build the public 'sync' target into a single DLL,
+ # which includes the contents of sync_api.gypi, sync_core.gypi,
+ # sync_internal_api.gypi, sync_notifier.gypi, and sync_proto.gypi.
+ # 3) All external targets that depend on anything in sync/ must simply
+ # declare a dependency on 'sync.gyp:sync'
+ ['component=="static_library"', {
'targets': [
+ # The public sync static library target.
{
- 'target_name': 'sync_tools_helper',
- 'type': 'static_library',
- 'include_dirs': [
- '..',
- ],
+ 'target_name': 'sync',
+ 'type': 'none',
'dependencies': [
- '../base/base.gyp:base',
+ 'sync_api',
+ 'sync_core',
+ 'sync_internal_api',
'sync_notifier',
+ 'sync_proto',
],
'export_dependent_settings': [
- '../base/base.gyp:base',
'sync_notifier',
- ],
- 'sources': [
- 'tools/null_invalidation_state_tracker.cc',
- 'tools/null_invalidation_state_tracker.h',
+ 'sync_proto',
],
},
- # A tool that can be used to launch a python sync server instance.
+ # The sync external API library.
{
- 'target_name': 'run_sync_testserver',
- 'type': 'executable',
- 'dependencies': [
- '../base/base.gyp:base',
- '../base/base.gyp:test_support_base',
- '../net/net.gyp:net_test_support',
- '../testing/gtest.gyp:gtest',
- 'test_support_sync_testserver',
+ 'target_name': 'sync_api',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_api.gypi',
],
- 'sources': [
- 'tools/testserver/run_sync_testserver.cc',
+ 'dependencies': [
+ 'sync_internal_api',
+ 'sync_proto',
],
},
- # A tool to listen to sync notifications and print them out.
+ # The core sync library.
{
- 'target_name': 'sync_listen_notifications',
- 'type': 'executable',
+ 'target_name': 'sync_core',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_core.gypi',
+ ],
'dependencies': [
- '../base/base.gyp:base',
- '../jingle/jingle.gyp:notifier',
- '../net/net.gyp:net',
- '../net/net.gyp:net_test_support',
- 'sync',
- 'sync_tools_helper',
+ 'sync_proto',
],
- 'sources': [
- 'tools/sync_listen_notifications.cc',
+ 'export_dependent_settings': [
+ 'sync_proto',
],
},
- # A standalone command-line sync client.
+ # The sync internal API library.
{
- 'target_name': 'sync_client',
- 'type': 'executable',
- 'defines': [
- 'SYNC_TEST',
+ 'target_name': 'sync_internal_api',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_internal_api.gypi',
],
'dependencies': [
- '../base/base.gyp:base',
- '../jingle/jingle.gyp:notifier',
- '../net/net.gyp:net',
- '../net/net.gyp:net_test_support',
- 'sync',
- 'sync_tools_helper',
+ 'sync_core',
+ 'sync_notifier',
+ 'sync_proto',
],
- 'sources': [
- 'tools/sync_client.cc',
+ 'export_dependent_settings': [
+ 'sync_core',
+ 'sync_proto',
],
},
- ],
- }],
- ['OS == "android"', {
- 'targets': [
+
+ # The sync notifications library.
{
- 'target_name': 'sync_java',
- 'type': 'none',
- 'variables': {
- 'package_name': 'sync',
- 'java_in_dir': '../sync/android/java',
- },
+ 'target_name': 'sync_notifier',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_notifier.gypi',
+ ],
'dependencies': [
- '../base/base.gyp:base_java',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
- '../third_party/guava/guava.gyp:guava_javalib',
- '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
+ 'sync_core',
],
- 'includes': [ '../build/java.gypi' ],
},
+
+ # The sync protocol buffer library.
{
- 'target_name': 'sync_javatests',
- 'type': 'none',
- 'variables': {
- 'package_name': 'sync_javatests',
- 'java_in_dir': '../sync/android/javatests',
- },
- 'dependencies': [
- 'sync_java',
- '../base/base.gyp:base_java_test_support',
+ 'target_name': 'sync_proto',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_proto.gypi',
],
- 'includes': [ '../build/java.gypi' ],
},
],
- }],
-
- # Special target to wrap a gtest_target_type==shared_library
- # sync_unit_tests into an android apk for execution.
- ['OS == "android" and gtest_target_type == "shared_library"', {
+ },
+ { # component != static_library
'targets': [
+ # The public sync shared library target.
{
- 'target_name': 'sync_unit_tests_apk',
- 'type': 'none',
- 'dependencies': [
- 'sync_unit_tests',
+ 'target_name': 'sync',
+ 'type': 'shared_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'includes': [
+ 'sync_api.gypi',
+ 'sync_core.gypi',
+ 'sync_internal_api.gypi',
+ 'sync_notifier.gypi',
+ 'sync_proto.gypi',
],
- 'variables': {
- 'test_suite_name': 'sync_unit_tests',
- 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit_tests<(SHARED_LIB_SUFFIX)',
- },
- 'includes': [ '../build/apk_test.gypi' ],
},
],
}],
diff --git a/sync/sync_api.gypi b/sync/sync_api.gypi
new file mode 100644
index 0000000..188fc32
--- /dev/null
+++ b/sync/sync_api.gypi
@@ -0,0 +1,33 @@
+# Copyright 2013 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.
+
+{
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ ],
+ 'sources': [
+ 'api/string_ordinal.h',
+ 'api/syncable_service.cc',
+ 'api/syncable_service.h',
+ 'api/sync_data.h',
+ 'api/sync_data.cc',
+ 'api/sync_change.h',
+ 'api/sync_change.cc',
+ 'api/sync_change_processor.h',
+ 'api/sync_change_processor.cc',
+ 'api/sync_error.h',
+ 'api/sync_error.cc',
+ 'api/sync_error_factory.h',
+ 'api/sync_error_factory.cc',
+ 'api/sync_merge_result.h',
+ 'api/sync_merge_result.cc',
+ 'api/time.h',
+ ],
+}
diff --git a/sync/sync_core.gypi b/sync/sync_core.gypi
new file mode 100644
index 0000000..716f2af
--- /dev/null
+++ b/sync/sync_core.gypi
@@ -0,0 +1,190 @@
+# Copyright 2013 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.
+
+{
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../base/base.gyp:base_i18n',
+ '../build/temp_gyp/googleurl.gyp:googleurl',
+ '../crypto/crypto.gyp:crypto',
+ '../google_apis/google_apis.gyp:google_apis',
+ '../net/net.gyp:net',
+ '../sql/sql.gyp:sql',
+ ],
+ 'conditions': [
+ ['OS=="linux" and chromeos==1', {
+ # Required by get_session_name.cc on Chrome OS.
+ 'dependencies': [
+ '../chromeos/chromeos.gyp:chromeos',
+ ],
+ }],
+ ],
+ 'sources': [
+ 'base/sync_export.h',
+ 'engine/all_status.cc',
+ 'engine/all_status.h',
+ 'engine/apply_control_data_updates.cc',
+ 'engine/apply_control_data_updates.h',
+ 'engine/apply_updates_and_resolve_conflicts_command.cc',
+ 'engine/apply_updates_and_resolve_conflicts_command.h',
+ 'engine/backoff_delay_provider.cc',
+ 'engine/backoff_delay_provider.h',
+ 'engine/build_commit_command.cc',
+ 'engine/build_commit_command.h',
+ 'engine/commit.cc',
+ 'engine/commit.h',
+ 'engine/conflict_resolver.cc',
+ 'engine/conflict_resolver.h',
+ 'engine/conflict_util.cc',
+ 'engine/conflict_util.h',
+ 'engine/download_updates_command.cc',
+ 'engine/download_updates_command.h',
+ 'engine/get_commit_ids_command.cc',
+ 'engine/get_commit_ids_command.h',
+ 'engine/model_changing_syncer_command.cc',
+ 'engine/model_changing_syncer_command.h',
+ 'engine/net/server_connection_manager.cc',
+ 'engine/net/server_connection_manager.h',
+ 'engine/net/url_translator.cc',
+ 'engine/net/url_translator.h',
+ 'engine/nudge_source.cc',
+ 'engine/nudge_source.h',
+ 'engine/process_commit_response_command.cc',
+ 'engine/process_commit_response_command.h',
+ 'engine/process_updates_command.cc',
+ 'engine/process_updates_command.h',
+ 'engine/store_timestamps_command.cc',
+ 'engine/store_timestamps_command.h',
+ 'engine/sync_engine_event.cc',
+ 'engine/sync_engine_event.h',
+ 'engine/sync_scheduler.cc',
+ 'engine/sync_scheduler.h',
+ 'engine/sync_scheduler_impl.cc',
+ 'engine/sync_scheduler_impl.h',
+ 'engine/sync_session_job.cc',
+ 'engine/sync_session_job.h',
+ 'engine/syncer.cc',
+ 'engine/syncer.h',
+ 'engine/syncer_command.cc',
+ 'engine/syncer_command.h',
+ 'engine/syncer_proto_util.cc',
+ 'engine/syncer_proto_util.h',
+ 'engine/syncer_types.h',
+ 'engine/syncer_util.cc',
+ 'engine/syncer_util.h',
+ 'engine/throttled_data_type_tracker.cc',
+ 'engine/throttled_data_type_tracker.h',
+ 'engine/traffic_logger.cc',
+ 'engine/traffic_logger.h',
+ 'engine/traffic_recorder.cc',
+ 'engine/traffic_recorder.h',
+ 'engine/update_applicator.cc',
+ 'engine/update_applicator.h',
+ 'js/js_arg_list.cc',
+ 'js/js_arg_list.h',
+ 'js/js_backend.h',
+ 'js/js_controller.h',
+ 'js/js_event_details.cc',
+ 'js/js_event_details.h',
+ 'js/js_event_handler.h',
+ 'js/js_reply_handler.h',
+ 'js/sync_js_controller.cc',
+ 'js/sync_js_controller.h',
+ 'protocol/proto_enum_conversions.cc',
+ 'protocol/proto_enum_conversions.h',
+ 'protocol/proto_value_conversions.cc',
+ 'protocol/proto_value_conversions.h',
+ 'protocol/sync_protocol_error.cc',
+ 'protocol/sync_protocol_error.h',
+ 'sessions/debug_info_getter.h',
+ 'sessions/ordered_commit_set.cc',
+ 'sessions/ordered_commit_set.h',
+ 'sessions/status_controller.cc',
+ 'sessions/status_controller.h',
+ 'sessions/sync_session.cc',
+ 'sessions/sync_session.h',
+ 'sessions/sync_session_context.cc',
+ 'sessions/sync_session_context.h',
+ 'syncable/blob.h',
+ 'syncable/dir_open_result.h',
+ 'syncable/directory.cc',
+ 'syncable/directory.h',
+ 'syncable/directory_backing_store.cc',
+ 'syncable/directory_backing_store.h',
+ 'syncable/directory_change_delegate.h',
+ 'syncable/entry.cc',
+ 'syncable/entry.h',
+ 'syncable/entry_kernel.cc',
+ 'syncable/entry_kernel.h',
+ 'syncable/in_memory_directory_backing_store.cc',
+ 'syncable/in_memory_directory_backing_store.h',
+ 'syncable/invalid_directory_backing_store.cc',
+ 'syncable/invalid_directory_backing_store.h',
+ 'syncable/metahandle_set.h',
+ 'syncable/model_type.cc',
+ 'syncable/mutable_entry.cc',
+ 'syncable/mutable_entry.h',
+ 'syncable/nigori_handler.cc',
+ 'syncable/nigori_handler.h',
+ 'syncable/nigori_util.cc',
+ 'syncable/nigori_util.h',
+ 'syncable/on_disk_directory_backing_store.cc',
+ 'syncable/on_disk_directory_backing_store.h',
+ 'syncable/scoped_kernel_lock.h',
+ 'syncable/syncable-inl.h',
+ 'syncable/syncable_base_transaction.cc',
+ 'syncable/syncable_base_transaction.h',
+ 'syncable/syncable_changes_version.h',
+ 'syncable/syncable_columns.h',
+ 'syncable/syncable_delete_journal.cc',
+ 'syncable/syncable_delete_journal.h',
+ 'syncable/syncable_enum_conversions.cc',
+ 'syncable/syncable_enum_conversions.h',
+ 'syncable/syncable_id.cc',
+ 'syncable/syncable_id.h',
+ 'syncable/syncable_proto_util.cc',
+ 'syncable/syncable_proto_util.h',
+ 'syncable/syncable_read_transaction.cc',
+ 'syncable/syncable_read_transaction.h',
+ 'syncable/syncable_util.cc',
+ 'syncable/syncable_util.h',
+ 'syncable/syncable_write_transaction.cc',
+ 'syncable/syncable_write_transaction.h',
+ 'syncable/transaction_observer.h',
+ 'syncable/write_transaction_info.cc',
+ 'syncable/write_transaction_info.h',
+ 'util/cryptographer.cc',
+ 'util/cryptographer.h',
+
+ # TODO(akalin): Figure out a better place to put
+ # data_encryption_win*; it's also used by autofill.
+ 'util/data_encryption_win.cc',
+ 'util/data_encryption_win.h',
+
+ 'util/data_type_histogram.h',
+ 'util/encryptor.h',
+ 'util/extensions_activity_monitor.cc',
+ 'util/extensions_activity_monitor.h',
+ 'util/get_session_name.cc',
+ 'util/get_session_name.h',
+ 'util/get_session_name_ios.mm',
+ 'util/get_session_name_ios.h',
+ 'util/get_session_name_mac.mm',
+ 'util/get_session_name_mac.h',
+ 'util/get_session_name_win.cc',
+ 'util/get_session_name_win.h',
+ 'util/logging.cc',
+ 'util/logging.h',
+ 'util/nigori.cc',
+ 'util/nigori.h',
+ 'util/time.cc',
+ 'util/time.h',
+ ],
+}
diff --git a/sync/sync_internal_api.gypi b/sync/sync_internal_api.gypi
new file mode 100644
index 0000000..04c36a6
--- /dev/null
+++ b/sync/sync_internal_api.gypi
@@ -0,0 +1,111 @@
+# Copyright 2013 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.
+
+{
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../build/temp_gyp/googleurl.gyp:googleurl',
+ '../net/net.gyp:net',
+ ],
+ 'sources': [
+ 'internal_api/base_node.cc',
+ 'internal_api/base_transaction.cc',
+ 'internal_api/change_record.cc',
+ 'internal_api/change_reorder_buffer.cc',
+ 'internal_api/change_reorder_buffer.h',
+ 'internal_api/delete_journal.cc',
+ 'internal_api/debug_info_event_listener.cc',
+ 'internal_api/debug_info_event_listener.h',
+ 'internal_api/http_bridge.cc',
+ 'internal_api/internal_components_factory_impl.cc',
+ 'internal_api/js_mutation_event_observer.cc',
+ 'internal_api/js_mutation_event_observer.h',
+ 'internal_api/js_sync_encryption_handler_observer.cc',
+ 'internal_api/js_sync_encryption_handler_observer.h',
+ 'internal_api/js_sync_manager_observer.cc',
+ 'internal_api/js_sync_manager_observer.h',
+ 'internal_api/public/base/enum_set.h',
+ 'internal_api/public/base/invalidation.cc',
+ 'internal_api/public/base/invalidation.h',
+ 'internal_api/public/base/model_type.h',
+ 'internal_api/public/base/model_type_invalidation_map.cc',
+ 'internal_api/public/base/model_type_invalidation_map.h',
+ 'internal_api/public/base/node_ordinal.cc',
+ 'internal_api/public/base/node_ordinal.h',
+ 'internal_api/public/base/ordinal.h',
+ 'internal_api/public/base/progress_marker_map.cc',
+ 'internal_api/public/base/progress_marker_map.h',
+ 'internal_api/public/base/unique_position.cc',
+ 'internal_api/public/base/unique_position.h',
+ 'internal_api/public/base_node.h',
+ 'internal_api/public/base_transaction.h',
+ 'internal_api/public/change_record.h',
+ 'internal_api/public/configure_reason.h',
+ 'internal_api/public/data_type_association_stats.cc',
+ 'internal_api/public/data_type_association_stats.h',
+ 'internal_api/public/data_type_debug_info_listener.h',
+ 'internal_api/public/delete_journal.h',
+ 'internal_api/public/engine/model_safe_worker.cc',
+ 'internal_api/public/engine/model_safe_worker.h',
+ 'internal_api/public/engine/passive_model_worker.cc',
+ 'internal_api/public/engine/passive_model_worker.h',
+ 'internal_api/public/engine/polling_constants.cc',
+ 'internal_api/public/engine/polling_constants.h',
+ 'internal_api/public/engine/sync_status.cc',
+ 'internal_api/public/engine/sync_status.h',
+ 'internal_api/public/http_bridge.h',
+ 'internal_api/public/http_post_provider_factory.h',
+ 'internal_api/public/http_post_provider_interface.h',
+ 'internal_api/public/internal_components_factory_impl.h',
+ 'internal_api/public/internal_components_factory.h',
+ 'internal_api/public/read_node.h',
+ 'internal_api/public/read_transaction.h',
+ 'internal_api/public/sessions/model_neutral_state.cc',
+ 'internal_api/public/sessions/model_neutral_state.h',
+ 'internal_api/public/sessions/sync_session_snapshot.cc',
+ 'internal_api/public/sessions/sync_session_snapshot.h',
+ 'internal_api/public/sessions/sync_source_info.cc',
+ 'internal_api/public/sessions/sync_source_info.h',
+ 'internal_api/public/sync_encryption_handler.cc',
+ 'internal_api/public/sync_encryption_handler.h',
+ 'internal_api/public/sync_manager_factory.h',
+ 'internal_api/public/sync_manager.cc',
+ 'internal_api/public/sync_manager.h',
+ 'internal_api/public/user_share.h',
+ 'internal_api/public/util/experiments.h',
+ 'internal_api/public/util/immutable.h',
+ 'internal_api/public/util/report_unrecoverable_error_function.h',
+ 'internal_api/public/util/sync_string_conversions.cc',
+ 'internal_api/public/util/sync_string_conversions.h',
+ 'internal_api/public/util/syncer_error.cc',
+ 'internal_api/public/util/syncer_error.h',
+ 'internal_api/public/util/unrecoverable_error_handler.h',
+ 'internal_api/public/util/unrecoverable_error_info.cc',
+ 'internal_api/public/util/unrecoverable_error_info.h',
+ 'internal_api/public/util/weak_handle.cc',
+ 'internal_api/public/util/weak_handle.h',
+ 'internal_api/public/write_node.h',
+ 'internal_api/public/write_transaction.h',
+ 'internal_api/read_node.cc',
+ 'internal_api/read_transaction.cc',
+ 'internal_api/sync_encryption_handler_impl.cc',
+ 'internal_api/sync_encryption_handler_impl.h',
+ 'internal_api/sync_manager_factory.cc',
+ 'internal_api/sync_manager_impl.cc',
+ 'internal_api/sync_manager_impl.h',
+ 'internal_api/syncapi_internal.cc',
+ 'internal_api/syncapi_internal.h',
+ 'internal_api/syncapi_server_connection_manager.cc',
+ 'internal_api/syncapi_server_connection_manager.h',
+ 'internal_api/user_share.cc',
+ 'internal_api/write_node.cc',
+ 'internal_api/write_transaction.cc',
+ ],
+}
diff --git a/sync/sync_notifier.gypi b/sync/sync_notifier.gypi
new file mode 100644
index 0000000..18ef4b9
--- /dev/null
+++ b/sync/sync_notifier.gypi
@@ -0,0 +1,64 @@
+# Copyright 2013 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.
+
+{
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:jingle_glue',
+ '../jingle/jingle.gyp:notifier',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
+ # TODO(akalin): Remove this (http://crbug.com/133352).
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
+ '../third_party/libjingle/libjingle.gyp:libjingle',
+ ],
+ 'export_dependent_settings': [
+ '../jingle/jingle.gyp:notifier',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
+ ],
+ 'sources': [
+ 'notifier/invalidation_handler.h',
+ 'notifier/invalidation_state_tracker.cc',
+ 'notifier/invalidation_state_tracker.h',
+ 'notifier/invalidation_util.cc',
+ 'notifier/invalidation_util.h',
+ 'notifier/invalidator_factory.cc',
+ 'notifier/invalidator_factory.h',
+ 'notifier/invalidator.h',
+ 'notifier/invalidator_registrar.cc',
+ 'notifier/invalidator_registrar.h',
+ 'notifier/invalidator_state.cc',
+ 'notifier/invalidator_state.h',
+ 'notifier/object_id_invalidation_map.cc',
+ 'notifier/object_id_invalidation_map.h',
+ ],
+ 'conditions': [
+ ['OS != "android"', {
+ 'sources': [
+ 'notifier/ack_tracker.cc',
+ 'notifier/ack_tracker.h',
+ 'notifier/invalidation_notifier.cc',
+ 'notifier/invalidation_notifier.h',
+ 'notifier/non_blocking_invalidator.cc',
+ 'notifier/non_blocking_invalidator.h',
+ 'notifier/p2p_invalidator.cc',
+ 'notifier/p2p_invalidator.h',
+ 'notifier/push_client_channel.cc',
+ 'notifier/push_client_channel.h',
+ 'notifier/registration_manager.cc',
+ 'notifier/registration_manager.h',
+ 'notifier/state_writer.h',
+ 'notifier/sync_invalidation_listener.cc',
+ 'notifier/sync_invalidation_listener.h',
+ 'notifier/sync_system_resources.cc',
+ 'notifier/sync_system_resources.h',
+ ],
+ }],
+ ],
+}
diff --git a/sync/sync_proto.gypi b/sync/sync_proto.gypi
new file mode 100644
index 0000000..0e288fb
--- /dev/null
+++ b/sync/sync_proto.gypi
@@ -0,0 +1,51 @@
+# Copyright 2013 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.
+
+{
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'sources': [
+ 'protocol/app_notification_specifics.proto',
+ 'protocol/app_setting_specifics.proto',
+ 'protocol/app_specifics.proto',
+ 'protocol/autofill_specifics.proto',
+ 'protocol/bookmark_specifics.proto',
+ 'protocol/client_commands.proto',
+ 'protocol/client_debug_info.proto',
+ 'protocol/device_info_specifics.proto',
+ 'protocol/dictionary_specifics.proto',
+ 'protocol/encryption.proto',
+ 'protocol/experiments_specifics.proto',
+ 'protocol/extension_setting_specifics.proto',
+ 'protocol/extension_specifics.proto',
+ 'protocol/get_updates_caller_info.proto',
+ 'protocol/history_delete_directive_specifics.proto',
+ 'protocol/nigori_specifics.proto',
+ 'protocol/password_specifics.proto',
+ 'protocol/preference_specifics.proto',
+ 'protocol/priority_preference_specifics.proto',
+ 'protocol/search_engine_specifics.proto',
+ 'protocol/session_specifics.proto',
+ 'protocol/sync.proto',
+ 'protocol/sync_enums.proto',
+ 'protocol/synced_notification_specifics.proto',
+ 'protocol/test.proto',
+ 'protocol/theme_specifics.proto',
+ 'protocol/typed_url_specifics.proto',
+ 'protocol/unique_position.proto',
+ ],
+ 'variables': {
+ 'proto_in_dir': './protocol',
+ 'proto_out_dir': 'sync/protocol',
+ 'cc_generator_options': 'dllexport_decl=SYNC_EXPORT:',
+ 'cc_include': 'sync/base/sync_export.h',
+ },
+ 'includes': [
+ '../build/protoc.gypi'
+ ],
+}
diff --git a/sync/sync_tests.gypi b/sync/sync_tests.gypi
new file mode 100644
index 0000000..81424c8
--- /dev/null
+++ b/sync/sync_tests.gypi
@@ -0,0 +1,617 @@
+# Copyright 2013 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.
+
+{
+ 'targets': [
+ # Test support files for the 'sync_core' target.
+ {
+ 'target_name': 'test_support_sync_core',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_TEST'
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ ],
+ 'export_dependent_settings': [
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ ],
+ 'sources': [
+ 'js/js_test_util.cc',
+ 'js/js_test_util.h',
+ 'sessions/test_util.cc',
+ 'sessions/test_util.h',
+ 'syncable/syncable_mock.cc',
+ 'syncable/syncable_mock.h',
+ 'test/callback_counter.h',
+ 'test/engine/fake_model_worker.cc',
+ 'test/engine/fake_model_worker.h',
+ 'test/engine/fake_sync_scheduler.cc',
+ 'test/engine/fake_sync_scheduler.h',
+ 'test/engine/mock_connection_manager.cc',
+ 'test/engine/mock_connection_manager.h',
+ 'test/engine/syncer_command_test.cc',
+ 'test/engine/syncer_command_test.h',
+ 'test/engine/test_directory_setter_upper.cc',
+ 'test/engine/test_directory_setter_upper.h',
+ 'test/engine/test_id_factory.h',
+ 'test/engine/test_syncable_utils.cc',
+ 'test/engine/test_syncable_utils.h',
+ 'test/fake_encryptor.cc',
+ 'test/fake_encryptor.h',
+ 'test/fake_sync_encryption_handler.h',
+ 'test/fake_sync_encryption_handler.cc',
+ 'test/fake_extensions_activity_monitor.cc',
+ 'test/fake_extensions_activity_monitor.h',
+ 'test/test_transaction_observer.cc',
+ 'test/test_transaction_observer.h',
+ 'test/null_directory_change_delegate.cc',
+ 'test/null_directory_change_delegate.h',
+ 'test/null_transaction_observer.cc',
+ 'test/null_transaction_observer.h',
+ 'test/sessions/test_scoped_session_event_listener.h',
+ 'test/test_directory_backing_store.cc',
+ 'test/test_directory_backing_store.h',
+ 'util/test_unrecoverable_error_handler.cc',
+ 'util/test_unrecoverable_error_handler.h',
+ ],
+ },
+
+ # Test support files for the python sync test server.
+ {
+ 'target_name': 'test_support_sync_testserver',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'include_dirs': [
+ '..',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../net/net.gyp:net_test_support',
+ # The sync test server uses Python modules generated by the sync protos.
+ '../third_party/protobuf/protobuf.gyp:py_proto',
+ 'sync',
+ ],
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../net/net.gyp:net_test_support',
+ ],
+ 'sources': [
+ 'test/local_sync_test_server.cc',
+ 'test/local_sync_test_server.h',
+ ],
+ },
+
+ # Test support files for the 'sync_notifier' target.
+ {
+ 'target_name': 'test_support_sync_notifier',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_TEST'
+ ],
+ 'dependencies': [
+ '../testing/gmock.gyp:gmock',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
+ 'sync',
+ ],
+ 'export_dependent_settings': [
+ '../testing/gmock.gyp:gmock',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
+ 'sync',
+ ],
+ 'sources': [
+ 'notifier/fake_invalidation_state_tracker.cc',
+ 'notifier/fake_invalidation_state_tracker.h',
+ 'notifier/fake_invalidator.cc',
+ 'notifier/fake_invalidator.h',
+ 'notifier/fake_invalidation_handler.cc',
+ 'notifier/fake_invalidation_handler.h',
+ 'notifier/invalidator_test_template.cc',
+ 'notifier/invalidator_test_template.h',
+ 'notifier/object_id_invalidation_map_test_util.cc',
+ 'notifier/object_id_invalidation_map_test_util.h',
+ ],
+ },
+
+ # Test support files for the 'sync_internal_api' target.
+ {
+ 'target_name': 'test_support_sync_internal_api',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_TEST'
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_core',
+ ],
+ 'export_dependent_settings': [
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_core',
+ ],
+ 'sources': [
+ 'internal_api/public/base/invalidation_test_util.cc',
+ 'internal_api/public/base/invalidation_test_util.h',
+ 'internal_api/public/base/model_type_invalidation_map_test_util.cc',
+ 'internal_api/public/base/model_type_invalidation_map_test_util.h',
+ 'internal_api/public/base/model_type_test_util.cc',
+ 'internal_api/public/base/model_type_test_util.h',
+ 'internal_api/public/test/fake_sync_manager.h',
+ 'internal_api/public/test/test_entry_factory.h',
+ 'internal_api/public/test/test_internal_components_factory.h',
+ 'internal_api/public/test/test_user_share.h',
+ 'internal_api/test/fake_sync_manager.cc',
+ 'internal_api/test/test_entry_factory.cc',
+ 'internal_api/test/test_internal_components_factory.cc',
+ 'internal_api/test/test_user_share.cc',
+ ],
+ },
+
+ # Test support files for the 'sync_api' target.
+ {
+ 'target_name': 'test_support_sync_api',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '..',
+ ],
+ 'defines': [
+ 'SYNC_TEST'
+ ],
+ 'dependencies': [
+ '../testing/gmock.gyp:gmock',
+ 'sync',
+ ],
+ 'export_dependent_settings': [
+ '../testing/gmock.gyp:gmock',
+ 'sync',
+ ],
+ 'sources': [
+ 'api/fake_syncable_service.cc',
+ 'api/fake_syncable_service.h',
+ 'api/sync_error_factory_mock.cc',
+ 'api/sync_error_factory_mock.h',
+ ],
+ },
+
+ # Unit tests for the 'sync_core' target. This cannot be a static
+ # library because the unit test files have to be compiled directly
+ # into the executable, so we push the target files to the
+ # depending executable target via direct_dependent_settings.
+ {
+ 'target_name': 'sync_core_tests',
+ 'type': 'none',
+ # We only want unit test executables to include this target.
+ 'suppress_wildcard': 1,
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../sql/sql.gyp:sql',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_core',
+ ],
+ 'conditions': [
+ ['OS=="linux" and chromeos==1', {
+ # Required by get_session_name_unittest.cc on Chrome OS.
+ 'dependencies': [
+ '../chromeos/chromeos.gyp:chromeos',
+ ],
+ }],
+ ],
+ # Propagate all dependencies since the actual compilation
+ # happens in the dependents.
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../sql/sql.gyp:sql',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_core',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ 'internal_api/public/base/enum_set_unittest.cc',
+ 'internal_api/public/base/model_type_invalidation_map_unittest.cc',
+ 'internal_api/public/base/node_ordinal_unittest.cc',
+ 'internal_api/public/base/ordinal_unittest.cc',
+ 'internal_api/public/base/unique_position_unittest.cc',
+ 'internal_api/public/engine/model_safe_worker_unittest.cc',
+ 'internal_api/public/util/immutable_unittest.cc',
+ 'internal_api/public/util/weak_handle_unittest.cc',
+ 'engine/apply_control_data_updates_unittest.cc',
+ 'engine/apply_updates_and_resolve_conflicts_command_unittest.cc',
+ 'engine/backoff_delay_provider_unittest.cc',
+ 'engine/build_commit_command_unittest.cc',
+ 'engine/download_updates_command_unittest.cc',
+ 'engine/model_changing_syncer_command_unittest.cc',
+ 'engine/process_commit_response_command_unittest.cc',
+ 'engine/process_updates_command_unittest.cc',
+ 'engine/store_timestamps_command_unittest.cc',
+ 'engine/sync_session_job_unittest.cc',
+ 'engine/sync_scheduler_unittest.cc',
+ 'engine/sync_scheduler_whitebox_unittest.cc',
+ 'engine/syncer_proto_util_unittest.cc',
+ 'engine/syncer_unittest.cc',
+ 'engine/throttled_data_type_tracker_unittest.cc',
+ 'engine/traffic_recorder_unittest.cc',
+ 'js/js_arg_list_unittest.cc',
+ 'js/js_event_details_unittest.cc',
+ 'js/sync_js_controller_unittest.cc',
+ 'protocol/proto_enum_conversions_unittest.cc',
+ 'protocol/proto_value_conversions_unittest.cc',
+ 'sessions/ordered_commit_set_unittest.cc',
+ 'sessions/status_controller_unittest.cc',
+ 'sessions/sync_session_unittest.cc',
+ 'syncable/directory_backing_store_unittest.cc',
+ 'syncable/model_type_unittest.cc',
+ 'syncable/nigori_util_unittest.cc',
+ 'syncable/syncable_enum_conversions_unittest.cc',
+ 'syncable/syncable_id_unittest.cc',
+ 'syncable/syncable_unittest.cc',
+ 'syncable/syncable_util_unittest.cc',
+ 'util/cryptographer_unittest.cc',
+ 'util/data_encryption_win_unittest.cc',
+ 'util/data_type_histogram_unittest.cc',
+ 'util/get_session_name_unittest.cc',
+ 'util/nigori_unittest.cc',
+ 'util/protobuf_unittest.cc',
+ ],
+ 'conditions': [
+ ['OS == "ios" and coverage != 0', {
+ 'sources!': [
+ # These sources can't be built with coverage due to a toolchain
+ # bug: http://openradar.appspot.com/radar?id=1499403
+ 'engine/syncer_unittest.cc',
+
+ # These tests crash when run with coverage turned on due to an
+ # issue with llvm_gcda_increment_indirect_counter:
+ # http://crbug.com/156058
+ 'syncable/directory_backing_store_unittest.cc',
+ ],
+ }],
+ ],
+ },
+ },
+
+ # Unit tests for the 'sync_notifier' target. This cannot be a static
+ # library because the unit test files have to be compiled directly
+ # into the executable, so we push the target files to the
+ # depending executable target via direct_dependent_settings.
+ {
+ 'target_name': 'sync_notifier_tests',
+ 'type': 'none',
+ # We only want unit test executables to include this target.
+ 'suppress_wildcard': 1,
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:notifier_test_util',
+ '../net/net.gyp:net_test_support',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
+ '../third_party/libjingle/libjingle.gyp:libjingle',
+ 'sync',
+ 'test_support_sync_notifier',
+ ],
+ # Propagate all dependencies since the actual compilation
+ # happens in the dependents.
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:notifier_test_util',
+ '../net/net.gyp:net_test_support',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
+ '../third_party/libjingle/libjingle.gyp:libjingle',
+ 'sync',
+ 'test_support_sync_notifier',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ 'notifier/invalidator_factory_unittest.cc',
+ ],
+ 'conditions': [
+ ['OS != "android"', {
+ 'sources': [
+ 'notifier/ack_tracker_unittest.cc',
+ 'notifier/fake_invalidator_unittest.cc',
+ 'notifier/invalidation_notifier_unittest.cc',
+ 'notifier/invalidator_registrar_unittest.cc',
+ 'notifier/non_blocking_invalidator_unittest.cc',
+ 'notifier/p2p_invalidator_unittest.cc',
+ 'notifier/push_client_channel_unittest.cc',
+ 'notifier/registration_manager_unittest.cc',
+ 'notifier/sync_invalidation_listener_unittest.cc',
+ 'notifier/sync_system_resources_unittest.cc',
+ ],
+ }],
+ ],
+ },
+ },
+
+ # Unit tests for the 'sync_internal_api' target. This cannot be a static
+ # library because the unit test files have to be compiled directly
+ # into the executable, so we push the target files to the
+ # depending executable target via direct_dependent_settings.
+ {
+ 'target_name': 'sync_internal_api_tests',
+ 'type': 'none',
+ # We only want unit test executables to include this target.
+ 'suppress_wildcard': 1,
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../net/net.gyp:net',
+ '../net/net.gyp:net_test_support',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_internal_api',
+ ],
+ # Propagate all dependencies since the actual compilation
+ # happens in the dependents.
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../net/net.gyp:net',
+ '../net/net.gyp:net_test_support',
+ '../testing/gmock.gyp:gmock',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_internal_api',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ 'internal_api/debug_info_event_listener_unittest.cc',
+ 'internal_api/http_bridge_unittest.cc',
+ 'internal_api/js_mutation_event_observer_unittest.cc',
+ 'internal_api/js_sync_encryption_handler_observer_unittest.cc',
+ 'internal_api/js_sync_manager_observer_unittest.cc',
+ 'internal_api/public/change_record_unittest.cc',
+ 'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
+ 'internal_api/public/sessions/sync_source_info_unittest.cc',
+ 'internal_api/syncapi_server_connection_manager_unittest.cc',
+ 'internal_api/sync_encryption_handler_impl_unittest.cc',
+ 'internal_api/sync_manager_impl_unittest.cc',
+ ],
+ 'conditions': [
+ ['OS == "ios"', {
+ 'sources!': [
+ 'internal_api/http_bridge_unittest.cc',
+ ],
+ }],
+ ],
+ },
+ },
+
+ # Unit tests for the 'sync_api' target. This cannot be a static
+ # library because the unit test files have to be compiled directly
+ # into the executable, so we push the target files to the
+ # depending executable target via direct_dependent_settings.
+ {
+ 'target_name': 'sync_api_tests',
+ 'type': 'none',
+ # We only want unit test executables to include this target.
+ 'suppress_wildcard': 1,
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_internal_api',
+ ],
+ # Propagate all dependencies since the actual compilation
+ # happens in the dependents.
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../testing/gtest.gyp:gtest',
+ 'sync',
+ 'test_support_sync_internal_api',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ 'api/sync_change_unittest.cc',
+ 'api/sync_error_unittest.cc',
+ 'api/sync_merge_result_unittest.cc',
+ ],
+ },
+ },
+
+ # The unit test executable for sync tests.
+ {
+ 'target_name': 'sync_unit_tests',
+ 'type': '<(gtest_target_type)',
+ # Typed-parametrized tests generate exit-time destructors.
+ 'variables': { 'enable_wexit_time_destructors': 0, },
+ 'defines': [
+ 'SYNC_TEST',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:run_all_unittests',
+ 'sync_api_tests',
+ 'sync_core_tests',
+ 'sync_internal_api_tests',
+ 'sync_notifier_tests',
+ ],
+ 'conditions': [
+ # TODO(akalin): This is needed because histogram.cc uses
+ # leak_annotations.h, which pulls this in. Make 'base'
+ # propagate this dependency.
+ ['OS=="linux" and linux_use_tcmalloc==1', {
+ 'dependencies': [
+ '../base/allocator/allocator.gyp:allocator',
+ ],
+ }],
+ ['OS == "android" and gtest_target_type == "shared_library"', {
+ 'dependencies': [
+ '../testing/android/native_test.gyp:native_test_native_code',
+ ],
+ }],
+ ],
+ },
+ ],
+ 'conditions': [
+ ['OS != "ios"', {
+ 'targets': [
+ {
+ 'target_name': 'sync_tools_helper',
+ 'type': 'static_library',
+ 'defines': [
+ 'SYNC_IMPLEMENTATION',
+ ],
+ 'include_dirs': [
+ '..',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ 'sync',
+ ],
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ 'sync',
+ ],
+ 'sources': [
+ 'tools/null_invalidation_state_tracker.cc',
+ 'tools/null_invalidation_state_tracker.h',
+ ],
+ },
+
+ # A tool that can be used to launch a python sync server instance.
+ {
+ 'target_name': 'run_sync_testserver',
+ 'type': 'executable',
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../base/base.gyp:test_support_base',
+ '../net/net.gyp:net_test_support',
+ '../testing/gtest.gyp:gtest',
+ 'test_support_sync_testserver',
+ ],
+ 'sources': [
+ 'tools/testserver/run_sync_testserver.cc',
+ ],
+ },
+
+ # A tool to listen to sync notifications and print them out.
+ {
+ 'target_name': 'sync_listen_notifications',
+ 'type': 'executable',
+ 'defines': [
+ 'SYNC_TEST',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:notifier',
+ '../net/net.gyp:net',
+ '../net/net.gyp:net_test_support',
+ 'sync',
+ 'sync_tools_helper',
+ ],
+ 'sources': [
+ 'tools/sync_listen_notifications.cc',
+ ],
+ },
+
+ # A standalone command-line sync client.
+ {
+ 'target_name': 'sync_client',
+ 'type': 'executable',
+ 'defines': [
+ 'SYNC_TEST',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:notifier',
+ '../net/net.gyp:net',
+ '../net/net.gyp:net_test_support',
+ 'sync',
+ 'sync_tools_helper',
+ 'test_support_sync_core'
+ ],
+ 'sources': [
+ 'tools/sync_client.cc',
+ ],
+ },
+ ],
+ }],
+ ['OS == "android"', {
+ 'targets': [
+ {
+ 'target_name': 'sync_java',
+ 'type': 'none',
+ 'variables': {
+ 'package_name': 'sync',
+ 'java_in_dir': '../sync/android/java',
+ },
+ 'dependencies': [
+ '../base/base.gyp:base_java',
+ '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
+ '../third_party/guava/guava.gyp:guava_javalib',
+ '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
+ ],
+ 'includes': [ '../build/java.gypi' ],
+ },
+ {
+ 'target_name': 'sync_javatests',
+ 'type': 'none',
+ 'variables': {
+ 'package_name': 'sync_javatests',
+ 'java_in_dir': '../sync/android/javatests',
+ },
+ 'dependencies': [
+ 'sync_java',
+ '../base/base.gyp:base_java_test_support',
+ ],
+ 'includes': [ '../build/java.gypi' ],
+ },
+ ],
+ }],
+
+ # Special target to wrap a gtest_target_type==shared_library
+ # sync_unit_tests into an android apk for execution.
+ ['OS == "android" and gtest_target_type == "shared_library"', {
+ 'targets': [
+ {
+ 'target_name': 'sync_unit_tests_apk',
+ 'type': 'none',
+ 'dependencies': [
+ 'sync_unit_tests',
+ ],
+ 'variables': {
+ 'test_suite_name': 'sync_unit_tests',
+ 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit_tests<(SHARED_LIB_SUFFIX)',
+ },
+ 'includes': [ '../build/apk_test.gypi' ],
+ },
+ ],
+ }],
+ ],
+}
diff --git a/sync/syncable/syncable_base_transaction.cc b/sync/syncable/syncable_base_transaction.cc
index 0404d94..d068bb9 100644
--- a/sync/syncable/syncable_base_transaction.cc
+++ b/sync/syncable/syncable_base_transaction.cc
@@ -10,6 +10,14 @@
namespace syncer {
namespace syncable {
+Directory* BaseTransaction::directory() const {
+ return directory_;
+}
+
+Id BaseTransaction::root_id() const {
+ return Id();
+}
+
void BaseTransaction::Lock() {
TRACE_EVENT2("sync_lock_contention", "AcquireLock",
"src_file", from_here_.file_name(),
diff --git a/sync/syncable/syncable_base_transaction.h b/sync/syncable/syncable_base_transaction.h
index 763f68d..e15a38b 100644
--- a/sync/syncable/syncable_base_transaction.h
+++ b/sync/syncable/syncable_base_transaction.h
@@ -31,10 +31,10 @@ enum WriterTag {
// Make sure to update this if you update WriterTag.
std::string WriterTagToString(WriterTag writer_tag);
-class SYNC_EXPORT_PRIVATE BaseTransaction {
+class SYNC_EXPORT BaseTransaction {
public:
- inline Directory* directory() const { return directory_; }
- inline Id root_id() const { return Id(); }
+ Directory* directory() const;
+ Id root_id() const;
virtual ~BaseTransaction();
diff --git a/sync/syncable/syncable_delete_journal.h b/sync/syncable/syncable_delete_journal.h
index 7d4224f..a4bf9ce 100644
--- a/sync/syncable/syncable_delete_journal.h
+++ b/sync/syncable/syncable_delete_journal.h
@@ -9,6 +9,7 @@
#include "base/gtest_prod_util.h"
#include "base/synchronization/lock.h"
+#include "sync/base/sync_export.h"
#include "sync/syncable/metahandle_set.h"
#include "sync/syncable/syncable-inl.h"
@@ -25,7 +26,7 @@ typedef std::set<const EntryKernel*, LessField<IdField, ID> > JournalIndex;
// DeleteJournal is thread-safe and can be accessed on any thread. Has to hold
// a valid transaction object when calling methods of DeleteJournal, thus each
// method requires a non-null |trans| parameter.
-class DeleteJournal {
+class SYNC_EXPORT_PRIVATE DeleteJournal {
public:
FRIEND_TEST_ALL_PREFIXES(SyncableDirectoryTest, ManageDeleteJournals);
diff --git a/sync/syncable/syncable_read_transaction.h b/sync/syncable/syncable_read_transaction.h
index ecaf59b..2b9729d 100644
--- a/sync/syncable/syncable_read_transaction.h
+++ b/sync/syncable/syncable_read_transaction.h
@@ -13,7 +13,7 @@ class ReadTransaction;
namespace syncable {
// Locks db in constructor, unlocks in destructor.
-class SYNC_EXPORT_PRIVATE ReadTransaction : public BaseTransaction {
+class SYNC_EXPORT ReadTransaction : public BaseTransaction {
public:
ReadTransaction(const tracked_objects::Location& from_here,
Directory* directory);
diff --git a/sync/syncable/syncable_write_transaction.h b/sync/syncable/syncable_write_transaction.h
index ea52d45..0debaa5 100644
--- a/sync/syncable/syncable_write_transaction.h
+++ b/sync/syncable/syncable_write_transaction.h
@@ -15,7 +15,7 @@ namespace syncable {
SYNC_EXPORT extern const int64 kInvalidTransactionVersion;
// Locks db in constructor, unlocks in destructor.
-class SYNC_EXPORT_PRIVATE WriteTransaction : public BaseTransaction {
+class SYNC_EXPORT WriteTransaction : public BaseTransaction {
public:
WriteTransaction(const tracked_objects::Location& from_here,
WriterTag writer, Directory* directory);