[go: up one dir, main page]

Disable DirectoryMonitor in macOS builds.

DirectoryMonitor is triggering a crash in FilePathWatcherKQueue. This CL
disables it for macOS (and omits it from the build). As a consequence,
UpgradeDetector will revert to only detecting upgrades on macOS via the
2h poll.

Bug: 1099386
Bug: 1156603
Change-Id: I54f53588f593abc6bbe0684aac26efbc6b6feb5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2665947
Commit-Queue: Greg Thompson <grt@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/branch-heads/4324@{#2087}
Cr-Branched-From: c73b5a651d37a6c4d0b8e3262cc4015a5579c6c8-refs/heads/master@{#827102}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 2ce41b5..2ae270b 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4877,8 +4877,6 @@
       "renderer_host/chrome_render_widget_host_view_mac_history_swiper.h",
       "renderer_host/chrome_render_widget_host_view_mac_history_swiper.mm",
       "shell_integration_mac.mm",
-      "upgrade_detector/directory_monitor.cc",
-      "upgrade_detector/directory_monitor.h",
       "upgrade_detector/get_installed_version_mac.mm",
     ]
     deps += [
diff --git a/chrome/browser/upgrade_detector/installed_version_poller.cc b/chrome/browser/upgrade_detector/installed_version_poller.cc
index 3202016..9d6bab99 100644
--- a/chrome/browser/upgrade_detector/installed_version_poller.cc
+++ b/chrome/browser/upgrade_detector/installed_version_poller.cc
@@ -18,6 +18,7 @@
 #include "base/task/post_task.h"
 #include "base/task/thread_pool.h"
 #include "base/threading/sequenced_task_runner_handle.h"
+#include "build/build_config.h"
 #include "chrome/browser/upgrade_detector/build_state.h"
 #include "chrome/browser/upgrade_detector/get_installed_version.h"
 #include "chrome/browser/upgrade_detector/installed_version_monitor.h"
@@ -90,6 +91,15 @@
   return InstalledVersionPoller::kDefaultPollingInterval;
 }
 
+std::unique_ptr<InstalledVersionMonitor> MakeInstalledVersionMonitor() {
+// Temporarily disabled for macOS due to https://crbug.com/1156603.
+#if defined(OS_MAC)
+  return nullptr;
+#else
+  return InstalledVersionMonitor::Create();
+#endif
+}
+
 }  // namespace
 
 // InstalledVersionPoller::ScopedDisableForTesting ----------------------------
@@ -120,7 +130,7 @@
 InstalledVersionPoller::InstalledVersionPoller(BuildState* build_state)
     : InstalledVersionPoller(build_state,
                              GetGetInstalledVersionCallback(),
-                             InstalledVersionMonitor::Create(),
+                             MakeInstalledVersionMonitor(),
                              nullptr) {}
 
 InstalledVersionPoller::InstalledVersionPoller(
@@ -149,8 +159,11 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!monitor_);
   monitor_ = std::move(monitor);
-  monitor_->Start(base::BindRepeating(&InstalledVersionPoller::OnMonitorResult,
-                                      weak_ptr_factory_.GetWeakPtr()));
+  if (monitor_) {
+    monitor_->Start(
+        base::BindRepeating(&InstalledVersionPoller::OnMonitorResult,
+                            weak_ptr_factory_.GetWeakPtr()));
+  }
 }
 
 void InstalledVersionPoller::OnMonitorResult(bool error) {
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 4579f62..0096bea 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -3914,7 +3914,6 @@
       "../browser/policy/browser_dm_token_storage_mac_unittest.cc",
       "../browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm",
       "../browser/service_process/service_process_control_mac_unittest.mm",
-      "../browser/upgrade_detector/directory_monitor_unittest.cc",
       "../common/mac/mock_launchd.h",
       "../common/mac/mock_launchd.mm",
     ]