diff --git a/config_unittest.cc b/config_unittest.cc
index 3bc380b..59516af 100644
--- a/config_unittest.cc
+++ b/config_unittest.cc
@@ -150,8 +150,8 @@
                    Error::Type expected_type,
                    const std::string& expected_message_start) {
     EXPECT_EQ(expected_type, error.type());
-    EXPECT_TRUE(
-        base::StartsWithASCII(error.message(), expected_message_start, false));
+    EXPECT_TRUE(base::StartsWith(error.message(), expected_message_start,
+                                 base::CompareCase::INSENSITIVE_ASCII));
   }
 
  protected:
diff --git a/event_dispatcher.cc b/event_dispatcher.cc
index bd36d4a..5e7d831 100644
--- a/event_dispatcher.cc
+++ b/event_dispatcher.cc
@@ -17,7 +17,7 @@
 #include "apmanager/event_dispatcher.h"
 
 #include <base/location.h>
-#include <base/message_loop/message_loop_proxy.h>
+#include <base/message_loop/message_loop.h>
 #include <base/time/time.h>
 
 namespace apmanager {
@@ -37,13 +37,19 @@
 }
 
 bool EventDispatcher::PostTask(const base::Closure& task) {
-  return base::MessageLoopProxy::current()->PostTask(FROM_HERE, task);
+  if (!base::MessageLoop::current())
+    return false;
+  base::MessageLoop::current()->PostTask(FROM_HERE, task);
+  return true;
 }
 
 bool EventDispatcher::PostDelayedTask(const base::Closure& task,
                                       int64_t delay_ms) {
-  return base::MessageLoopProxy::current()->PostDelayedTask(
+  if (!base::MessageLoop::current())
+    return false;
+  base::MessageLoop::current()->PostDelayedTask(
       FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms));
+  return true;
 }
 
 }  // namespace apmanager
diff --git a/service_unittest.cc b/service_unittest.cc
index 34d8721..80da773 100644
--- a/service_unittest.cc
+++ b/service_unittest.cc
@@ -105,8 +105,8 @@
                    Error::Type expected_type,
                    const std::string& expected_message_start) {
     EXPECT_EQ(expected_type, error.type());
-    EXPECT_TRUE(
-        base::StartsWithASCII(error.message(), expected_message_start, false));
+    EXPECT_TRUE(base::StartsWith(error.message(), expected_message_start,
+                                 base::CompareCase::INSENSITIVE_ASCII));
   }
 
  protected:
