Move UpgradeDetector into its own directory.

BUG=none

Change-Id: I175181a2cdcfc0e2a04e40e7901343cd003e1ae7
Reviewed-on: https://chromium-review.googlesource.com/1164948
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Satoru Takabayashi <[email protected]>
Reviewed-by: Greg Thompson <[email protected]>
Reviewed-by: Peter Kasting <[email protected]>
Commit-Queue: Greg Thompson <[email protected]>
Cr-Commit-Position: refs/heads/master@{#582101}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 5f297a8d..af10d84 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2942,9 +2942,9 @@
       "themes/theme_service_mac.mm",
       "themes/theme_syncable_service.cc",
       "themes/theme_syncable_service.h",
-      "upgrade_detector.cc",
-      "upgrade_detector.h",
-      "upgrade_observer.h",
+      "upgrade_detector/upgrade_detector.cc",
+      "upgrade_detector/upgrade_detector.h",
+      "upgrade_detector/upgrade_observer.h",
       "usb/web_usb_chooser_service_desktop.cc",
       "usb/web_usb_chooser_service_desktop.h",
       "usb/web_usb_detector.cc",
@@ -3041,6 +3041,8 @@
       "task_manager/providers/arc/arc_process_task.h",
       "task_manager/providers/arc/arc_process_task_provider.cc",
       "task_manager/providers/arc/arc_process_task_provider.h",
+      "upgrade_detector/upgrade_detector_chromeos.cc",
+      "upgrade_detector/upgrade_detector_chromeos.h",
     ]
     deps += [
       "//ash",
@@ -3361,8 +3363,8 @@
       "signin/signin_global_error.h",
       "signin/signin_global_error_factory.cc",
       "signin/signin_global_error_factory.h",
-      "upgrade_detector_impl.cc",
-      "upgrade_detector_impl.h",
+      "upgrade_detector/upgrade_detector_impl.cc",
+      "upgrade_detector/upgrade_detector_impl.h",
     ]
   } else {
     sources += [
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 10ec664..ed9a451 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -1755,8 +1755,6 @@
     "ui/request_pin_view.h",
     "ui/screen_capture_notification_ui_chromeos.cc",
     "ui/screen_capture_notification_ui_chromeos.h",
-    "upgrade_detector_chromeos.cc",
-    "upgrade_detector_chromeos.h",
     "virtual_machines/virtual_machines_util.cc",
     "virtual_machines/virtual_machines_util.h",
 
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index c11f80a..319fbbb 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -93,7 +93,6 @@
 #include "chrome/browser/chromeos/system/input_device_settings.h"
 #include "chrome/browser/chromeos/system/user_removal_manager.h"
 #include "chrome/browser/chromeos/ui/low_disk_notification.h"
-#include "chrome/browser/chromeos/upgrade_detector_chromeos.h"
 #include "chrome/browser/component_updater/cros_component_installer_chromeos.h"
 #include "chrome/browser/defaults.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
@@ -102,6 +101,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/task_manager/task_manager_interface.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector_chromeos.h"
 #include "chrome/common/channel_info.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_features.h"
diff --git a/chrome/browser/extensions/api/system_private/system_private_api.cc b/chrome/browser/extensions/api/system_private/system_private_api.cc
index 132abe1..bc91204 100644
--- a/chrome/browser/extensions/api/system_private/system_private_api.cc
+++ b/chrome/browser/extensions/api/system_private/system_private_api.cc
@@ -22,7 +22,7 @@
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/update_engine_client.h"
 #else
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #endif
 
 namespace {
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 7b13e9e..9625318 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -60,7 +60,7 @@
 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
 #include "chrome/browser/ui/webui/favicon_source.h"
 #include "chrome/browser/ui/webui/theme_source.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/buildflags.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/crash_keys.h"
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h
index 0e93279..eef19e97 100644
--- a/chrome/browser/extensions/extension_service.h
+++ b/chrome/browser/extensions/extension_service.h
@@ -24,7 +24,7 @@
 #include "chrome/browser/extensions/forced_extensions/installation_tracker.h"
 #include "chrome/browser/extensions/install_gate.h"
 #include "chrome/browser/extensions/pending_extension_manager.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/sync/model/string_ordinal.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
diff --git a/chrome/browser/metrics/upgrade_metrics_provider.cc b/chrome/browser/metrics/upgrade_metrics_provider.cc
index 826a67773..cd8c1166 100644
--- a/chrome/browser/metrics/upgrade_metrics_provider.cc
+++ b/chrome/browser/metrics/upgrade_metrics_provider.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/metrics/upgrade_metrics_provider.h"
 
 #include "base/metrics/histogram_macros.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 
 UpgradeMetricsProvider::UpgradeMetricsProvider() {}
 
diff --git a/chrome/browser/metrics/upgrade_metrics_provider_unittest.cc b/chrome/browser/metrics/upgrade_metrics_provider_unittest.cc
index 6068a99..d8685e5 100644
--- a/chrome/browser/metrics/upgrade_metrics_provider_unittest.cc
+++ b/chrome/browser/metrics/upgrade_metrics_provider_unittest.cc
@@ -6,7 +6,7 @@
 
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_task_environment.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 class UpgradeMetricsProviderTest : public testing::Test {
diff --git a/chrome/browser/metrics/variations/chrome_variations_service_client.cc b/chrome/browser/metrics/variations/chrome_variations_service_client.cc
index e89337b..420e21eb 100644
--- a/chrome/browser/metrics/variations/chrome_variations_service_client.cc
+++ b/chrome/browser/metrics/variations/chrome_variations_service_client.cc
@@ -13,7 +13,7 @@
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
-#include "chrome/browser/upgrade_detector_impl.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector_impl.h"
 #endif
 
 #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index d05890fc..30d21901 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -201,7 +201,7 @@
 #include "components/feed/core/refresh_throttler.h"
 #include "components/feed/core/user_classifier.h"
 #endif  // BUILDFLAG(ENABLE_FEED_IN_CHROME)
-#else
+#else   // defined(OS_ANDROID)
 #include "chrome/browser/gcm/gcm_product_util.h"
 #include "chrome/browser/metrics/tab_stats_tracker.h"
 #include "chrome/browser/search/instant_service.h"
@@ -210,8 +210,8 @@
 #include "chrome/browser/ui/webui/foreign_session_handler.h"
 #include "chrome/browser/ui/webui/md_history_ui.h"
 #include "chrome/browser/ui/webui/settings/md_settings_ui.h"
-#include "chrome/browser/upgrade_detector.h"
-#endif
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
+#endif  // defined(OS_ANDROID)
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/app_mode/arc/arc_kiosk_app_manager.h"
diff --git a/chrome/browser/recovery/recovery_install_global_error.cc b/chrome/browser/recovery/recovery_install_global_error.cc
index 27db27b..5a2c4d3 100644
--- a/chrome/browser/recovery/recovery_install_global_error.cc
+++ b/chrome/browser/recovery/recovery_install_global_error.cc
@@ -11,7 +11,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/global_error/global_error_service.h"
 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/chromium_strings.h"
diff --git a/chrome/browser/service_process/service_process_control.cc b/chrome/browser/service_process/service_process_control.cc
index 70ef37d..1eebebef 100644
--- a/chrome/browser/service_process/service_process_control.cc
+++ b/chrome/browser/service_process/service_process_control.cc
@@ -25,7 +25,7 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/service_process_util.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/child_process_launcher_utils.h"
diff --git a/chrome/browser/service_process/service_process_control.h b/chrome/browser/service_process/service_process_control.h
index 1745c7e..acc95310 100644
--- a/chrome/browser/service_process/service_process_control.h
+++ b/chrome/browser/service_process/service_process_control.h
@@ -20,7 +20,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/process/process.h"
 #include "build/build_config.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "chrome/common/service_process.mojom.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 
diff --git a/chrome/browser/ui/ash/system_tray_client.cc b/chrome/browser/ui/ash/system_tray_client.cc
index 7cb1556e..37b2acfe 100644
--- a/chrome/browser/ui/ash/system_tray_client.cc
+++ b/chrome/browser/ui/ash/system_tray_client.cc
@@ -30,7 +30,7 @@
 #include "chrome/browser/ui/webui/chromeos/internet_config_dialog.h"
 #include "chrome/browser/ui/webui/chromeos/internet_detail_dialog.h"
 #include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/url_constants.h"
 #include "chromeos/chromeos_switches.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
diff --git a/chrome/browser/ui/ash/system_tray_client.h b/chrome/browser/ui/ash/system_tray_client.h
index 6be0cd3a..f668bcb 100644
--- a/chrome/browser/ui/ash/system_tray_client.h
+++ b/chrome/browser/ui/ash/system_tray_client.h
@@ -8,7 +8,7 @@
 #include "ash/public/interfaces/system_tray.mojom.h"
 #include "base/macros.h"
 #include "chrome/browser/chromeos/system/system_clock_observer.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/policy/core/common/cloud/cloud_policy_store.h"
 #include "mojo/public/cpp/bindings/binding.h"
 
diff --git a/chrome/browser/ui/ash/system_tray_client_browsertest.cc b/chrome/browser/ui/ash/system_tray_client_browsertest.cc
index 6ba3db5e..ac73bc9 100644
--- a/chrome/browser/ui/ash/system_tray_client_browsertest.cc
+++ b/chrome/browser/ui/ash/system_tray_client_browsertest.cc
@@ -15,9 +15,8 @@
 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
 #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/upgrade_detector_chromeos.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 31e080a..a696cf3 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -148,7 +148,6 @@
 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
 #include "chrome/browser/ui/window_sizer/window_sizer.h"
-#include "chrome/browser/upgrade_detector.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
 #include "chrome/browser/web_applications/components/web_app_helpers.h"
 #include "chrome/common/chrome_constants.h"
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index e3c9b46..0c5213da 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -54,7 +54,7 @@
 #include "chrome/browser/ui/tab_dialogs.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/buildflags.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/content_restriction.h"
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
index a2ab09ef..a972e1fc 100644
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -8,7 +8,7 @@
 #include "build/build_config.h"
 #include "chrome/browser/first_run/first_run.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_registry_simple.h"
diff --git a/chrome/browser/ui/toolbar/app_menu_icon_controller.cc b/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
index c5bb54a..14a2e1b 100644
--- a/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
+++ b/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
@@ -9,7 +9,7 @@
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/ui/global_error/global_error_service.h"
 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/channel_info.h"
 #include "components/version_info/channel.h"
 
diff --git a/chrome/browser/ui/toolbar/app_menu_icon_controller.h b/chrome/browser/ui/toolbar/app_menu_icon_controller.h
index b37afb7..8ed6bf2 100644
--- a/chrome/browser/ui/toolbar/app_menu_icon_controller.h
+++ b/chrome/browser/ui/toolbar/app_menu_icon_controller.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "build/build_config.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc
index ad80c85..92b7f16 100644
--- a/chrome/browser/ui/toolbar/app_menu_model.cc
+++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -39,7 +39,7 @@
 #include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h"
 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
diff --git a/chrome/browser/ui/toolbar/app_menu_model_unittest.cc b/chrome/browser/ui/toolbar/app_menu_model_unittest.cc
index 0edae5b68..90cac5b 100644
--- a/chrome/browser/ui/toolbar/app_menu_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/app_menu_model_unittest.cc
@@ -15,7 +15,7 @@
 #include "chrome/browser/ui/global_error/global_error_service.h"
 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/menu_model_test.h"
 #include "chrome/test/base/testing_browser_process.h"
diff --git a/chrome/browser/ui/views/critical_notification_bubble_view.cc b/chrome/browser/ui/views/critical_notification_bubble_view.cc
index 2fe220b..ef1c791 100644
--- a/chrome/browser/ui/views/critical_notification_bubble_view.cc
+++ b/chrome/browser/ui/views/critical_notification_bubble_view.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/ui/browser_dialogs.h"
 #include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
diff --git a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
index d318ae7..b7eb1f63 100644
--- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
+++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/ui/browser_dialogs.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
index 56d7097..6c1c3ed 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
@@ -11,8 +11,8 @@
 #include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/upgrade_detector.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "ui/views/widget/widget_observer.h"
 
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
index 7ad1032..b8dcf693 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
@@ -12,7 +12,7 @@
 #include "base/time/tick_clock.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/scoped_testing_local_state.h"
 #include "chrome/test/base/testing_browser_process.h"
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
index 3eaec35..49a7115 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -43,7 +43,7 @@
 #include "chrome/browser/ui/views/toolbar/toolbar_button.h"
 #include "chrome/browser/ui/views/translate/translate_bubble_view.h"
 #include "chrome/browser/ui/views/translate/translate_icon_view.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h
index b9c5bdac..a006a67 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -18,7 +18,7 @@
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
 #include "chrome/browser/ui/views/profiles/avatar_toolbar_button.h"
 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/prefs/pref_member.h"
 #include "components/translate/core/browser/translate_step.h"
 #include "components/translate/core/common/translate_errors.h"
diff --git a/chrome/browser/ui/webui/help/version_updater_basic.cc b/chrome/browser/ui/webui/help/version_updater_basic.cc
index 796d0a5..93e3f41 100644
--- a/chrome/browser/ui/webui/help/version_updater_basic.cc
+++ b/chrome/browser/ui/webui/help/version_updater_basic.cc
@@ -5,16 +5,15 @@
 #include "chrome/browser/ui/webui/help/version_updater_basic.h"
 
 #include "base/strings/string16.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 
 void VersionUpdaterBasic::CheckForUpdate(
     const StatusCallback& status_callback,
     const PromoteCallback&) {
-  if (UpgradeDetector::GetInstance()->notify_upgrade())
-    status_callback.Run(NEARLY_UPDATED, 0, false, std::string(), 0,
-                        base::string16());
-  else
-    status_callback.Run(DISABLED, 0, false, std::string(), 0, base::string16());
+  const Status status = UpgradeDetector::GetInstance()->notify_upgrade()
+                            ? NEARLY_UPDATED
+                            : DISABLED;
+  status_callback.Run(status, 0, false, std::string(), 0, base::string16());
 }
 
 VersionUpdater* VersionUpdater::Create(content::WebContents* web_contents) {
diff --git a/chrome/browser/ui/webui/settings/about_handler.cc b/chrome/browser/ui/webui/settings/about_handler.cc
index 6a9eb97..a78b76e 100644
--- a/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chrome/browser/ui/webui/settings/about_handler.cc
@@ -30,7 +30,7 @@
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/chrome_pages.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chrome/common/channel_info.h"
 #include "chrome/common/chrome_content_client.h"
 #include "chrome/common/pref_names.h"
diff --git a/chrome/browser/ui/webui/settings/about_handler.h b/chrome/browser/ui/webui/settings/about_handler.h
index 4c8ae08a..6395f306 100644
--- a/chrome/browser/ui/webui/settings/about_handler.h
+++ b/chrome/browser/ui/webui/settings/about_handler.h
@@ -15,7 +15,7 @@
 #include "build/build_config.h"
 #include "chrome/browser/ui/webui/help/version_updater.h"
 #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/policy/core/common/policy_service.h"
 #include "content/public/browser/web_ui_message_handler.h"
 
diff --git a/chrome/browser/upgrade_detector/OWNERS b/chrome/browser/upgrade_detector/OWNERS
new file mode 100644
index 0000000..49bfcb22e
--- /dev/null
+++ b/chrome/browser/upgrade_detector/OWNERS
@@ -0,0 +1,2 @@
[email protected]
[email protected]
diff --git a/chrome/browser/upgrade_detector.cc b/chrome/browser/upgrade_detector/upgrade_detector.cc
similarity index 91%
rename from chrome/browser/upgrade_detector.cc
rename to chrome/browser/upgrade_detector/upgrade_detector.cc
index deec3bb..38f0d522 100644
--- a/chrome/browser/upgrade_detector.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector.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 "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 
 #include "base/bind.h"
 #include "base/command_line.h"
@@ -30,8 +30,8 @@
   // be, we assume it is for testing and switch to using seconds instead of
   // hours.
   const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
-  return !cmd_line.GetSwitchValueASCII(
-      switches::kCheckForUpdateIntervalSec).empty();
+  return !cmd_line.GetSwitchValueASCII(switches::kCheckForUpdateIntervalSec)
+              .empty();
 }
 
 // static
@@ -85,8 +85,7 @@
   }
 }
 
-UpgradeDetector::~UpgradeDetector() {
-}
+UpgradeDetector::~UpgradeDetector() {}
 
 void UpgradeDetector::NotifyOutdatedInstall() {
   for (auto& observer : observer_list_)
@@ -156,21 +155,22 @@
 }
 
 void UpgradeDetector::TriggerCriticalUpdate() {
-  const base::TimeDelta idle_timer = UseTestingIntervals() ?
-      base::TimeDelta::FromSeconds(kIdleRepeatingTimerWait) :
-      base::TimeDelta::FromMinutes(kIdleRepeatingTimerWait);
+  const base::TimeDelta idle_timer =
+      UseTestingIntervals()
+          ? base::TimeDelta::FromSeconds(kIdleRepeatingTimerWait)
+          : base::TimeDelta::FromMinutes(kIdleRepeatingTimerWait);
   idle_check_timer_.Start(FROM_HERE, idle_timer, this,
                           &UpgradeDetector::CheckIdle);
 }
 
 void UpgradeDetector::CheckIdle() {
   // CalculateIdleState expects an interval in seconds.
-  int idle_time_allowed = UseTestingIntervals() ? kIdleAmount :
-                                                  kIdleAmount * 60 * 60;
+  int idle_time_allowed =
+      UseTestingIntervals() ? kIdleAmount : kIdleAmount * 60 * 60;
 
   CalculateIdleState(
-      idle_time_allowed, base::Bind(&UpgradeDetector::IdleCallback,
-                                    base::Unretained(this)));
+      idle_time_allowed,
+      base::Bind(&UpgradeDetector::IdleCallback, base::Unretained(this)));
 }
 
 void UpgradeDetector::IdleCallback(ui::IdleState state) {
diff --git a/chrome/browser/upgrade_detector.h b/chrome/browser/upgrade_detector/upgrade_detector.h
similarity index 96%
rename from chrome/browser/upgrade_detector.h
rename to chrome/browser/upgrade_detector/upgrade_detector.h
index bff30d1..b609cc1 100644
--- a/chrome/browser/upgrade_detector.h
+++ b/chrome/browser/upgrade_detector/upgrade_detector.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_H_
-#define CHROME_BROWSER_UPGRADE_DETECTOR_H_
+#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_H_
+#define CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_H_
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/observer_list.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "ui/base/idle/idle.h"
 #include "ui/gfx/image/image.h"
@@ -79,9 +79,7 @@
 
   // Notify this object that the user has acknowledged the critical update so we
   // don't need to complain about it for now.
-  void acknowledge_critical_update() {
-    critical_update_acknowledged_ = true;
-  }
+  void acknowledge_critical_update() { critical_update_acknowledged_ = true; }
 
   // Whether the user has acknowledged the critical update.
   bool critical_update_acknowledged() const {
@@ -274,4 +272,4 @@
   DISALLOW_COPY_AND_ASSIGN(UpgradeDetector);
 };
 
-#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_H_
+#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_H_
diff --git a/chrome/browser/chromeos/upgrade_detector_chromeos.cc b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc
similarity index 96%
rename from chrome/browser/chromeos/upgrade_detector_chromeos.cc
rename to chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc
index efd87ae..e9d52da3 100644
--- a/chrome/browser/chromeos/upgrade_detector_chromeos.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.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 "chrome/browser/chromeos/upgrade_detector_chromeos.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector_chromeos.h"
 
 #include <stdint.h>
 
@@ -98,8 +98,7 @@
       initialized_(false),
       weak_factory_(this) {}
 
-UpgradeDetectorChromeos::~UpgradeDetectorChromeos() {
-}
+UpgradeDetectorChromeos::~UpgradeDetectorChromeos() {}
 
 void UpgradeDetectorChromeos::Init() {
   DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this);
@@ -151,8 +150,8 @@
     } else {
       // Determine whether powerwash is required based on the channel.
       ChannelsRequester::Begin(
-          base::Bind(&UpgradeDetectorChromeos::OnChannelsReceived,
-                     weak_factory_.GetWeakPtr()));
+          base::BindOnce(&UpgradeDetectorChromeos::OnChannelsReceived,
+                         weak_factory_.GetWeakPtr()));
     }
   } else if (status.status ==
              UpdateEngineClient::UPDATE_STATUS_NEED_PERMISSION_TO_UPDATE) {
diff --git a/chrome/browser/chromeos/upgrade_detector_chromeos.h b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.h
similarity index 89%
rename from chrome/browser/chromeos/upgrade_detector_chromeos.h
rename to chrome/browser/upgrade_detector/upgrade_detector_chromeos.h
index 8e4e68d..47487d0 100644
--- a/chrome/browser/chromeos/upgrade_detector_chromeos.h
+++ b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.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 CHROME_BROWSER_CHROMEOS_UPGRADE_DETECTOR_CHROMEOS_H_
-#define CHROME_BROWSER_CHROMEOS_UPGRADE_DETECTOR_CHROMEOS_H_
+#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_CHROMEOS_H_
+#define CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_CHROMEOS_H_
 
 #include <string>
 
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "chromeos/dbus/update_engine_client.h"
 
 namespace base {
@@ -76,4 +76,4 @@
   DISALLOW_COPY_AND_ASSIGN(UpgradeDetectorChromeos);
 };
 
-#endif  // CHROME_BROWSER_CHROMEOS_UPGRADE_DETECTOR_CHROMEOS_H_
+#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_CHROMEOS_H_
diff --git a/chrome/browser/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
similarity index 96%
rename from chrome/browser/upgrade_detector_impl.cc
rename to chrome/browser/upgrade_detector/upgrade_detector_impl.cc
index 369546c..33a2d5a 100644
--- a/chrome/browser/upgrade_detector_impl.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_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 "chrome/browser/upgrade_detector_impl.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector_impl.h"
 
 #include <stdint.h>
 
@@ -81,16 +81,16 @@
 bool SimulatingOutdated() {
   const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
   return cmd_line.HasSwitch(switches::kSimulateOutdated) ||
-      cmd_line.HasSwitch(switches::kSimulateOutdatedNoAU);
+         cmd_line.HasSwitch(switches::kSimulateOutdatedNoAU);
 }
 
 // Check if any of the testing switches was present on the command line.
 bool IsTesting() {
   const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
   return cmd_line.HasSwitch(switches::kSimulateUpgrade) ||
-      cmd_line.HasSwitch(switches::kCheckForUpdateIntervalSec) ||
-      cmd_line.HasSwitch(switches::kSimulateCriticalUpdate) ||
-      SimulatingOutdated();
+         cmd_line.HasSwitch(switches::kCheckForUpdateIntervalSec) ||
+         cmd_line.HasSwitch(switches::kSimulateCriticalUpdate) ||
+         SimulatingOutdated();
 }
 
 // How often to check for an upgrade.
@@ -201,9 +201,9 @@
       StartTimerForUpgradeCheck();
     } else {
       // Without a valid date, we simulate that we are already outdated...
-      UpgradeDetected(
-          is_auto_update_enabled_ ? UPGRADE_NEEDED_OUTDATED_INSTALL
-                                  : UPGRADE_NEEDED_OUTDATED_INSTALL_NO_AU);
+      UpgradeDetected(is_auto_update_enabled_
+                          ? UPGRADE_NEEDED_OUTDATED_INSTALL
+                          : UPGRADE_NEEDED_OUTDATED_INSTALL_NO_AU);
     }
     return;
   }
@@ -244,7 +244,7 @@
     return;
   }
 #elif defined(OS_POSIX)
-  // Always enable upgrade notifications regardless of branding.
+// Always enable upgrade notifications regardless of branding.
 #else
   return;
 #endif
@@ -422,9 +422,9 @@
   }
 
   if (network_time - build_date_ > kOutdatedBuildAge) {
-    UpgradeDetected(is_auto_update_enabled_ ?
-        UPGRADE_NEEDED_OUTDATED_INSTALL :
-        UPGRADE_NEEDED_OUTDATED_INSTALL_NO_AU);
+    UpgradeDetected(is_auto_update_enabled_
+                        ? UPGRADE_NEEDED_OUTDATED_INSTALL
+                        : UPGRADE_NEEDED_OUTDATED_INSTALL_NO_AU);
     return true;
   }
   // If we simlated an outdated install with a date, we don't want to keep
diff --git a/chrome/browser/upgrade_detector_impl.h b/chrome/browser/upgrade_detector/upgrade_detector_impl.h
similarity index 94%
rename from chrome/browser/upgrade_detector_impl.h
rename to chrome/browser/upgrade_detector/upgrade_detector_impl.h
index bd918705..998ec45 100644
--- a/chrome/browser/upgrade_detector_impl.h
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.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 CHROME_BROWSER_UPGRADE_DETECTOR_IMPL_H_
-#define CHROME_BROWSER_UPGRADE_DETECTOR_IMPL_H_
+#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_IMPL_H_
+#define CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_IMPL_H_
 
 #include <array>
 
@@ -15,7 +15,7 @@
 #include "base/timer/timer.h"
 #include "base/version.h"
 #include "build/build_config.h"
-#include "chrome/browser/upgrade_detector.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "components/variations/service/variations_service.h"
 
 namespace base {
@@ -24,7 +24,7 @@
 class SequencedTaskRunner;
 class TaskRunner;
 class TickClock;
-}
+}  // namespace base
 
 // This class contains the non-CrOS desktop implementation of the detector.
 class UpgradeDetectorImpl : public UpgradeDetector,
@@ -158,5 +158,4 @@
   DISALLOW_COPY_AND_ASSIGN(UpgradeDetectorImpl);
 };
 
-
-#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_IMPL_H_
+#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_DETECTOR_IMPL_H_
diff --git a/chrome/browser/upgrade_detector_impl_unittest.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc
similarity index 98%
rename from chrome/browser/upgrade_detector_impl_unittest.cc
rename to chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc
index c8d55a7..1834b398 100644
--- a/chrome/browser/upgrade_detector_impl_unittest.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl_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 "chrome/browser/upgrade_detector_impl.h"
+#include "chrome/browser/upgrade_detector/upgrade_detector_impl.h"
 
 #include <initializer_list>
 #include <utility>
@@ -13,7 +13,7 @@
 #include "base/time/tick_clock.h"
 #include "base/values.h"
 #include "build/build_config.h"
-#include "chrome/browser/upgrade_observer.h"
+#include "chrome/browser/upgrade_detector/upgrade_observer.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/scoped_testing_local_state.h"
 #include "chrome/test/base/testing_browser_process.h"
diff --git a/chrome/browser/upgrade_observer.h b/chrome/browser/upgrade_detector/upgrade_observer.h
similarity index 88%
rename from chrome/browser/upgrade_observer.h
rename to chrome/browser/upgrade_detector/upgrade_observer.h
index 02cb6f1..f27b4ec 100644
--- a/chrome/browser/upgrade_observer.h
+++ b/chrome/browser/upgrade_detector/upgrade_observer.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 CHROME_BROWSER_UPGRADE_OBSERVER_H_
-#define CHROME_BROWSER_UPGRADE_OBSERVER_H_
+#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_OBSERVER_H_
+#define CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_OBSERVER_H_
 
 #include "base/macros.h"
 
@@ -38,4 +38,4 @@
   virtual ~UpgradeObserver() {}
 };
 
-#endif  // CHROME_BROWSER_UPGRADE_OBSERVER_H_
+#endif  // CHROME_BROWSER_UPGRADE_DETECTOR_UPGRADE_OBSERVER_H_
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 6a50c89..4c21cf5e 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -4377,7 +4377,7 @@
       "../browser/ui/webui/signin/signin_create_profile_handler_unittest.cc",
       "../browser/ui/webui/signin/signin_error_handler_unittest.cc",
       "../browser/ui/webui/signin/sync_confirmation_handler_unittest.cc",
-      "../browser/upgrade_detector_impl_unittest.cc",
+      "../browser/upgrade_detector/upgrade_detector_impl_unittest.cc",
     ]
   }
   if (toolkit_views) {