diff --git a/src/commands/cloud_command_proxy_unittest.cc b/src/commands/cloud_command_proxy_unittest.cc
index e0bd4fc..3c65cd1 100644
--- a/src/commands/cloud_command_proxy_unittest.cc
+++ b/src/commands/cloud_command_proxy_unittest.cc
@@ -77,9 +77,7 @@
                           task_runner},
         destruct_callback_{destruct_callback} {}
 
-  ~CloudCommandProxyWrapper() {
-    destruct_callback_.Run();
-  }
+  ~CloudCommandProxyWrapper() { destruct_callback_.Run(); }
 
  private:
   base::Closure destruct_callback_;
diff --git a/src/commands/command_queue.cc b/src/commands/command_queue.cc
index f0d2228..8faae35 100644
--- a/src/commands/command_queue.cc
+++ b/src/commands/command_queue.cc
@@ -124,9 +124,8 @@
 
 void CommandQueue::ScheduleCleanup(base::TimeDelta delay) {
   task_runner_->PostDelayedTask(
-      FROM_HERE,
-      base::Bind(&CommandQueue::PerformScheduledCleanup,
-                 weak_ptr_factory_.GetWeakPtr()),
+      FROM_HERE, base::Bind(&CommandQueue::PerformScheduledCleanup,
+                            weak_ptr_factory_.GetWeakPtr()),
       delay);
 }
 
diff --git a/src/component_manager_impl.cc b/src/component_manager_impl.cc
index 9712a3c..0ac6e4d 100644
--- a/src/component_manager_impl.cc
+++ b/src/component_manager_impl.cc
@@ -34,15 +34,14 @@
   std::vector<std::string> state_props_to_remove;
   base::DictionaryValue* state = nullptr;
   if (component->GetDictionary("state", &state)) {
-    for (base::DictionaryValue::Iterator it_trait(*state);
-          !it_trait.IsAtEnd(); it_trait.Advance()) {
+    for (base::DictionaryValue::Iterator it_trait(*state); !it_trait.IsAtEnd();
+         it_trait.Advance()) {
       const base::DictionaryValue* trait = nullptr;
       CHECK(it_trait.value().GetAsDictionary(&trait));
-      for (base::DictionaryValue::Iterator it_prop(*trait);
-            !it_prop.IsAtEnd(); it_prop.Advance()) {
-        std::string prop_name = base::StringPrintf("%s.%s",
-                                                    it_trait.key().c_str(),
-                                                    it_prop.key().c_str());
+      for (base::DictionaryValue::Iterator it_prop(*trait); !it_prop.IsAtEnd();
+           it_prop.Advance()) {
+        std::string prop_name = base::StringPrintf(
+            "%s.%s", it_trait.key().c_str(), it_prop.key().c_str());
         UserRole minimal_role;
         if (manager->GetStateMinimalRole(prop_name, &minimal_role, nullptr) &&
             minimal_role > role) {
@@ -438,9 +437,9 @@
     ErrorPtr* error) const {
   const base::DictionaryValue* state = FindStateDefinition(state_property_name);
   if (!state) {
-    return Error::AddToPrintf(
-        error, FROM_HERE, errors::commands::kInvalidState,
-        "State definition for '%s' not found", state_property_name.c_str());
+    return Error::AddToPrintf(error, FROM_HERE, errors::commands::kInvalidState,
+                              "State definition for '%s' not found",
+                              state_property_name.c_str());
   }
   std::string value;
   if (state->GetString(kMinimalRole, &value)) {
diff --git a/src/component_manager_impl.h b/src/component_manager_impl.h
index 5550d99..f7995ed 100644
--- a/src/component_manager_impl.h
+++ b/src/component_manager_impl.h
@@ -127,8 +127,8 @@
 
   // Checks the minimum required user role for a given state.
   bool GetStateMinimalRole(const std::string& state_property_name,
-                             UserRole* minimal_role,
-                             ErrorPtr* error) const override;
+                           UserRole* minimal_role,
+                           ErrorPtr* error) const override;
 
   // Returns the full JSON dictionary containing trait definitions.
   const base::DictionaryValue& GetTraits() const override { return traits_; }
diff --git a/src/component_manager_unittest.cc b/src/component_manager_unittest.cc
index f0db3ef..cdd089e 100644
--- a/src/component_manager_unittest.cc
+++ b/src/component_manager_unittest.cc
@@ -423,24 +423,24 @@
   ASSERT_TRUE(manager_.LoadTraits(*json, nullptr));
 
   UserRole role;
-  ASSERT_TRUE(manager_.GetCommandMinimalRole("trait1.command1", &role,
-                                             nullptr));
+  ASSERT_TRUE(
+      manager_.GetCommandMinimalRole("trait1.command1", &role, nullptr));
   EXPECT_EQ(UserRole::kUser, role);
 
-  ASSERT_TRUE(manager_.GetCommandMinimalRole("trait1.command2", &role,
-                                             nullptr));
+  ASSERT_TRUE(
+      manager_.GetCommandMinimalRole("trait1.command2", &role, nullptr));
   EXPECT_EQ(UserRole::kViewer, role);
 
-  ASSERT_TRUE(manager_.GetCommandMinimalRole("trait2.command1", &role,
-                                             nullptr));
+  ASSERT_TRUE(
+      manager_.GetCommandMinimalRole("trait2.command1", &role, nullptr));
   EXPECT_EQ(UserRole::kManager, role);
 
-  ASSERT_TRUE(manager_.GetCommandMinimalRole("trait2.command2", &role,
-                                             nullptr));
+  ASSERT_TRUE(
+      manager_.GetCommandMinimalRole("trait2.command2", &role, nullptr));
   EXPECT_EQ(UserRole::kOwner, role);
 
-  EXPECT_FALSE(manager_.GetCommandMinimalRole("trait1.command3", &role,
-                                              nullptr));
+  EXPECT_FALSE(
+      manager_.GetCommandMinimalRole("trait1.command3", &role, nullptr));
 }
 
 TEST_F(ComponentManagerTest, GetStateMinimalRole) {
@@ -478,8 +478,8 @@
   ASSERT_TRUE(manager_.GetStateMinimalRole("trait2.property2", &role, nullptr));
   EXPECT_EQ(UserRole::kOwner, role);
 
-  ASSERT_FALSE(manager_.GetStateMinimalRole("trait2.property3", &role,
-                                            nullptr));
+  ASSERT_FALSE(
+      manager_.GetStateMinimalRole("trait2.property3", &role, nullptr));
 }
 
 TEST_F(ComponentManagerTest, AddComponent) {
@@ -572,8 +572,8 @@
 
 TEST_F(ComponentManagerTest, RemoveComponent) {
   CreateTestComponentTree(&manager_);
-  EXPECT_TRUE(manager_.RemoveComponent("comp1.comp2[1].comp3", "comp4",
-                                       nullptr));
+  EXPECT_TRUE(
+      manager_.RemoveComponent("comp1.comp2[1].comp3", "comp4", nullptr));
   const char kExpected1[] = R"({
     "comp1": {
       "traits": [ "t1" ],
@@ -1333,25 +1333,25 @@
   })";
   auto json = CreateDictionaryValue(kTraits);
   ASSERT_TRUE(manager_.LoadTraits(*json, nullptr));
-  ASSERT_TRUE(manager_.AddComponent("", "comp1", {"trait1", "trait2"},
-                                    nullptr));
+  ASSERT_TRUE(
+      manager_.AddComponent("", "comp1", {"trait1", "trait2"}, nullptr));
   ASSERT_TRUE(manager_.AddComponent("", "comp2", {"trait2"}, nullptr));
-  ASSERT_TRUE(manager_.AddComponentArrayItem("comp2", "comp3", {"trait3"},
-                                             nullptr));
+  ASSERT_TRUE(
+      manager_.AddComponentArrayItem("comp2", "comp3", {"trait3"}, nullptr));
   ASSERT_TRUE(manager_.AddComponent("comp2", "comp4", {"trait3"}, nullptr));
 
   const char kComp1Properties[] = R"({
     "trait1": { "prop1": "foo", "prop2": "bar" },
     "trait2": { "prop3": "baz", "prop4": "quux" }
   })";
-  ASSERT_TRUE(manager_.SetStatePropertiesFromJson("comp1", kComp1Properties,
-                                                  nullptr));
+  ASSERT_TRUE(
+      manager_.SetStatePropertiesFromJson("comp1", kComp1Properties, nullptr));
 
   const char kComp2Properties[] = R"({
     "trait2": { "prop3": "foo", "prop4": "bar" }
   })";
-  ASSERT_TRUE(manager_.SetStatePropertiesFromJson("comp2", kComp2Properties,
-                                                  nullptr));
+  ASSERT_TRUE(
+      manager_.SetStatePropertiesFromJson("comp2", kComp2Properties, nullptr));
 
   const char kComp3Properties[] = R"({
     "trait3": { "prop5": "foo" }
diff --git a/src/config_unittest.cc b/src/config_unittest.cc
index bb2743a..3c020f4 100644
--- a/src/config_unittest.cc
+++ b/src/config_unittest.cc
@@ -25,9 +25,7 @@
 
 class ConfigTest : public ::testing::Test {
  protected:
-  void SetUp() override {
-    Reload();
-  }
+  void SetUp() override { Reload(); }
 
   void Reload() {
     EXPECT_CALL(*this, OnConfigChanged(_)).Times(1);
diff --git a/src/device_registration_info_unittest.cc b/src/device_registration_info_unittest.cc
index adc5175..757b1c9 100644
--- a/src/device_registration_info_unittest.cc
+++ b/src/device_registration_info_unittest.cc
@@ -207,10 +207,10 @@
   std::unique_ptr<Config> config_;
   test::MockClock clock_;
   privet::AuthManager auth_{
-      {68, 52, 36, 95, 74, 89, 25, 2, 31, 5, 65, 87, 64, 32, 17, 26, 8, 73, 57,
-       16, 33, 82, 71, 10, 72, 62, 45, 1, 77, 97, 70, 24},
-      {21, 6, 58, 4, 66, 13, 14, 60, 55, 22, 11, 38, 96, 40, 81, 90, 3, 51, 50,
-       23, 56, 76, 47, 46, 27, 69, 20, 80, 88, 93, 15, 61},
+      {68, 52, 36, 95, 74, 89, 25, 2,  31, 5,  65, 87, 64, 32, 17, 26,
+       8,  73, 57, 16, 33, 82, 71, 10, 72, 62, 45, 1,  77, 97, 70, 24},
+      {21, 6,  58, 4,  66, 13, 14, 60, 55, 22, 11, 38, 96, 40, 81, 90,
+       3,  51, 50, 23, 56, 76, 47, 46, 27, 69, 20, 80, 88, 93, 15, 61},
       {},
       &clock_};
   std::unique_ptr<DeviceRegistrationInfo> dev_reg_;
diff --git a/src/privet/privet_handler.cc b/src/privet/privet_handler.cc
index 813812b..3ee8211 100644
--- a/src/privet/privet_handler.cc
+++ b/src/privet/privet_handler.cc
@@ -906,8 +906,8 @@
     auto parts = Split(path, ".", true, false);
     components->Set(parts.back(), CloneComponent(*component, filter).release());
   } else {
-    components = CloneComponentTree(*cloud_->GetComponentsForUser(user_info),
-                                    filter);
+    components =
+        CloneComponentTree(*cloud_->GetComponentsForUser(user_info), filter);
   }
   base::DictionaryValue output;
   output.Set(kComponentsKey, components.release());
diff --git a/src/privet/security_manager_unittest.cc b/src/privet/security_manager_unittest.cc
index f596de9..526921c 100644
--- a/src/privet/security_manager_unittest.cc
+++ b/src/privet/security_manager_unittest.cc
@@ -138,15 +138,15 @@
   SecurityManagerConfigStore config_store_;
   Config config_{&config_store_};
   AuthManager auth_manager_{
-      {22, 47, 23, 77, 42, 98, 96, 25, 83, 16, 9, 14, 91, 44, 15, 75, 60, 62,
-       10, 18, 82, 35, 88, 100, 30, 45, 7, 46, 67, 84, 58, 85},
+      {22, 47, 23, 77, 42, 98, 96, 25,  83, 16, 9, 14, 91, 44, 15, 75,
+       60, 62, 10, 18, 82, 35, 88, 100, 30, 45, 7, 46, 67, 84, 58, 85},
       {
-          59, 47, 77, 247, 129, 187, 188, 158, 172, 105, 246, 93, 102, 83, 8,
-          138, 176, 141, 37, 63, 223, 40, 153, 121, 134, 23, 120, 106, 24, 205,
-          7, 135,
+          59,  47,  77,  247, 129, 187, 188, 158, 172, 105, 246,
+          93,  102, 83,  8,   138, 176, 141, 37,  63,  223, 40,
+          153, 121, 134, 23,  120, 106, 24,  205, 7,   135,
       },
-      {22, 47, 23, 77, 42, 98, 96, 25, 83, 16, 9, 14, 91, 44, 15, 75, 60, 62,
-       10, 18, 82, 35, 88, 100, 30, 45, 7, 46, 67, 84, 58, 85},
+      {22, 47, 23, 77, 42, 98, 96, 25,  83, 16, 9, 14, 91, 44, 15, 75,
+       60, 62, 10, 18, 82, 35, 88, 100, 30, 45, 7, 46, 67, 84, 58, 85},
       &clock_};
 
   SecurityManager security_{&config_, &auth_manager_, &task_runner_};
