diff --git a/update_manager/chromeos_policy_unittest.cc b/update_manager/chromeos_policy_unittest.cc
index e456e19..f74eb8b 100644
--- a/update_manager/chromeos_policy_unittest.cc
+++ b/update_manager/chromeos_policy_unittest.cc
@@ -22,7 +22,7 @@
 #include <vector>
 
 #include <base/time/time.h>
-#include <chromeos/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/fake_message_loop.h>
 #include <gtest/gtest.h>
 
 #include "update_engine/fake_clock.h"
@@ -195,7 +195,7 @@
         << "\nEvaluation context: " << eval_ctx_->DumpContext();
   }
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
   FakeClock fake_clock_;
   FakeState fake_state_;
   scoped_refptr<EvaluationContext> eval_ctx_;
diff --git a/update_manager/evaluation_context.cc b/update_manager/evaluation_context.cc
index 65d9460..0453eac 100644
--- a/update_manager/evaluation_context.cc
+++ b/update_manager/evaluation_context.cc
@@ -32,7 +32,7 @@
 using base::Closure;
 using base::Time;
 using base::TimeDelta;
-using chromeos::MessageLoop;
+using brillo::MessageLoop;
 using chromeos_update_engine::ClockInterface;
 using std::string;
 using std::unique_ptr;
diff --git a/update_manager/evaluation_context.h b/update_manager/evaluation_context.h
index e109348..a57daa6 100644
--- a/update_manager/evaluation_context.h
+++ b/update_manager/evaluation_context.h
@@ -26,7 +26,7 @@
 #include <base/memory/ref_counted.h>
 #include <base/memory/weak_ptr.h>
 #include <base/time/time.h>
-#include <chromeos/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop.h>
 
 #include "update_engine/clock_interface.h"
 #include "update_engine/update_manager/boxed_value.h"
@@ -163,8 +163,8 @@
 
   // The TaskId returned by the message loop identifying the timeout callback.
   // Used for canceling the timeout callback.
-  chromeos::MessageLoop::TaskId timeout_event_ =
-      chromeos::MessageLoop::kTaskIdNull;
+  brillo::MessageLoop::TaskId timeout_event_ =
+      brillo::MessageLoop::kTaskIdNull;
 
   // Whether a timeout event firing marks the expiration of the evaluation
   // context.
diff --git a/update_manager/evaluation_context_unittest.cc b/update_manager/evaluation_context_unittest.cc
index 5c5a71b..3f2ff5e 100644
--- a/update_manager/evaluation_context_unittest.cc
+++ b/update_manager/evaluation_context_unittest.cc
@@ -20,8 +20,8 @@
 #include <string>
 
 #include <base/bind.h>
-#include <chromeos/message_loops/fake_message_loop.h>
-#include <chromeos/message_loops/message_loop_utils.h>
+#include <brillo/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/message_loop_utils.h>
 #include <gtest/gtest.h>
 
 #include "update_engine/fake_clock.h"
@@ -34,9 +34,9 @@
 using base::Closure;
 using base::Time;
 using base::TimeDelta;
-using chromeos::MessageLoop;
-using chromeos::MessageLoopRunMaxIterations;
-using chromeos::MessageLoopRunUntil;
+using brillo::MessageLoop;
+using brillo::MessageLoopRunMaxIterations;
+using brillo::MessageLoopRunUntil;
 using chromeos_update_engine::FakeClock;
 using std::string;
 using std::unique_ptr;
@@ -121,7 +121,7 @@
 
   TimeDelta default_timeout_ = TimeDelta::FromSeconds(5);
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
   FakeClock fake_clock_;
   scoped_refptr<EvaluationContext> eval_ctx_;
 
diff --git a/update_manager/generic_variables_unittest.cc b/update_manager/generic_variables_unittest.cc
index 5ea48f9..cb0c48f 100644
--- a/update_manager/generic_variables_unittest.cc
+++ b/update_manager/generic_variables_unittest.cc
@@ -19,15 +19,15 @@
 #include <memory>
 
 #include <base/callback.h>
-#include <chromeos/message_loops/fake_message_loop.h>
-#include <chromeos/message_loops/message_loop.h>
-#include <chromeos/message_loops/message_loop_utils.h>
+#include <brillo/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop_utils.h>
 #include <gtest/gtest.h>
 
 #include "update_engine/update_manager/umtest_utils.h"
 
-using chromeos::MessageLoop;
-using chromeos::MessageLoopRunMaxIterations;
+using brillo::MessageLoop;
+using brillo::MessageLoopRunMaxIterations;
 using std::unique_ptr;
 
 namespace chromeos_update_manager {
@@ -158,7 +158,7 @@
   }
 
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
 };
 
 TEST_F(UmAsyncCopyVariableTest, ConstructorTest) {
diff --git a/update_manager/real_config_provider.cc b/update_manager/real_config_provider.cc
index 1713320..ebaac75 100644
--- a/update_manager/real_config_provider.cc
+++ b/update_manager/real_config_provider.cc
@@ -18,13 +18,13 @@
 
 #include <base/files/file_path.h>
 #include <base/logging.h>
-#include <chromeos/key_value_store.h>
+#include <brillo/key_value_store.h>
 
 #include "update_engine/constants.h"
 #include "update_engine/update_manager/generic_variables.h"
 #include "update_engine/utils.h"
 
-using chromeos::KeyValueStore;
+using brillo::KeyValueStore;
 
 namespace {
 
diff --git a/update_manager/real_device_policy_provider.cc b/update_manager/real_device_policy_provider.cc
index f158e27..e7ddb13 100644
--- a/update_manager/real_device_policy_provider.cc
+++ b/update_manager/real_device_policy_provider.cc
@@ -28,7 +28,7 @@
 #include "update_engine/utils.h"
 
 using base::TimeDelta;
-using chromeos::MessageLoop;
+using brillo::MessageLoop;
 using policy::DevicePolicy;
 using std::set;
 using std::string;
diff --git a/update_manager/real_device_policy_provider.h b/update_manager/real_device_policy_provider.h
index 2bb9cad..6094e93 100644
--- a/update_manager/real_device_policy_provider.h
+++ b/update_manager/real_device_policy_provider.h
@@ -20,7 +20,7 @@
 #include <set>
 #include <string>
 
-#include <chromeos/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 #include <policy/libpolicy.h>
 #include <session_manager/dbus-proxies.h>
@@ -132,8 +132,8 @@
   policy::PolicyProvider* policy_provider_;
 
   // Used to schedule refreshes of the device policy.
-  chromeos::MessageLoop::TaskId scheduled_refresh_{
-      chromeos::MessageLoop::kTaskIdNull};
+  brillo::MessageLoop::TaskId scheduled_refresh_{
+      brillo::MessageLoop::kTaskIdNull};
 
   // The DBus (mockable) session manager proxy, owned by the caller.
   org::chromium::SessionManagerInterfaceProxyInterface* session_manager_proxy_{
diff --git a/update_manager/real_device_policy_provider_unittest.cc b/update_manager/real_device_policy_provider_unittest.cc
index 93bf1bb..cd2829d 100644
--- a/update_manager/real_device_policy_provider_unittest.cc
+++ b/update_manager/real_device_policy_provider_unittest.cc
@@ -18,9 +18,9 @@
 
 #include <memory>
 
-#include <chromeos/message_loops/fake_message_loop.h>
-#include <chromeos/message_loops/message_loop.h>
-#include <chromeos/message_loops/message_loop_utils.h>
+#include <brillo/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop_utils.h>
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
 #include <policy/mock_device_policy.h>
@@ -33,7 +33,7 @@
 #include "update_engine/update_manager/umtest_utils.h"
 
 using base::TimeDelta;
-using chromeos::MessageLoop;
+using brillo::MessageLoop;
 using chromeos_update_engine::dbus_test_utils::MockSignalHandler;
 using std::set;
 using std::string;
@@ -88,7 +88,7 @@
         .WillByDefault(ReturnRef(mock_device_policy_));
   }
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
   org::chromium::SessionManagerInterfaceProxyMock session_manager_proxy_mock_;
   testing::NiceMock<policy::MockDevicePolicy> mock_device_policy_;
   testing::NiceMock<policy::MockPolicyProvider> mock_policy_provider_;
diff --git a/update_manager/real_shill_provider.cc b/update_manager/real_shill_provider.cc
index a38c006..da0b545 100644
--- a/update_manager/real_shill_provider.cc
+++ b/update_manager/real_shill_provider.cc
@@ -20,7 +20,7 @@
 
 #include <base/logging.h>
 #include <base/strings/stringprintf.h>
-#include <chromeos/type_name_undecorate.h>
+#include <brillo/type_name_undecorate.h>
 #include <shill/dbus-constants.h>
 #include <shill/dbus-proxies.h>
 
@@ -72,8 +72,8 @@
   // Attempt to read initial connection status. Even if this fails because shill
   // is not responding (e.g. it is down) we'll be notified via "PropertyChanged"
   // signal as soon as it comes up, so this is not a critical step.
-  chromeos::VariantDictionary properties;
-  chromeos::ErrorPtr error;
+  brillo::VariantDictionary properties;
+  brillo::ErrorPtr error;
   if (!manager_proxy->GetProperties(&properties, &error))
     return true;
 
@@ -88,13 +88,13 @@
 }
 
 void RealShillProvider::OnManagerPropertyChanged(const string& name,
-                                                 const chromeos::Any& value) {
+                                                 const brillo::Any& value) {
   if (name == shill::kDefaultServiceProperty) {
     dbus::ObjectPath service_path = value.TryGet<dbus::ObjectPath>();
     if (!service_path.IsValid()) {
       LOG(WARNING) << "Got an invalid DefaultService path. The property value "
                       "contains a "
-                   << chromeos::UndecorateTypeName(value.GetType().name())
+                   << brillo::UndecorateTypeName(value.GetType().name())
                    << ", read as the object path: '" << service_path.value()
                    << "'";
     }
@@ -136,8 +136,8 @@
       shill_proxy_->GetServiceForPath(default_service_path_);
 
   // Get the connection properties synchronously.
-  chromeos::VariantDictionary properties;
-  chromeos::ErrorPtr error;
+  brillo::VariantDictionary properties;
+  brillo::ErrorPtr error;
   if (!service->GetProperties(&properties, &error)) {
     var_conn_type_.UnsetValue();
     var_conn_tethering_.UnsetValue();
diff --git a/update_manager/real_shill_provider.h b/update_manager/real_shill_provider.h
index aca4bae..5f3f6bf 100644
--- a/update_manager/real_shill_provider.h
+++ b/update_manager/real_shill_provider.h
@@ -69,7 +69,7 @@
  private:
   // A handler for ManagerProxy.PropertyChanged signal.
   void OnManagerPropertyChanged(const std::string& name,
-                                const chromeos::Any& value);
+                                const brillo::Any& value);
 
   // Called when the signal in ManagerProxy.PropertyChanged is connected.
   void OnSignalConnected(const std::string& interface_name,
diff --git a/update_manager/real_shill_provider_unittest.cc b/update_manager/real_shill_provider_unittest.cc
index cab4f60..7272019 100644
--- a/update_manager/real_shill_provider_unittest.cc
+++ b/update_manager/real_shill_provider_unittest.cc
@@ -19,8 +19,8 @@
 #include <utility>
 
 #include <base/time/time.h>
-#include <chromeos/make_unique_ptr.h>
-#include <chromeos/message_loops/fake_message_loop.h>
+#include <brillo/make_unique_ptr.h>
+#include <brillo/message_loops/fake_message_loop.h>
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
 #include <shill/dbus-constants.h>
@@ -200,13 +200,13 @@
                                         provider_->var_conn_last_changed());
   }
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
   FakeClock fake_clock_;
   chromeos_update_engine::FakeShillProxy fake_shill_proxy_;
 
   // The registered signal handler for the signal Manager.PropertyChanged.
   chromeos_update_engine::dbus_test_utils::MockSignalHandler<
-      void(const std::string&, const chromeos::Any&)> manager_property_changed_;
+      void(const std::string&, const brillo::Any&)> manager_property_changed_;
 
   unique_ptr<RealShillProvider> provider_;
 };
@@ -222,7 +222,7 @@
 
   // Create a dictionary of properties and optionally include the default
   // service.
-  chromeos::VariantDictionary reply_dict;
+  brillo::VariantDictionary reply_dict;
   reply_dict["SomeOtherProperty"] = 0xC0FFEE;
 
   if (default_service) {
@@ -238,7 +238,7 @@
     const char* service_type,
     const char* physical_technology,
     const char* service_tethering) {
-  chromeos::VariantDictionary reply_dict;
+  brillo::VariantDictionary reply_dict;
   reply_dict["SomeOtherProperty"] = 0xC0FFEE;
 
   if (service_type)
@@ -260,7 +260,7 @@
 
   fake_shill_proxy_.SetServiceForPath(
       dbus::ObjectPath(service_path),
-      chromeos::make_unique_ptr(service_proxy_mock));
+      brillo::make_unique_ptr(service_proxy_mock));
   return service_proxy_mock;
 }
 
@@ -288,7 +288,7 @@
 // Ensure that a service path property including a different type is ignored.
 TEST_F(UmRealShillProviderTest, InvalidServicePathType) {
   ManagerProxyMock* manager_proxy_mock = fake_shill_proxy_.GetManagerProxy();
-  chromeos::VariantDictionary reply_dict;
+  brillo::VariantDictionary reply_dict;
   reply_dict[shill::kDefaultServiceProperty] = "/not/an/object/path";
   EXPECT_CALL(*manager_proxy_mock, GetProperties(_, _, _))
       .WillOnce(DoAll(SetArgPointee<0>(reply_dict), Return(true)));
diff --git a/update_manager/update_manager-inl.h b/update_manager/update_manager-inl.h
index 2f6b603..77224cf 100644
--- a/update_manager/update_manager-inl.h
+++ b/update_manager/update_manager-inl.h
@@ -22,7 +22,7 @@
 
 #include <base/bind.h>
 #include <base/location.h>
-#include <chromeos/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop.h>
 
 #include "update_engine/update_manager/evaluation_context.h"
 
@@ -157,7 +157,7 @@
   base::Closure eval_callback = base::Bind(
       &UpdateManager::OnPolicyReadyToEvaluate<R, ExpectedArgs...>,
       base::Unretained(this), ec, callback, policy_method, args...);
-  chromeos::MessageLoop::current()->PostTask(FROM_HERE, eval_callback);
+  brillo::MessageLoop::current()->PostTask(FROM_HERE, eval_callback);
 }
 
 }  // namespace chromeos_update_manager
diff --git a/update_manager/update_manager_unittest.cc b/update_manager/update_manager_unittest.cc
index d49824e..03f37c7 100644
--- a/update_manager/update_manager_unittest.cc
+++ b/update_manager/update_manager_unittest.cc
@@ -28,9 +28,9 @@
 #include <base/bind.h>
 #include <base/test/simple_test_clock.h>
 #include <base/time/time.h>
-#include <chromeos/message_loops/fake_message_loop.h>
-#include <chromeos/message_loops/message_loop.h>
-#include <chromeos/message_loops/message_loop_utils.h>
+#include <brillo/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop_utils.h>
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
 
@@ -44,8 +44,8 @@
 using base::Callback;
 using base::Time;
 using base::TimeDelta;
-using chromeos::MessageLoop;
-using chromeos::MessageLoopRunMaxIterations;
+using brillo::MessageLoop;
+using brillo::MessageLoopRunMaxIterations;
 using chromeos_update_engine::ErrorCode;
 using chromeos_update_engine::FakeClock;
 using std::pair;
@@ -88,7 +88,7 @@
   }
 
   base::SimpleTestClock test_clock_;
-  chromeos::FakeMessageLoop loop_{&test_clock_};
+  brillo::FakeMessageLoop loop_{&test_clock_};
   FakeState* fake_state_;  // Owned by the umut_.
   FakeClock fake_clock_;
   unique_ptr<UpdateManager> umut_;
diff --git a/update_manager/variable.h b/update_manager/variable.h
index a568a37..98774ef 100644
--- a/update_manager/variable.h
+++ b/update_manager/variable.h
@@ -25,7 +25,7 @@
 #include <base/location.h>
 #include <base/logging.h>
 #include <base/time/time.h>
-#include <chromeos/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
 namespace chromeos_update_manager {
@@ -120,7 +120,7 @@
     // to avoid scheduling these callbacks when it is not needed, we check
     // first the list of observers.
     if (!observer_list_.empty()) {
-      chromeos::MessageLoop::current()->PostTask(
+      brillo::MessageLoop::current()->PostTask(
           FROM_HERE,
           base::Bind(&BaseVariable::OnValueChangedNotification,
                      base::Unretained(this)));
diff --git a/update_manager/variable_unittest.cc b/update_manager/variable_unittest.cc
index 0622db0..13cceb1 100644
--- a/update_manager/variable_unittest.cc
+++ b/update_manager/variable_unittest.cc
@@ -18,14 +18,14 @@
 
 #include <vector>
 
-#include <chromeos/message_loops/fake_message_loop.h>
-#include <chromeos/message_loops/message_loop.h>
-#include <chromeos/message_loops/message_loop_utils.h>
+#include <brillo/message_loops/fake_message_loop.h>
+#include <brillo/message_loops/message_loop.h>
+#include <brillo/message_loops/message_loop_utils.h>
 #include <gtest/gtest.h>
 
 using base::TimeDelta;
-using chromeos::MessageLoop;
-using chromeos::MessageLoopRunMaxIterations;
+using brillo::MessageLoop;
+using brillo::MessageLoopRunMaxIterations;
 using std::string;
 using std::vector;
 
@@ -57,7 +57,7 @@
     loop_.SetAsCurrent();
   }
 
-  chromeos::FakeMessageLoop loop_{nullptr};
+  brillo::FakeMessageLoop loop_{nullptr};
 };
 
 TEST_F(UmBaseVariableTest, GetNameTest) {
