Update from https://crrev.com/328418

This includes the switch to libc++ on android.

Fixes outside of the rolled code:

*) ::TestSuite -> base::TestSuite
*) base::ScopedPtrHashMap's second parameter Value->scoped_ptr<Value>
*) re2 std::tr1 changes from upstream libc++ changes
*) tracked_objects:: api changes in mojo/common/task_tracker*

Review URL: https://codereview.chromium.org/1128733002
diff --git a/base/prefs/pref_member_unittest.cc b/base/prefs/pref_member_unittest.cc
index 435122b..a776e2c 100644
--- a/base/prefs/pref_member_unittest.cc
+++ b/base/prefs/pref_member_unittest.cc
@@ -5,9 +5,10 @@
 #include "base/prefs/pref_member.h"
 
 #include "base/bind.h"
-#include "base/message_loop/message_loop.h"
+#include "base/location.h"
 #include "base/prefs/pref_registry_simple.h"
 #include "base/prefs/testing_pref_service.h"
+#include "base/single_thread_task_runner.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -37,7 +38,7 @@
 
   void Init(const std::string& pref_name, PrefService* prefs) {
     pref_.Init(pref_name, prefs);
-    pref_.MoveToThread(pref_thread_.message_loop_proxy());
+    pref_.MoveToThread(pref_thread_.task_runner());
   }
 
   void Destroy() {
@@ -46,10 +47,9 @@
 
   void FetchValue() {
     base::WaitableEvent event(true, false);
-    ASSERT_TRUE(
-        pref_thread_.message_loop_proxy()->PostTask(
-            FROM_HERE,
-            base::Bind(&GetPrefValueHelper::GetPrefValue, this, &event)));
+    ASSERT_TRUE(pref_thread_.task_runner()->PostTask(
+        FROM_HERE,
+        base::Bind(&GetPrefValueHelper::GetPrefValue, this, &event)));
     event.Wait();
   }
 
@@ -100,7 +100,11 @@
 
 }  // anonymous namespace
 
-TEST(PrefMemberTest, BasicGetAndSet) {
+class PrefMemberTest : public testing::Test {
+  base::MessageLoop message_loop_;
+};
+
+TEST_F(PrefMemberTest, BasicGetAndSet) {
   TestingPrefServiceSimple prefs;
   RegisterTestPrefs(prefs.registry());
 
@@ -227,7 +231,7 @@
   EXPECT_EQ(expected_vector, *string_list);
 }
 
-TEST(PrefMemberTest, InvalidList) {
+TEST_F(PrefMemberTest, InvalidList) {
   // Set the vector to an initial good value.
   std::vector<std::string> expected_vector;
   expected_vector.push_back("foo");
@@ -245,7 +249,7 @@
   EXPECT_EQ(expected_vector, vector);
 }
 
-TEST(PrefMemberTest, TwoPrefs) {
+TEST_F(PrefMemberTest, TwoPrefs) {
   // Make sure two DoublePrefMembers stay in sync.
   TestingPrefServiceSimple prefs;
   RegisterTestPrefs(prefs.registry());
@@ -266,7 +270,7 @@
   EXPECT_EQ(4.2, *pref2);
 }
 
-TEST(PrefMemberTest, Observer) {
+TEST_F(PrefMemberTest, Observer) {
   TestingPrefServiceSimple prefs;
   RegisterTestPrefs(prefs.registry());
 
@@ -293,12 +297,12 @@
   EXPECT_EQ("hello", prefs.GetString(kStringPref));
 }
 
-TEST(PrefMemberTest, NoInit) {
+TEST_F(PrefMemberTest, NoInit) {
   // Make sure not calling Init on a PrefMember doesn't cause problems.
   IntegerPrefMember pref;
 }
 
-TEST(PrefMemberTest, MoveToThread) {
+TEST_F(PrefMemberTest, MoveToThread) {
   TestingPrefServiceSimple prefs;
   scoped_refptr<GetPrefValueHelper> helper(new GetPrefValueHelper());
   RegisterTestPrefs(prefs.registry());