[Sync] Create //components/sync/device_info.

This CL creates a new sync subfolder for all the device_info code. It is
still co-dependent on driver/, but since conceptually device_info is its
own data type it should get its own folder.

BUG=638086
TBR=jam

Review-Url: https://codereview.chromium.org/2250033002
Cr-Commit-Position: refs/heads/master@{#412301}
diff --git a/chrome/browser/extensions/api/sessions/sessions_apitest.cc b/chrome/browser/extensions/api/sessions/sessions_apitest.cc
index c60ebd8c..05e190d 100644
--- a/chrome/browser/extensions/api/sessions/sessions_apitest.cc
+++ b/chrome/browser/extensions/api/sessions/sessions_apitest.cc
@@ -31,7 +31,7 @@
 #include "components/sync/api/fake_sync_change_processor.h"
 #include "components/sync/api/sync_error_factory_mock.h"
 #include "components/sync/core/attachments/attachment_service_proxy_for_test.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_api_component_factory_mock.h"
 #include "components/sync_sessions/sessions_sync_manager.h"
 #include "extensions/browser/api_test_utils.h"
diff --git a/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper.cc b/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper.cc
index 7b392ad..602195e2 100644
--- a/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper.cc
@@ -13,7 +13,7 @@
 #include "chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/crx_file/id_util.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 
 using base::DictionaryValue;
 using base::Value;
diff --git a/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper_unittest.cc b/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper_unittest.cc
index b8d00145..9396b873 100644
--- a/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper_unittest.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/id_mapping_helper_unittest.cc
@@ -10,7 +10,7 @@
 #include "base/guid.h"
 #include "base/memory/scoped_vector.h"
 #include "base/values.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.cc b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.cc
index 14b7f96..53e7dd7 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api.cc
@@ -14,8 +14,8 @@
 #include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "chrome/common/extensions/api/signed_in_devices.h"
 #include "components/browser_sync/browser/profile_sync_service.h"
-#include "components/sync/driver/device_info_tracker.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/device_info_tracker.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "extensions/browser/extension_prefs.h"
 
 using base::DictionaryValue;
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api_unittest.cc b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api_unittest.cc
index 8170b85..f281ecd0a 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api_unittest.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_api_unittest.cc
@@ -19,8 +19,8 @@
 #include "chrome/browser/sync/profile_sync_test_util.h"
 #include "components/browser_sync/browser/profile_sync_service_mock.h"
 #include "components/prefs/pref_service.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "extensions/common/extension.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
index aa96a66..bcf038bf 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
@@ -19,7 +19,7 @@
 #include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "chrome/common/extensions/api/signed_in_devices.h"
 #include "components/browser_sync/browser/profile_sync_service.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 #include "extensions/browser/event_router.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/common/extension.h"
diff --git a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
index 050c5138..8bc591b7 100644
--- a/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
+++ b/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_vector.h"
 #include "base/scoped_observer.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "extensions/browser/browser_context_keyed_api_factory.h"
 #include "extensions/browser/event_router.h"
 #include "extensions/browser/extension_registry_observer.h"
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index 968ad63..e9e6a72a 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -61,7 +61,7 @@
 #include "components/omnibox/browser/omnibox_metrics_provider.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
-#include "components/sync/driver/device_count_metrics_provider.h"
+#include "components/sync/device_info/device_count_metrics_provider.h"
 #include "components/version_info/version_info.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/histogram_fetcher.h"
diff --git a/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc b/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
index d54c62e..7119cb4 100644
--- a/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
+++ b/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
@@ -27,8 +27,8 @@
 #include "components/sync/api/attachments/attachment_id.h"
 #include "components/sync/api/sync_error_factory_mock.h"
 #include "components/sync/core/attachments/attachment_service_proxy_for_test.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_api_component_factory.h"
 #include "components/sync_sessions/sync_sessions_client.h"
 #include "components/sync_sessions/synced_tab_delegate.h"
diff --git a/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm b/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm
index 6e79e5d6..443eb44 100644
--- a/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm
@@ -27,7 +27,7 @@
 #include "components/browser_sync/browser/profile_sync_service.h"
 #include "components/sync/api/fake_sync_change_processor.h"
 #include "components/sync/api/sync_error_factory_mock.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_client.h"
 #include "components/sync/driver/sync_prefs.h"
 #include "components/sync_sessions/fake_sync_sessions_client.h"
diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
index 70af651..37fb9613 100644
--- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
@@ -34,7 +34,7 @@
 #include "components/sessions/core/session_types.h"
 #include "components/sync/api/fake_sync_change_processor.h"
 #include "components/sync/api/sync_error_factory_mock.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_client.h"
 #include "components/sync/driver/sync_prefs.h"
 #include "components/sync_sessions/sessions_sync_manager.h"
diff --git a/chrome/browser/ui/webui/browsing_history_handler.cc b/chrome/browser/ui/webui/browsing_history_handler.cc
index 770cb5fc..3619109 100644
--- a/chrome/browser/ui/webui/browsing_history_handler.cc
+++ b/chrome/browser/ui/webui/browsing_history_handler.cc
@@ -48,8 +48,8 @@
 #include "components/keyed_service/core/service_access_type.h"
 #include "components/prefs/pref_service.h"
 #include "components/query_parser/snippet.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "components/sync/protocol/history_delete_directive_specifics.pb.h"
 #include "components/sync/protocol/sync_enums.pb.h"
 #include "components/url_formatter/url_formatter.h"
diff --git a/components/browser_sync/browser/profile_sync_components_factory_impl.cc b/components/browser_sync/browser/profile_sync_components_factory_impl.cc
index e4ad0e0..33c6a6b 100644
--- a/components/browser_sync/browser/profile_sync_components_factory_impl.cc
+++ b/components/browser_sync/browser/profile_sync_components_factory_impl.cc
@@ -29,12 +29,12 @@
 #include "components/sync/core/attachments/attachment_service.h"
 #include "components/sync/core/attachments/attachment_service_impl.h"
 #include "components/sync/core/attachments/attachment_uploader_impl.h"
+#include "components/sync/device_info/device_info_data_type_controller.h"
+#include "components/sync/device_info/local_device_info_provider_impl.h"
 #include "components/sync/driver/data_type_manager_impl.h"
-#include "components/sync/driver/device_info_data_type_controller.h"
 #include "components/sync/driver/glue/chrome_report_unrecoverable_error.h"
 #include "components/sync/driver/glue/sync_backend_host.h"
 #include "components/sync/driver/glue/sync_backend_host_impl.h"
-#include "components/sync/driver/local_device_info_provider_impl.h"
 #include "components/sync/driver/proxy_data_type_controller.h"
 #include "components/sync/driver/sync_client.h"
 #include "components/sync/driver/sync_driver_switches.h"
diff --git a/components/browser_sync/browser/profile_sync_service.cc b/components/browser_sync/browser/profile_sync_service.cc
index 8960ff8..de29677 100644
--- a/components/browser_sync/browser/profile_sync_service.cc
+++ b/components/browser_sync/browser/profile_sync_service.cc
@@ -54,13 +54,13 @@
 #include "components/sync/core/shared_model_type_processor.h"
 #include "components/sync/core/shutdown_reason.h"
 #include "components/sync/core/sync_encryption_handler.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/device_info_service.h"
+#include "components/sync/device_info/device_info_sync_service.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "components/sync/driver/backend_migrator.h"
 #include "components/sync/driver/change_processor.h"
 #include "components/sync/driver/data_type_controller.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/device_info_service.h"
-#include "components/sync/driver/device_info_sync_service.h"
-#include "components/sync/driver/device_info_tracker.h"
 #include "components/sync/driver/glue/chrome_report_unrecoverable_error.h"
 #include "components/sync/driver/glue/sync_backend_host.h"
 #include "components/sync/driver/glue/sync_backend_host_impl.h"
diff --git a/components/browser_sync/browser/profile_sync_service.h b/components/browser_sync/browser/profile_sync_service.h
index 4d68f71..e03aceb 100644
--- a/components/browser_sync/browser/profile_sync_service.h
+++ b/components/browser_sync/browser/profile_sync_service.h
@@ -34,12 +34,12 @@
 #include "components/sync/core/shutdown_reason.h"
 #include "components/sync/core/sync_manager_factory.h"
 #include "components/sync/core/user_share.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/data_type_controller.h"
 #include "components/sync/driver/data_type_manager.h"
 #include "components/sync/driver/data_type_manager_observer.h"
 #include "components/sync/driver/data_type_status_table.h"
 #include "components/sync/driver/glue/sync_backend_host.h"
-#include "components/sync/driver/local_device_info_provider.h"
 #include "components/sync/driver/protocol_event_observer.h"
 #include "components/sync/driver/startup_controller.h"
 #include "components/sync/driver/sync_client.h"
diff --git a/components/browser_sync/browser/profile_sync_service_mock.h b/components/browser_sync/browser/profile_sync_service_mock.h
index b003269..1098bd5 100644
--- a/components/browser_sync/browser/profile_sync_service_mock.h
+++ b/components/browser_sync/browser/profile_sync_service_mock.h
@@ -12,9 +12,9 @@
 #include "base/strings/string16.h"
 #include "components/browser_sync/browser/profile_sync_service.h"
 #include "components/sync/base/model_type.h"
+#include "components/sync/device_info/device_info.h"
 #include "components/sync/driver/change_processor.h"
 #include "components/sync/driver/data_type_controller.h"
-#include "components/sync/driver/device_info.h"
 #include "components/sync/protocol/sync_protocol_error.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/components/history/core/browser/history_delete_directives_data_type_controller.h b/components/history/core/browser/history_delete_directives_data_type_controller.h
index 3dbec95..e76115e 100644
--- a/components/history/core/browser/history_delete_directives_data_type_controller.h
+++ b/components/history/core/browser/history_delete_directives_data_type_controller.h
@@ -6,7 +6,7 @@
 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_DELETE_DIRECTIVES_DATA_TYPE_CONTROLLER_H_
 
 #include "base/macros.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/sync_service_observer.h"
 #include "components/sync/driver/ui_data_type_controller.h"
 
diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn
index 7b5291e..91d8904 100644
--- a/components/sync/BUILD.gn
+++ b/components/sync/BUILD.gn
@@ -217,6 +217,22 @@
     "core_impl/syncapi_internal.h",
     "core_impl/syncapi_server_connection_manager.cc",
     "core_impl/syncapi_server_connection_manager.h",
+    "device_info/device_count_metrics_provider.cc",
+    "device_info/device_count_metrics_provider.h",
+    "device_info/device_info.cc",
+    "device_info/device_info.h",
+    "device_info/device_info_data_type_controller.cc",
+    "device_info/device_info_data_type_controller.h",
+    "device_info/device_info_service.cc",
+    "device_info/device_info_service.h",
+    "device_info/device_info_sync_service.cc",
+    "device_info/device_info_sync_service.h",
+    "device_info/device_info_tracker.h",
+    "device_info/device_info_util.cc",
+    "device_info/device_info_util.h",
+    "device_info/local_device_info_provider.h",
+    "device_info/local_device_info_provider_impl.cc",
+    "device_info/local_device_info_provider_impl.h",
     "driver/about_sync_util.cc",
     "driver/about_sync_util.h",
     "driver/backend_data_type_configurer.cc",
@@ -236,19 +252,6 @@
     "driver/data_type_manager_observer.h",
     "driver/data_type_status_table.cc",
     "driver/data_type_status_table.h",
-    "driver/device_count_metrics_provider.cc",
-    "driver/device_count_metrics_provider.h",
-    "driver/device_info.cc",
-    "driver/device_info.h",
-    "driver/device_info_data_type_controller.cc",
-    "driver/device_info_data_type_controller.h",
-    "driver/device_info_service.cc",
-    "driver/device_info_service.h",
-    "driver/device_info_sync_service.cc",
-    "driver/device_info_sync_service.h",
-    "driver/device_info_tracker.h",
-    "driver/device_info_util.cc",
-    "driver/device_info_util.h",
     "driver/directory_data_type_controller.cc",
     "driver/directory_data_type_controller.h",
     "driver/frontend_data_type_controller.cc",
@@ -275,9 +278,6 @@
     "driver/invalidation_adapter.h",
     "driver/invalidation_helper.cc",
     "driver/invalidation_helper.h",
-    "driver/local_device_info_provider.h",
-    "driver/local_device_info_provider_impl.cc",
-    "driver/local_device_info_provider_impl.h",
     "driver/model_association_manager.cc",
     "driver/model_association_manager.h",
     "driver/model_associator.h",
@@ -736,6 +736,8 @@
 static_library("test_support_sync_driver") {
   testonly = true
   sources = [
+    "device_info/local_device_info_provider_mock.cc",
+    "device_info/local_device_info_provider_mock.h",
     "driver/change_processor_mock.cc",
     "driver/change_processor_mock.h",
     "driver/data_type_controller_mock.cc",
@@ -754,8 +756,6 @@
     "driver/frontend_data_type_controller_mock.h",
     "driver/glue/sync_backend_host_mock.cc",
     "driver/glue/sync_backend_host_mock.h",
-    "driver/local_device_info_provider_mock.cc",
-    "driver/local_device_info_provider_mock.h",
     "driver/model_associator_mock.cc",
     "driver/model_associator_mock.h",
     "driver/non_ui_data_type_controller_mock.cc",
@@ -833,21 +833,21 @@
     "core_impl/sync_encryption_handler_impl_unittest.cc",
     "core_impl/sync_manager_impl_unittest.cc",
     "core_impl/syncapi_server_connection_manager_unittest.cc",
+    "device_info/device_count_metrics_provider_unittest.cc",
+    "device_info/device_info_data_type_controller_unittest.cc",
+    "device_info/device_info_service_unittest.cc",
+    "device_info/device_info_sync_service_unittest.cc",
+    "device_info/device_info_util_unittest.cc",
+    "device_info/local_device_info_provider_unittest.cc",
     "driver/about_sync_util_unittest.cc",
     "driver/backend_migrator_unittest.cc",
     "driver/data_type_manager_impl_unittest.cc",
-    "driver/device_count_metrics_provider_unittest.cc",
-    "driver/device_info_data_type_controller_unittest.cc",
-    "driver/device_info_service_unittest.cc",
-    "driver/device_info_sync_service_unittest.cc",
-    "driver/device_info_util_unittest.cc",
     "driver/frontend_data_type_controller_unittest.cc",
     "driver/generic_change_processor_unittest.cc",
     "driver/glue/browser_thread_model_worker_unittest.cc",
     "driver/glue/sync_backend_host_impl_unittest.cc",
     "driver/glue/sync_backend_registrar_unittest.cc",
     "driver/glue/ui_model_worker_unittest.cc",
-    "driver/local_device_info_provider_unittest.cc",
     "driver/model_association_manager_unittest.cc",
     "driver/non_blocking_data_type_controller_unittest.cc",
     "driver/non_ui_data_type_controller_unittest.cc",
diff --git a/components/sync/device_info/DEPS b/components/sync/device_info/DEPS
new file mode 100644
index 0000000..f8cf154
--- /dev/null
+++ b/components/sync/device_info/DEPS
@@ -0,0 +1,10 @@
+include_rules = [
+  "+components/metrics",
+  "+components/sync/api",
+  "+components/sync/base",
+  "+components/sync/core",
+  "+components/sync/driver",
+  "+components/sync/engine",
+  "+components/sync/protocol",
+  "+components/version_info",
+]
diff --git a/components/sync/driver/device_count_metrics_provider.cc b/components/sync/device_info/device_count_metrics_provider.cc
similarity index 88%
rename from components/sync/driver/device_count_metrics_provider.cc
rename to components/sync/device_info/device_count_metrics_provider.cc
index eae31dd..db81975 100644
--- a/components/sync/driver/device_count_metrics_provider.cc
+++ b/components/sync/device_info/device_count_metrics_provider.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_count_metrics_provider.h"
+#include "components/sync/device_info/device_count_metrics_provider.h"
 
 #include <algorithm>
 
 #include "base/metrics/sparse_histogram.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info_tracker.h"
 
 namespace sync_driver {
 
diff --git a/components/sync/driver/device_count_metrics_provider.h b/components/sync/device_info/device_count_metrics_provider.h
similarity index 88%
rename from components/sync/driver/device_count_metrics_provider.h
rename to components/sync/device_info/device_count_metrics_provider.h
index 1bdbba5a..8c1bc2f 100644
--- a/components/sync/driver/device_count_metrics_provider.h
+++ b/components/sync/device_info/device_count_metrics_provider.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_COUNT_METRICS_PROVIDER_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_COUNT_METRICS_PROVIDER_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_COUNT_METRICS_PROVIDER_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_COUNT_METRICS_PROVIDER_H_
 
 #include <memory>
 #include <vector>
@@ -50,4 +50,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_COUNT_METRICS_PROVIDER_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_COUNT_METRICS_PROVIDER_H_
diff --git a/components/sync/driver/device_count_metrics_provider_unittest.cc b/components/sync/device_info/device_count_metrics_provider_unittest.cc
similarity index 92%
rename from components/sync/driver/device_count_metrics_provider_unittest.cc
rename to components/sync/device_info/device_count_metrics_provider_unittest.cc
index 40635f3..3e0d83df 100644
--- a/components/sync/driver/device_count_metrics_provider_unittest.cc
+++ b/components/sync/device_info/device_count_metrics_provider_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_count_metrics_provider.h"
+#include "components/sync/device_info/device_count_metrics_provider.h"
 
 #include <memory>
 #include <string>
@@ -10,8 +10,8 @@
 
 #include "base/bind.h"
 #include "base/test/histogram_tester.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace sync_driver {
diff --git a/components/sync/driver/device_info.cc b/components/sync/device_info/device_info.cc
similarity index 98%
rename from components/sync/driver/device_info.cc
rename to components/sync/device_info/device_info.cc
index e7a7f83..f2c87336 100644
--- a/components/sync/driver/device_info.cc
+++ b/components/sync/device_info/device_info.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 
 #include "base/values.h"
 
diff --git a/components/sync/driver/device_info.h b/components/sync/device_info/device_info.h
similarity index 94%
rename from components/sync/driver/device_info.h
rename to components/sync/device_info/device_info.h
index cc2d7b9..63802077 100644
--- a/components/sync/driver/device_info.h
+++ b/components/sync/device_info/device_info.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_
 
 #include <string>
 
@@ -98,4 +98,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_
diff --git a/components/sync/driver/device_info_data_type_controller.cc b/components/sync/device_info/device_info_data_type_controller.cc
similarity index 90%
rename from components/sync/driver/device_info_data_type_controller.cc
rename to components/sync/device_info/device_info_data_type_controller.cc
index f42735a..e0e4b85 100644
--- a/components/sync/driver/device_info_data_type_controller.cc
+++ b/components/sync/device_info/device_info_data_type_controller.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_data_type_controller.h"
+#include "components/sync/device_info/device_info_data_type_controller.h"
 
 #include "base/callback.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 
 namespace sync_driver {
 
diff --git a/components/sync/driver/device_info_data_type_controller.h b/components/sync/device_info/device_info_data_type_controller.h
similarity index 80%
rename from components/sync/driver/device_info_data_type_controller.h
rename to components/sync/device_info/device_info_data_type_controller.h
index f45dc4b..aa56085 100644
--- a/components/sync/driver/device_info_data_type_controller.h
+++ b/components/sync/device_info/device_info_data_type_controller.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
 
 #include <memory>
 
 #include "base/macros.h"
 #include "base/single_thread_task_runner.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/ui_data_type_controller.h"
 
 namespace sync_driver {
@@ -41,4 +41,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_DATA_TYPE_CONTROLLER_H_
diff --git a/components/sync/driver/device_info_data_type_controller_unittest.cc b/components/sync/device_info/device_info_data_type_controller_unittest.cc
similarity index 95%
rename from components/sync/driver/device_info_data_type_controller_unittest.cc
rename to components/sync/device_info/device_info_data_type_controller_unittest.cc
index 062a409..58da55d 100644
--- a/components/sync/driver/device_info_data_type_controller_unittest.cc
+++ b/components/sync/device_info/device_info_data_type_controller_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_data_type_controller.h"
+#include "components/sync/device_info/device_info_data_type_controller.h"
 
 #include "base/bind.h"
 #include "base/callback.h"
@@ -10,8 +10,8 @@
 #include "base/run_loop.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "components/sync/base/model_type.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/fake_sync_client.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_api_component_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/sync/driver/device_info_service.cc b/components/sync/device_info/device_info_service.cc
similarity index 99%
rename from components/sync/driver/device_info_service.cc
rename to components/sync/device_info/device_info_service.cc
index 1b6c5040..628195b 100644
--- a/components/sync/driver/device_info_service.cc
+++ b/components/sync/device_info/device_info_service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_service.h"
+#include "components/sync/device_info/device_info_service.h"
 
 #include <set>
 #include <utility>
@@ -18,7 +18,7 @@
 #include "components/sync/base/time.h"
 #include "components/sync/core/data_batch_impl.h"
 #include "components/sync/core/simple_metadata_change_list.h"
-#include "components/sync/driver/device_info_util.h"
+#include "components/sync/device_info/device_info_util.h"
 #include "components/sync/protocol/data_type_state.pb.h"
 #include "components/sync/protocol/sync.pb.h"
 
diff --git a/components/sync/driver/device_info_service.h b/components/sync/device_info/device_info_service.h
similarity index 95%
rename from components/sync/driver/device_info_service.h
rename to components/sync/device_info/device_info_service.h
index 23511f1..3a1db39 100644
--- a/components/sync/driver/device_info_service.h
+++ b/components/sync/device_info/device_info_service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SERVICE_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SERVICE_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SERVICE_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SERVICE_H_
 
 #include <stdint.h>
 
@@ -20,8 +20,8 @@
 #include "components/sync/api/model_type_service.h"
 #include "components/sync/api/model_type_store.h"
 #include "components/sync/core/simple_metadata_change_list.h"
-#include "components/sync/driver/device_info_tracker.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/device_info_tracker.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 
 namespace syncer {
 class SyncError;
@@ -188,4 +188,4 @@
 
 }  // namespace sync_driver_v2
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SERVICE_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SERVICE_H_
diff --git a/components/sync/driver/device_info_service_unittest.cc b/components/sync/device_info/device_info_service_unittest.cc
similarity index 99%
rename from components/sync/driver/device_info_service_unittest.cc
rename to components/sync/device_info/device_info_service_unittest.cc
index e59aa69..d8ba9c22 100644
--- a/components/sync/driver/device_info_service_unittest.cc
+++ b/components/sync/device_info/device_info_service_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_service.h"
+#include "components/sync/device_info/device_info_service.h"
 
 #include <map>
 #include <memory>
@@ -23,7 +23,7 @@
 #include "components/sync/base/time.h"
 #include "components/sync/core/test/data_type_error_handler_mock.h"
 #include "components/sync/core/test/model_type_store_test_util.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/protocol/data_type_state.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/sync/driver/device_info_sync_service.cc b/components/sync/device_info/device_info_sync_service.cc
similarity index 97%
rename from components/sync/driver/device_info_sync_service.cc
rename to components/sync/device_info/device_info_sync_service.cc
index cfc4d305..2767886 100644
--- a/components/sync/driver/device_info_sync_service.cc
+++ b/components/sync/device_info/device_info_sync_service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_sync_service.h"
+#include "components/sync/device_info/device_info_sync_service.h"
 
 #include <stddef.h>
 
@@ -13,8 +13,8 @@
 #include "base/time/time.h"
 #include "components/sync/api/sync_change.h"
 #include "components/sync/base/time.h"
-#include "components/sync/driver/device_info_util.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/device_info_util.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/protocol/sync.pb.h"
 
 namespace sync_driver {
diff --git a/components/sync/driver/device_info_sync_service.h b/components/sync/device_info/device_info_sync_service.h
similarity index 93%
rename from components/sync/driver/device_info_sync_service.h
rename to components/sync/device_info/device_info_sync_service.h
index aed9e12..29da4404 100644
--- a/components/sync/driver/device_info_sync_service.h
+++ b/components/sync/device_info/device_info_sync_service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SYNC_SERVICE_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SYNC_SERVICE_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_H_
 
 #include <stdint.h>
 
@@ -21,7 +21,7 @@
 #include "components/sync/api/sync_data.h"
 #include "components/sync/api/sync_error_factory.h"
 #include "components/sync/api/syncable_service.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info_tracker.h"
 
 namespace sync_driver {
 
@@ -108,4 +108,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_SYNC_SERVICE_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_SYNC_SERVICE_H_
diff --git a/components/sync/driver/device_info_sync_service_unittest.cc b/components/sync/device_info/device_info_sync_service_unittest.cc
similarity index 98%
rename from components/sync/driver/device_info_sync_service_unittest.cc
rename to components/sync/device_info/device_info_sync_service_unittest.cc
index 48ed8305..4dfaed5 100644
--- a/components/sync/driver/device_info_sync_service_unittest.cc
+++ b/components/sync/device_info/device_info_sync_service_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_sync_service.h"
+#include "components/sync/device_info/device_info_sync_service.h"
 
 #include <stddef.h>
 #include <stdint.h>
@@ -16,8 +16,8 @@
 #include "components/sync/api/sync_error_factory_mock.h"
 #include "components/sync/base/time.h"
 #include "components/sync/core/attachments/attachment_service_proxy_for_test.h"
-#include "components/sync/driver/device_info_util.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/device_info_util.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using base::Time;
diff --git a/components/sync/driver/device_info_tracker.h b/components/sync/device_info/device_info_tracker.h
similarity index 85%
rename from components/sync/driver/device_info_tracker.h
rename to components/sync/device_info/device_info_tracker.h
index e861aa0..c332141 100644
--- a/components/sync/driver/device_info_tracker.h
+++ b/components/sync/device_info/device_info_tracker.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_TRACKER_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_TRACKER_H_
 
 #include <memory>
 #include <string>
 
 #include "base/memory/scoped_vector.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 
 namespace sync_driver {
 
@@ -43,4 +43,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_TRACKER_H_
diff --git a/components/sync/driver/device_info_util.cc b/components/sync/device_info/device_info_util.cc
similarity index 96%
rename from components/sync/driver/device_info_util.cc
rename to components/sync/device_info/device_info_util.cc
index 32be76c3..557a630 100644
--- a/components/sync/driver/device_info_util.cc
+++ b/components/sync/device_info/device_info_util.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_util.h"
+#include "components/sync/device_info/device_info_util.h"
 
 #include <algorithm>
 
diff --git a/components/sync/driver/device_info_util.h b/components/sync/device_info/device_info_util.h
similarity index 92%
rename from components/sync/driver/device_info_util.h
rename to components/sync/device_info/device_info_util.h
index 0f12487..eee3952 100644
--- a/components/sync/driver/device_info_util.h
+++ b/components/sync/device_info/device_info_util.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_UTIL_H_
-#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_UTIL_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_
 
 #include <string>
 
@@ -55,4 +55,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_UTIL_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_
diff --git a/components/sync/driver/device_info_util_unittest.cc b/components/sync/device_info/device_info_util_unittest.cc
similarity index 98%
rename from components/sync/driver/device_info_util_unittest.cc
rename to components/sync/device_info/device_info_util_unittest.cc
index 464258a..55e9560 100644
--- a/components/sync/driver/device_info_util_unittest.cc
+++ b/components/sync/device_info/device_info_util_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/device_info_util.h"
+#include "components/sync/device_info/device_info_util.h"
 
 #include <string>
 
diff --git a/components/sync/driver/local_device_info_provider.h b/components/sync/device_info/local_device_info_provider.h
similarity index 90%
rename from components/sync/driver/local_device_info_provider.h
rename to components/sync/device_info/local_device_info_provider.h
index 2c7c283a..bad57c6 100644
--- a/components/sync/driver/local_device_info_provider.h
+++ b/components/sync/device_info/local_device_info_provider.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_H_
-#define COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_H_
 
 #include <memory>
 #include <string>
@@ -61,4 +61,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_H_
diff --git a/components/sync/driver/local_device_info_provider_impl.cc b/components/sync/device_info/local_device_info_provider_impl.cc
similarity index 97%
rename from components/sync/driver/local_device_info_provider_impl.cc
rename to components/sync/device_info/local_device_info_provider_impl.cc
index 33ba395..a50b5fa 100644
--- a/components/sync/driver/local_device_info_provider_impl.cc
+++ b/components/sync/device_info/local_device_info_provider_impl.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/local_device_info_provider_impl.h"
+#include "components/sync/device_info/local_device_info_provider_impl.h"
 
 #include "base/bind.h"
 #include "base/task_runner.h"
diff --git a/components/sync/driver/local_device_info_provider_impl.h b/components/sync/device_info/local_device_info_provider_impl.h
similarity index 85%
rename from components/sync/driver/local_device_info_provider_impl.h
rename to components/sync/device_info/local_device_info_provider_impl.h
index 51eaaf17..7333fa5a 100644
--- a/components/sync/driver/local_device_info_provider_impl.h
+++ b/components/sync/device_info/local_device_info_provider_impl.h
@@ -2,16 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
-#define COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/non_thread_safe.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/version_info/version_info.h"
 
 namespace browser_sync {
@@ -61,4 +62,4 @@
 
 }  // namespace browser_sync
 
-#endif  // COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
diff --git a/components/sync/driver/local_device_info_provider_mock.cc b/components/sync/device_info/local_device_info_provider_mock.cc
similarity index 96%
rename from components/sync/driver/local_device_info_provider_mock.cc
rename to components/sync/device_info/local_device_info_provider_mock.cc
index c52297f..fa45cad 100644
--- a/components/sync/driver/local_device_info_provider_mock.cc
+++ b/components/sync/device_info/local_device_info_provider_mock.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/sync/driver/local_device_info_provider_mock.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 
 namespace sync_driver {
 
diff --git a/components/sync/driver/local_device_info_provider_mock.h b/components/sync/device_info/local_device_info_provider_mock.h
similarity index 82%
rename from components/sync/driver/local_device_info_provider_mock.h
rename to components/sync/device_info/local_device_info_provider_mock.h
index af332407..0a63979 100644
--- a/components/sync/driver/local_device_info_provider_mock.h
+++ b/components/sync/device_info/local_device_info_provider_mock.h
@@ -2,13 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
-#define COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
+#ifndef COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
+#define COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
 
+#include <memory>
 #include <string>
 
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 
 namespace sync_driver {
 
@@ -49,4 +50,4 @@
 
 }  // namespace sync_driver
 
-#endif  // COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
+#endif  // COMPONENTS_SYNC_DEVICE_INFO_LOCAL_DEVICE_INFO_PROVIDER_MOCK_H_
diff --git a/components/sync/driver/local_device_info_provider_unittest.cc b/components/sync/device_info/local_device_info_provider_unittest.cc
similarity index 98%
rename from components/sync/driver/local_device_info_provider_unittest.cc
rename to components/sync/device_info/local_device_info_provider_unittest.cc
index a58e211f..b7b09b2 100644
--- a/components/sync/driver/local_device_info_provider_unittest.cc
+++ b/components/sync/device_info/local_device_info_provider_unittest.cc
@@ -6,7 +6,7 @@
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
 #include "components/sync/base/get_session_name.h"
-#include "components/sync/driver/local_device_info_provider_impl.h"
+#include "components/sync/device_info/local_device_info_provider_impl.h"
 #include "components/version_info/version_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/sync/driver/DEPS b/components/sync/driver/DEPS
index 55d03ff..8b13ac7a 100644
--- a/components/sync/driver/DEPS
+++ b/components/sync/driver/DEPS
@@ -1,7 +1,6 @@
 include_rules = [
   "+components/data_use_measurement/core",
   "+components/invalidation",
-  "+components/metrics",
   "+components/os_crypt",
   "+components/policy",
   "+components/pref_registry",
@@ -10,6 +9,7 @@
   "+components/sync/api",
   "+components/sync/base",
   "+components/sync/core",
+  "+components/sync/device_info",
   "+components/sync/engine",
   "+components/sync/protocol",
   "+components/sync/sessions",
diff --git a/components/sync/driver/generic_change_processor_unittest.cc b/components/sync/driver/generic_change_processor_unittest.cc
index cd6e9a4..528f603 100644
--- a/components/sync/driver/generic_change_processor_unittest.cc
+++ b/components/sync/driver/generic_change_processor_unittest.cc
@@ -31,8 +31,8 @@
 #include "components/sync/core/user_share.h"
 #include "components/sync/core/write_node.h"
 #include "components/sync/core/write_transaction.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/fake_sync_client.h"
-#include "components/sync/driver/local_device_info_provider.h"
 #include "components/sync/driver/sync_api_component_factory.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/sync/driver/glue/sync_backend_host_core.cc b/components/sync/driver/glue/sync_backend_host_core.cc
index e0710aa..f354916f 100644
--- a/components/sync/driver/glue/sync_backend_host_core.cc
+++ b/components/sync/driver/glue/sync_backend_host_core.cc
@@ -17,9 +17,9 @@
 #include "components/sync/core/internal_components_factory.h"
 #include "components/sync/core/sync_manager.h"
 #include "components/sync/core/sync_manager_factory.h"
+#include "components/sync/device_info/local_device_info_provider_impl.h"
 #include "components/sync/driver/glue/sync_backend_registrar.h"
 #include "components/sync/driver/invalidation_adapter.h"
-#include "components/sync/driver/local_device_info_provider_impl.h"
 #include "components/sync/engine/events/protocol_event.h"
 #include "components/sync/sessions/commit_counters.h"
 #include "components/sync/sessions/status_counters.h"
diff --git a/components/sync/driver/glue/sync_backend_host_impl_unittest.cc b/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
index ec9f8b4..599073e1 100644
--- a/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
+++ b/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
@@ -31,7 +31,7 @@
 #include "components/sync/core/network_resources.h"
 #include "components/sync/core/sync_manager_factory.h"
 #include "components/sync/core/test/fake_sync_manager.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 #include "components/sync/driver/fake_sync_client.h"
 #include "components/sync/driver/sync_frontend.h"
 #include "components/sync/driver/sync_prefs.h"
diff --git a/components/sync/driver/shared_change_processor_unittest.cc b/components/sync/driver/shared_change_processor_unittest.cc
index ccfd987..cc698fbd 100644
--- a/components/sync/driver/shared_change_processor_unittest.cc
+++ b/components/sync/driver/shared_change_processor_unittest.cc
@@ -21,10 +21,10 @@
 #include "components/sync/core/attachments/attachment_service_impl.h"
 #include "components/sync/core/test/data_type_error_handler_mock.h"
 #include "components/sync/core/test/test_user_share.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/fake_sync_client.h"
 #include "components/sync/driver/generic_change_processor.h"
 #include "components/sync/driver/generic_change_processor_factory.h"
-#include "components/sync/driver/local_device_info_provider.h"
 #include "components/sync/driver/sync_api_component_factory.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/sync/driver/sync_api_component_factory_mock.cc b/components/sync/driver/sync_api_component_factory_mock.cc
index f11cf13..03e04e1 100644
--- a/components/sync/driver/sync_api_component_factory_mock.cc
+++ b/components/sync/driver/sync_api_component_factory_mock.cc
@@ -8,8 +8,8 @@
 
 #include "components/sync/api/attachments/attachment_store.h"
 #include "components/sync/core/attachments/attachment_service_impl.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/change_processor.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
 #include "components/sync/driver/model_associator.h"
 
 using sync_driver::AssociatorInterface;
diff --git a/components/sync_sessions/session_data_type_controller.h b/components/sync_sessions/session_data_type_controller.h
index d8442f48..beb0e11 100644
--- a/components/sync_sessions/session_data_type_controller.h
+++ b/components/sync_sessions/session_data_type_controller.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "components/prefs/pref_change_registrar.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/driver/ui_data_type_controller.h"
 
 namespace browser_sync {
diff --git a/components/sync_sessions/session_data_type_controller_unittest.cc b/components/sync_sessions/session_data_type_controller_unittest.cc
index b18bf17..0909d84e 100644
--- a/components/sync_sessions/session_data_type_controller_unittest.cc
+++ b/components/sync_sessions/session_data_type_controller_unittest.cc
@@ -13,8 +13,8 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/testing_pref_service.h"
+#include "components/sync/device_info/local_device_info_provider_mock.h"
 #include "components/sync/driver/fake_sync_client.h"
-#include "components/sync/driver/local_device_info_provider_mock.h"
 #include "components/sync/driver/sync_api_component_factory_mock.h"
 #include "components/sync_sessions/fake_sync_sessions_client.h"
 #include "components/sync_sessions/synced_window_delegate.h"
diff --git a/components/sync_sessions/sessions_sync_manager.cc b/components/sync_sessions/sessions_sync_manager.cc
index 6f513c5c..dc0665c 100644
--- a/components/sync_sessions/sessions_sync_manager.cc
+++ b/components/sync_sessions/sessions_sync_manager.cc
@@ -14,7 +14,7 @@
 #include "components/sync/api/sync_error_factory.h"
 #include "components/sync/api/sync_merge_result.h"
 #include "components/sync/api/time.h"
-#include "components/sync/driver/local_device_info_provider.h"
+#include "components/sync/device_info/local_device_info_provider.h"
 #include "components/sync/syncable/syncable_util.h"
 #include "components/sync_sessions/sync_sessions_client.h"
 #include "components/sync_sessions/synced_tab_delegate.h"
diff --git a/components/sync_sessions/sessions_sync_manager.h b/components/sync_sessions/sessions_sync_manager.h
index 13452c4..37e9628 100644
--- a/components/sync_sessions/sessions_sync_manager.h
+++ b/components/sync_sessions/sessions_sync_manager.h
@@ -21,7 +21,7 @@
 #include "components/sessions/core/session_id.h"
 #include "components/sessions/core/session_types.h"
 #include "components/sync/api/syncable_service.h"
-#include "components/sync/driver/device_info.h"
+#include "components/sync/device_info/device_info.h"
 #include "components/sync/driver/sync_prefs.h"
 #include "components/sync_sessions/favicon_cache.h"
 #include "components/sync_sessions/local_session_event_router.h"
diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.cc b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.cc
index 94d9ead..ffc1d01 100644
--- a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.cc
+++ b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.cc
@@ -39,7 +39,7 @@
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
 #include "components/signin/core/browser/signin_status_metrics_provider.h"
-#include "components/sync/driver/device_count_metrics_provider.h"
+#include "components/sync/device_info/device_count_metrics_provider.h"
 #include "components/variations/variations_associated_data.h"
 #include "components/version_info/version_info.h"
 #include "ios/chrome/browser/application_context.h"
diff --git a/ios/chrome/browser/ui/webui/history/browsing_history_handler.cc b/ios/chrome/browser/ui/webui/history/browsing_history_handler.cc
index f422b1824..da99c55 100644
--- a/ios/chrome/browser/ui/webui/history/browsing_history_handler.cc
+++ b/ios/chrome/browser/ui/webui/history/browsing_history_handler.cc
@@ -28,8 +28,8 @@
 #include "components/history/core/browser/web_history_service.h"
 #include "components/keyed_service/core/service_access_type.h"
 #include "components/strings/grit/components_strings.h"
-#include "components/sync/driver/device_info.h"
-#include "components/sync/driver/device_info_tracker.h"
+#include "components/sync/device_info/device_info.h"
+#include "components/sync/device_info/device_info_tracker.h"
 #include "components/sync/protocol/history_delete_directive_specifics.pb.h"
 #include "components/sync/protocol/sync_enums.pb.h"
 #include "components/url_formatter/url_formatter.h"