| Index: components/invalidation.gypi
 | 
| diff --git a/components/invalidation.gypi b/components/invalidation.gypi
 | 
| index 35fc77a61f80972f36013ad06c3800113789e0e4..81e255e465501906eef0a6ed13cf3aecf02527f8 100644
 | 
| --- a/components/invalidation.gypi
 | 
| +++ b/components/invalidation.gypi
 | 
| @@ -5,101 +5,121 @@
 | 
|  {
 | 
|    'targets': [
 | 
|      {
 | 
| -      # GN version: //components/invalidation
 | 
| -      'target_name': 'invalidation',
 | 
| +      # GN version: //components/invalidation/public
 | 
| +      'target_name': 'invalidation_public',
 | 
|        'type': 'static_library',
 | 
|        'dependencies': [
 | 
|          '../base/base.gyp:base',
 | 
| -        '../base/base.gyp:base_prefs',
 | 
| -        '../google_apis/google_apis.gyp:google_apis',
 | 
| -        '../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',
 | 
| +      ],
 | 
| +      'export_dependent_settings': [
 | 
| +        '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
 | 
| +      ],
 | 
| +      'include_dirs': [
 | 
| +        '..',
 | 
| +      ],
 | 
| +      'sources': [
 | 
| +        # Note: sources list duplicated in GN build.
 | 
| +        'invalidation/public/ack_handle.cc',
 | 
| +        'invalidation/public/ack_handle.h',
 | 
| +        'invalidation/public/ack_handler.cc',
 | 
| +        'invalidation/public/ack_handler.h',
 | 
| +        'invalidation/public/invalidation.cc',
 | 
| +        'invalidation/public/invalidation.h',
 | 
| +        'invalidation/public/invalidation_export.h',
 | 
| +        'invalidation/public/invalidation_handler.cc',
 | 
| +        'invalidation/public/invalidation_handler.h',
 | 
| +        'invalidation/public/invalidation_service.h',
 | 
| +        'invalidation/public/invalidation_util.cc',
 | 
| +        'invalidation/public/invalidation_util.h',
 | 
| +        'invalidation/public/invalidator_state.cc',
 | 
| +        'invalidation/public/invalidator_state.h',
 | 
| +        'invalidation/public/object_id_invalidation_map.cc',
 | 
| +        'invalidation/public/object_id_invalidation_map.h',
 | 
| +        'invalidation/public/single_object_invalidation_set.cc',
 | 
| +        'invalidation/public/single_object_invalidation_set.h',
 | 
| +      ],
 | 
| +    },
 | 
| +    {
 | 
| +      # GN version: //components/invalidation/impl
 | 
| +      'target_name': 'invalidation_impl',
 | 
| +      'type': 'static_library',
 | 
| +      'dependencies': [
 | 
| +        'invalidation_public',
 | 
| +        '../base/base.gyp:base',
 | 
| +        '../base/base.gyp:base_i18n',
 | 
| +        '../base/base.gyp:base_prefs',
 | 
| +        '../google_apis/google_apis.gyp:google_apis',
 | 
| +        '../jingle/jingle.gyp:notifier',
 | 
|          'gcm_driver',
 | 
|          'keyed_service_core',
 | 
|          'pref_registry',
 | 
|          'signin_core_browser',
 | 
|        ],
 | 
|        'export_dependent_settings': [
 | 
| -        '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
 | 
| +        'invalidation_public',
 | 
|        ],
 | 
|        'include_dirs': [
 | 
|          '..',
 | 
|        ],
 | 
|        'sources': [
 | 
|          # Note: sources list duplicated in GN build.
 | 
| -        'invalidation/ack_handle.cc',
 | 
| -        'invalidation/ack_handle.h',
 | 
| -        'invalidation/ack_handler.cc',
 | 
| -        'invalidation/ack_handler.h',
 | 
| -        'invalidation/invalidation.cc',
 | 
| -        'invalidation/invalidation.h',
 | 
| -        'invalidation/invalidation_handler.cc',
 | 
| -        'invalidation/invalidation_handler.h',
 | 
| -        'invalidation/invalidation_logger.cc',
 | 
| -        'invalidation/invalidation_logger.h',
 | 
| -        'invalidation/invalidation_logger_observer.h',
 | 
| -        'invalidation/invalidation_prefs.cc',
 | 
| -        'invalidation/invalidation_prefs.h',
 | 
| -        'invalidation/invalidation_service.h',
 | 
| -        'invalidation/invalidation_service_util.cc',
 | 
| -        'invalidation/invalidation_service_util.h',
 | 
| -        'invalidation/invalidation_state_tracker.cc',
 | 
| -        'invalidation/invalidation_state_tracker.h',
 | 
| -        'invalidation/invalidation_switches.cc',
 | 
| -        'invalidation/invalidation_switches.h',
 | 
| -        'invalidation/invalidation_util.cc',
 | 
| -        'invalidation/invalidation_util.h',
 | 
| -        'invalidation/invalidator.cc',
 | 
| -        'invalidation/invalidator.h',
 | 
| -        'invalidation/invalidator_registrar.cc',
 | 
| -        'invalidation/invalidator_registrar.h',
 | 
| -        'invalidation/invalidator_state.cc',
 | 
| -        'invalidation/invalidator_state.h',
 | 
| -        'invalidation/invalidator_storage.cc',
 | 
| -        'invalidation/invalidator_storage.h',
 | 
| -        'invalidation/mock_ack_handler.cc',
 | 
| -        'invalidation/mock_ack_handler.h',
 | 
| -        'invalidation/object_id_invalidation_map.cc',
 | 
| -        'invalidation/object_id_invalidation_map.h',
 | 
| -        'invalidation/profile_invalidation_provider.cc',
 | 
| -        'invalidation/profile_invalidation_provider.h',
 | 
| -        'invalidation/single_object_invalidation_set.cc',
 | 
| -        'invalidation/single_object_invalidation_set.h',
 | 
| -        'invalidation/unacked_invalidation_set.cc',
 | 
| -        'invalidation/unacked_invalidation_set.h',
 | 
| +        'invalidation/impl/invalidation_logger.cc',
 | 
| +        'invalidation/impl/invalidation_logger.h',
 | 
| +        'invalidation/impl/invalidation_logger_observer.h',
 | 
| +        'invalidation/impl/invalidation_prefs.cc',
 | 
| +        'invalidation/impl/invalidation_prefs.h',
 | 
| +        'invalidation/impl/invalidation_service_util.cc',
 | 
| +        'invalidation/impl/invalidation_service_util.h',
 | 
| +        'invalidation/impl/invalidation_state_tracker.cc',
 | 
| +        'invalidation/impl/invalidation_state_tracker.h',
 | 
| +        'invalidation/impl/invalidation_switches.cc',
 | 
| +        'invalidation/impl/invalidation_switches.h',
 | 
| +        'invalidation/impl/invalidator.cc',
 | 
| +        'invalidation/impl/invalidator.h',
 | 
| +        'invalidation/impl/invalidator_registrar.cc',
 | 
| +        'invalidation/impl/invalidator_registrar.h',
 | 
| +        'invalidation/impl/invalidator_storage.cc',
 | 
| +        'invalidation/impl/invalidator_storage.h',
 | 
| +        'invalidation/impl/mock_ack_handler.cc',
 | 
| +        'invalidation/impl/mock_ack_handler.h',
 | 
| +        'invalidation/impl/profile_invalidation_provider.cc',
 | 
| +        'invalidation/impl/profile_invalidation_provider.h',
 | 
| +        'invalidation/impl/unacked_invalidation_set.cc',
 | 
| +        'invalidation/impl/unacked_invalidation_set.h',
 | 
|        ],
 | 
|        'conditions': [
 | 
|            ['OS != "android"', {
 | 
|              'sources': [
 | 
|                # Note: sources list duplicated in GN build.
 | 
| -              'invalidation/gcm_invalidation_bridge.cc',
 | 
| -              'invalidation/gcm_invalidation_bridge.h',
 | 
| -              'invalidation/gcm_network_channel.cc',
 | 
| -              'invalidation/gcm_network_channel.h',
 | 
| -              'invalidation/gcm_network_channel_delegate.h',
 | 
| -              'invalidation/invalidation_notifier.cc',
 | 
| -              'invalidation/invalidation_notifier.h',
 | 
| -              'invalidation/non_blocking_invalidator.cc',
 | 
| -              'invalidation/non_blocking_invalidator.h',
 | 
| -              'invalidation/notifier_reason_util.cc',
 | 
| -              'invalidation/notifier_reason_util.h',
 | 
| -              'invalidation/p2p_invalidator.cc',
 | 
| -              'invalidation/p2p_invalidator.h',
 | 
| -              'invalidation/push_client_channel.cc',
 | 
| -              'invalidation/push_client_channel.h',
 | 
| -              'invalidation/registration_manager.cc',
 | 
| -              'invalidation/registration_manager.h',
 | 
| -              'invalidation/state_writer.h',
 | 
| -              'invalidation/sync_invalidation_listener.cc',
 | 
| -              'invalidation/sync_invalidation_listener.h',
 | 
| -              'invalidation/sync_system_resources.cc',
 | 
| -              'invalidation/sync_system_resources.h',
 | 
| -              'invalidation/ticl_invalidation_service.cc',
 | 
| -              'invalidation/ticl_invalidation_service.h',
 | 
| -              'invalidation/ticl_settings_provider.cc',
 | 
| -              'invalidation/ticl_settings_provider.h',
 | 
| +              'invalidation/impl/gcm_invalidation_bridge.cc',
 | 
| +              'invalidation/impl/gcm_invalidation_bridge.h',
 | 
| +              'invalidation/impl/gcm_network_channel.cc',
 | 
| +              'invalidation/impl/gcm_network_channel.h',
 | 
| +              'invalidation/impl/gcm_network_channel_delegate.h',
 | 
| +              'invalidation/impl/invalidation_notifier.cc',
 | 
| +              'invalidation/impl/invalidation_notifier.h',
 | 
| +              'invalidation/impl/non_blocking_invalidator.cc',
 | 
| +              'invalidation/impl/non_blocking_invalidator.h',
 | 
| +              'invalidation/impl/notifier_reason_util.cc',
 | 
| +              'invalidation/impl/notifier_reason_util.h',
 | 
| +              'invalidation/impl/p2p_invalidator.cc',
 | 
| +              'invalidation/impl/p2p_invalidator.h',
 | 
| +              'invalidation/impl/push_client_channel.cc',
 | 
| +              'invalidation/impl/push_client_channel.h',
 | 
| +              'invalidation/impl/registration_manager.cc',
 | 
| +              'invalidation/impl/registration_manager.h',
 | 
| +              'invalidation/impl/state_writer.h',
 | 
| +              'invalidation/impl/sync_invalidation_listener.cc',
 | 
| +              'invalidation/impl/sync_invalidation_listener.h',
 | 
| +              'invalidation/impl/sync_system_resources.cc',
 | 
| +              'invalidation/impl/sync_system_resources.h',
 | 
| +              'invalidation/impl/ticl_invalidation_service.cc',
 | 
| +              'invalidation/impl/ticl_invalidation_service.h',
 | 
| +              'invalidation/impl/ticl_settings_provider.cc',
 | 
| +              'invalidation/impl/ticl_settings_provider.h',
 | 
|              ],
 | 
|            }],
 | 
|          ['OS == "android"', {
 | 
| @@ -107,15 +127,14 @@
 | 
|              'invalidation_jni_headers',
 | 
|            ],
 | 
|            'sources': [
 | 
| -            'invalidation/android/component_jni_registrar.cc',
 | 
| -            'invalidation/android/component_jni_registrar.h',
 | 
| -            'invalidation/invalidation_service_android.cc',
 | 
| -            'invalidation/invalidation_service_android.h',
 | 
| +            'invalidation/impl/android/component_jni_registrar.cc',
 | 
| +            'invalidation/impl/android/component_jni_registrar.h',
 | 
| +            'invalidation/impl/invalidation_service_android.cc',
 | 
| +            'invalidation/impl/invalidation_service_android.h',
 | 
|            ],
 | 
|          }],
 | 
|        ],
 | 
|      },
 | 
| -
 | 
|      {
 | 
|        # GN version: //components/invalidation:test_support
 | 
|        'target_name': 'invalidation_test_support',
 | 
| @@ -137,29 +156,29 @@
 | 
|        ],
 | 
|        'sources': [
 | 
|          # Note: sources list duplicated in GN build.
 | 
| -        'invalidation/fake_invalidation_handler.cc',
 | 
| -        'invalidation/fake_invalidation_handler.h',
 | 
| -        'invalidation/fake_invalidation_state_tracker.cc',
 | 
| -        'invalidation/fake_invalidation_state_tracker.h',
 | 
| -        'invalidation/fake_invalidator.cc',
 | 
| -        'invalidation/fake_invalidator.h',
 | 
| -        'invalidation/invalidation_service_test_template.cc',
 | 
| -        'invalidation/invalidation_service_test_template.h',
 | 
| -        'invalidation/invalidation_test_util.cc',
 | 
| -        'invalidation/invalidation_test_util.h',
 | 
| -        'invalidation/invalidator_test_template.cc',
 | 
| -        'invalidation/invalidator_test_template.h',
 | 
| -        'invalidation/object_id_invalidation_map_test_util.cc',
 | 
| -        'invalidation/object_id_invalidation_map_test_util.h',
 | 
| -        'invalidation/unacked_invalidation_set_test_util.cc',
 | 
| -        'invalidation/unacked_invalidation_set_test_util.h',
 | 
| +        'invalidation/impl/fake_invalidation_handler.cc',
 | 
| +        'invalidation/impl/fake_invalidation_handler.h',
 | 
| +        'invalidation/impl/fake_invalidation_state_tracker.cc',
 | 
| +        'invalidation/impl/fake_invalidation_state_tracker.h',
 | 
| +        'invalidation/impl/fake_invalidator.cc',
 | 
| +        'invalidation/impl/fake_invalidator.h',
 | 
| +        'invalidation/impl/invalidation_service_test_template.cc',
 | 
| +        'invalidation/impl/invalidation_service_test_template.h',
 | 
| +        'invalidation/impl/invalidation_test_util.cc',
 | 
| +        'invalidation/impl/invalidation_test_util.h',
 | 
| +        'invalidation/impl/invalidator_test_template.cc',
 | 
| +        'invalidation/impl/invalidator_test_template.h',
 | 
| +        'invalidation/impl/object_id_invalidation_map_test_util.cc',
 | 
| +        'invalidation/impl/object_id_invalidation_map_test_util.h',
 | 
| +        'invalidation/impl/unacked_invalidation_set_test_util.cc',
 | 
| +        'invalidation/impl/unacked_invalidation_set_test_util.h',
 | 
|        ],
 | 
|        'conditions': [
 | 
|            ['OS != "android"', {
 | 
|              'sources': [
 | 
|                # Note: sources list duplicated in GN build.
 | 
| -              'invalidation/p2p_invalidation_service.cc',
 | 
| -              'invalidation/p2p_invalidation_service.h',
 | 
| +              'invalidation/impl/p2p_invalidation_service.cc',
 | 
| +              'invalidation/impl/p2p_invalidation_service.h',
 | 
|              ],
 | 
|            }],
 | 
|            ['OS == "android"', {
 | 
| @@ -183,7 +202,7 @@
 | 
|              '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
 | 
|            ],
 | 
|            'variables': {
 | 
| -            'java_in_dir': 'invalidation/android/java',
 | 
| +            'java_in_dir': 'invalidation/impl/android/java',
 | 
|            },
 | 
|            'includes': [ '../build/java.gypi' ],
 | 
|          },
 | 
| @@ -191,7 +210,7 @@
 | 
|            'target_name': 'invalidation_proto_java',
 | 
|            'type': 'none',
 | 
|            'sources': [
 | 
| -            'invalidation/android/proto/serialized_invalidation.proto',
 | 
| +            'invalidation/impl/android/proto/serialized_invalidation.proto',
 | 
|            ],
 | 
|            'includes': [ '../build/protoc_java.gypi' ],
 | 
|          },
 | 
| @@ -203,7 +222,7 @@
 | 
|              '../base/base.gyp:base_java_test_support',
 | 
|            ],
 | 
|            'variables': {
 | 
| -            'java_in_dir': 'invalidation/android/javatests',
 | 
| +            'java_in_dir': 'invalidation/impl/android/javatests',
 | 
|            },
 | 
|            'includes': [ '../build/java.gypi' ],
 | 
|          },
 | 
| @@ -219,7 +238,7 @@
 | 
|            'variables': {
 | 
|              'main_class': 'org.chromium.testing.local.JunitTestMain',
 | 
|              'src_paths': [
 | 
| -              'invalidation/android/junit/'
 | 
| +              'invalidation/impl/android/junit/'
 | 
|              ],
 | 
|            },
 | 
|            'includes': [ '../build/host_jar.gypi' ],
 | 
| @@ -228,7 +247,7 @@
 | 
|            'target_name': 'invalidation_jni_headers',
 | 
|            'type': 'none',
 | 
|            'sources': [
 | 
| -            'invalidation/android/java/src/org/chromium/components/invalidation/InvalidationService.java',
 | 
| +            'invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java',
 | 
|            ],
 | 
|            'variables': {
 | 
|              'jni_gen_package': 'components/invalidation',
 | 
| 
 |