diff --git a/DEPS b/DEPS
index c33e0a7..33ee196 100644
--- a/DEPS
+++ b/DEPS
@@ -232,7 +232,7 @@
     Var('chromium_git') + '/native_client/src/third_party/scons-2.0.1.git' + '@' + '1c1550e17fc26355d08627fbdec13d8291227067',
 
   'src/third_party/webrtc':
-    Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + '211c50088df09f0c99560b8ceb44a4971f68ff67', # commit position 18018
+    Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + 'd6b3a364ad022e96c4b5347f674abb426d69d75d', # commit position 18023
 
   'src/third_party/openmax_dl':
     Var('chromium_git') + '/external/webrtc/deps/third_party/openmax.git' + '@' +  Var('openmax_dl_revision'),
diff --git a/base/gmock_unittest.cc b/base/gmock_unittest.cc
index 855380a9..da8dd94e 100644
--- a/base/gmock_unittest.cc
+++ b/base/gmock_unittest.cc
@@ -13,7 +13,7 @@
 using testing::AnyOf;
 using testing::Eq;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::WithArg;
 using testing::_;
 
@@ -84,8 +84,7 @@
   // Capture an argument for examination.
   MockSampleClass mock;
 
-  EXPECT_CALL(mock, OutputParam(_))
-      .WillRepeatedly(SetArgumentPointee<0>(5));
+  EXPECT_CALL(mock, OutputParam(_)).WillRepeatedly(SetArgPointee<0>(5));
 
   int arg = 0;
   mock.OutputParam(&arg);
@@ -96,8 +95,7 @@
   // Capture an argument for examination.
   MockSampleClass mock;
 
-  EXPECT_CALL(mock, OutputParam(_))
-      .WillRepeatedly(SetArgumentPointee<0>(5));
+  EXPECT_CALL(mock, OutputParam(_)).WillRepeatedly(SetArgPointee<0>(5));
 
   int arg = 0;
   mock.OutputParam(&arg);
diff --git a/base/nix/xdg_util_unittest.cc b/base/nix/xdg_util_unittest.cc
index 1219bba8..32d33c54 100644
--- a/base/nix/xdg_util_unittest.cc
+++ b/base/nix/xdg_util_unittest.cc
@@ -11,7 +11,7 @@
 using ::testing::_;
 using ::testing::Eq;
 using ::testing::Return;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 
 namespace base {
 namespace nix {
@@ -49,7 +49,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kDesktopGnome), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopGnome), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
 }
@@ -58,7 +58,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kDesktopMATE), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopMATE), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
 }
@@ -67,7 +67,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kDesktopKDE4), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopKDE4), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE4, GetDesktopEnvironment(&getter));
 }
@@ -76,7 +76,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kDesktopKDE), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopKDE), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE3, GetDesktopEnvironment(&getter));
 }
@@ -85,7 +85,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kDesktopXFCE), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopXFCE), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_XFCE, GetDesktopEnvironment(&getter));
 }
@@ -94,7 +94,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopGNOME), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOME), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
 }
@@ -103,10 +103,9 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopUnity), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity), Return(true)));
   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
-      .WillOnce(
-          DoAll(SetArgumentPointee<1>(kDesktopGnomeFallback), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kDesktopGnomeFallback), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
 }
@@ -115,9 +114,9 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopKDE), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopKDE), Return(true)));
   EXPECT_CALL(getter, GetVar(Eq(kKDESession), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kKDESessionKDE5), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kKDESessionKDE5), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE5, GetDesktopEnvironment(&getter));
 }
@@ -126,7 +125,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopKDE), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopKDE), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE4, GetDesktopEnvironment(&getter));
 }
@@ -135,7 +134,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopUnity), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
 }
@@ -144,7 +143,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopUnity7), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity7), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
 }
@@ -153,7 +152,7 @@
   MockEnvironment getter;
   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kXdgDesktopUnity8), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity8), Return(true)));
 
   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index 0e120f2..2647bbd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -86,6 +86,7 @@
 import org.chromium.chrome.browser.history.HistoryManagerUtils;
 import org.chromium.chrome.browser.infobar.InfoBarContainer;
 import org.chromium.chrome.browser.init.AsyncInitializationActivity;
+import org.chromium.chrome.browser.init.ProcessInitializationHandler;
 import org.chromium.chrome.browser.media.VideoPersister;
 import org.chromium.chrome.browser.metrics.LaunchMetrics;
 import org.chromium.chrome.browser.metrics.StartupMetrics;
@@ -933,7 +934,7 @@
      */
     protected void onDeferredStartup() {
         initDeferredStartupForActivity();
-        DeferredStartupHandler.getInstance().initDeferredStartupForApp();
+        ProcessInitializationHandler.getInstance().initializeDeferredStartupTasks();
         DeferredStartupHandler.getInstance().queueDeferredTasksOnIdleHandler();
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java
index da9b5c7..a2b3aed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java
@@ -6,46 +6,17 @@
 
 import android.annotation.SuppressLint;
 import android.content.Context;
-import android.content.SharedPreferences;
-import android.os.AsyncTask;
 import android.os.Looper;
 import android.os.MessageQueue;
 import android.os.SystemClock;
-import android.support.annotation.UiThread;
-import android.support.annotation.WorkerThread;
 
 import org.chromium.base.ContextUtils;
-import org.chromium.base.Log;
-import org.chromium.base.PowerMonitor;
 import org.chromium.base.ThreadUtils;
-import org.chromium.base.TraceEvent;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider;
-import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
-import org.chromium.chrome.browser.crash.MinidumpUploadService;
-import org.chromium.chrome.browser.init.ProcessInitializationHandler;
-import org.chromium.chrome.browser.metrics.LaunchMetrics;
 import org.chromium.chrome.browser.metrics.UmaUtils;
-import org.chromium.chrome.browser.notifications.ChannelsUpdater;
-import org.chromium.chrome.browser.ntp.NewTabPage;
-import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
-import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
-import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
-import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
-import org.chromium.chrome.browser.precache.PrecacheLauncher;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
-import org.chromium.chrome.browser.share.ShareHelper;
-import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
-import org.chromium.chrome.browser.webapps.WebApkVersionManager;
-import org.chromium.chrome.browser.webapps.WebappRegistry;
-import org.chromium.components.minidump_uploader.CrashFileManager;
 
-import java.io.File;
-import java.util.Arrays;
-import java.util.Date;
 import java.util.LinkedList;
-import java.util.List;
 import java.util.Queue;
 import java.util.concurrent.TimeUnit;
 
@@ -53,18 +24,11 @@
  * Handler for application level tasks to be completed on deferred startup.
  */
 public class DeferredStartupHandler {
-    private static final String TAG = "DeferredStartup";
-    /** Prevents race conditions when deleting snapshot database. */
-    private static final Object SNAPSHOT_DATABASE_LOCK = new Object();
-    private static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed";
-    private static final String SNAPSHOT_DATABASE_NAME = "snapshots.db";
-
     private static class Holder {
         @SuppressLint("StaticFieldLeak")
         private static final DeferredStartupHandler INSTANCE = new DeferredStartupHandler();
     }
 
-    private boolean mDeferredStartupInitializedForApp;
     private boolean mDeferredStartupCompletedForApp;
     private long mDeferredStartupDuration;
     private long mMaxTaskDuration;
@@ -106,7 +70,7 @@
             public boolean queueIdle() {
                 Runnable currentTask = mDeferredTasks.poll();
                 if (currentTask == null) {
-                    if (mDeferredStartupInitializedForApp && !mDeferredStartupCompletedForApp) {
+                    if (!mDeferredStartupCompletedForApp) {
                         mDeferredStartupCompletedForApp = true;
                         recordDeferredStartupStats();
                     }
@@ -149,246 +113,6 @@
     }
 
     /**
-     * Handle application level deferred startup tasks that can be lazily done after all
-     * the necessary initialization has been completed. Any calls requiring network access should
-     * probably go here.
-     *
-     * Keep these tasks short and break up long tasks into multiple smaller tasks, as they run on
-     * the UI thread and are blocking. Remember to follow RAIL guidelines, as much as possible, and
-     * that most devices are quite slow, so leave enough buffer.
-     */
-    @UiThread
-    public void initDeferredStartupForApp() {
-        if (mDeferredStartupInitializedForApp) return;
-        mDeferredStartupInitializedForApp = true;
-        ThreadUtils.assertOnUiThread();
-
-        RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashUpload.DeferredStartUptime2",
-                SystemClock.uptimeMillis() - UmaUtils.getForegroundStartTime(),
-                TimeUnit.MILLISECONDS);
-
-        mDeferredTasks.add(new Runnable() {
-            @Override
-            public void run() {
-                // Punt all tasks that may block on disk off onto a background thread.
-                initAsyncDiskTask();
-
-                DefaultBrowserInfo.initBrowserFetcher();
-
-                AfterStartupTaskUtils.setStartupComplete();
-
-                PartnerBrowserCustomizations.setOnInitializeAsyncFinished(new Runnable() {
-                    @Override
-                    public void run() {
-                        String homepageUrl = HomepageManager.getHomepageUri(mAppContext);
-                        LaunchMetrics.recordHomePageLaunchMetrics(
-                                HomepageManager.isHomepageEnabled(mAppContext),
-                                NewTabPage.isNTPUrl(homepageUrl), homepageUrl);
-                    }
-                });
-
-                PartnerBookmarksShim.kickOffReading(mAppContext);
-
-                PowerMonitor.create();
-
-                ShareHelper.clearSharedImages();
-
-                OfflinePageUtils.clearSharedOfflineFiles(mAppContext);
-
-                if (ChannelsUpdater.getInstance().shouldUpdateChannels()) {
-                    initChannelsAsync();
-                }
-            }
-        });
-
-        ProcessInitializationHandler.getInstance().initializeDeferredStartupTasks();
-    }
-
-    private void initChannelsAsync() {
-        new AsyncTask<Void, Void, Void>() {
-            @Override
-            protected Void doInBackground(Void... params) {
-                ChannelsUpdater.getInstance().updateChannels();
-                return null;
-            }
-
-        }
-                .executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
-    }
-
-    private void initAsyncDiskTask() {
-        new AsyncTask<Void, Void, Void>() {
-            /**
-             * The threshold after which it's no longer appropriate to try to attach logcat output
-             * to a minidump file.
-             * Note: This threshold of 12 hours was chosen fairly imprecisely, based on the
-             * following intuition: On the one hand, Chrome can only access its own logcat output,
-             * so the most recent lines should be relevant when available. On a typical device,
-             * multiple hours of logcat output are available. On the other hand, it's important to
-             * provide an escape hatch in case the logcat extraction code itself crashes, as
-             * described in the doesCrashMinidumpNeedLogcat() documentation. Since this is a fairly
-             * small and relatively frequently-executed piece of code, crashes are expected to be
-             * unlikely; so it's okay for the escape hatch to be hard to use -- it's intended as an
-             * extreme last resort.
-             */
-            private static final long LOGCAT_RELEVANCE_THRESHOLD_IN_HOURS = 12;
-
-            private long mAsyncTaskStartTime;
-
-            @Override
-            protected Void doInBackground(Void... params) {
-                try {
-                    TraceEvent.begin("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
-                    mAsyncTaskStartTime = SystemClock.uptimeMillis();
-
-                    initCrashReporting();
-
-                    // Initialize the WebappRegistry if it's not already initialized. Must be in
-                    // async task due to shared preferences disk access on N.
-                    WebappRegistry.getInstance();
-
-                    // Force a widget refresh in order to wake up any possible zombie widgets.
-                    // This is needed to ensure the right behavior when the process is suddenly
-                    // killed.
-                    BookmarkWidgetProvider.refreshAllWidgets(mAppContext);
-
-                    // Initialize whether or not precaching is enabled.
-                    PrecacheLauncher.updatePrecachingEnabled(mAppContext);
-
-                    if (ChromeWebApkHost.isEnabled()) {
-                        WebApkVersionManager.updateWebApksIfNeeded();
-                    }
-
-                    removeSnapshotDatabase();
-
-                    // Warm up all web app shared prefs. This must be run after the WebappRegistry
-                    // instance is initialized.
-                    WebappRegistry.warmUpSharedPrefs();
-
-                    return null;
-                } finally {
-                    TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
-                }
-            }
-
-            @Override
-            protected void onPostExecute(Void params) {
-                // Must be run on the UI thread after the WebappRegistry has been completely warmed.
-                WebappRegistry.getInstance().unregisterOldWebapps(System.currentTimeMillis());
-
-                RecordHistogram.recordLongTimesHistogram(
-                        "UMA.Debug.EnableCrashUpload.DeferredStartUpAsyncTaskDuration",
-                        SystemClock.uptimeMillis() - mAsyncTaskStartTime, TimeUnit.MILLISECONDS);
-            }
-
-            /**
-             * Initializes the crash reporting system. More specifically, enables the crash
-             * reporting system if it is user-permitted, and initiates uploading of any pending
-             * crash reports. Also updates some UMA metrics and performs cleanup in the local crash
-             * minidump storage directory.
-             */
-            private void initCrashReporting() {
-                RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashUpload.Uptime3",
-                        mAsyncTaskStartTime - UmaUtils.getForegroundStartTime(),
-                        TimeUnit.MILLISECONDS);
-
-                // Crash reports can be uploaded as part of a background service even while the main
-                // Chrome activity is not running, and hence regular metrics reporting is not
-                // possible. Instead, metrics are temporarily written to prefs; export those prefs
-                // to UMA metrics here.
-                MinidumpUploadService.storeBreakpadUploadStatsInUma(
-                        ChromePreferenceManager.getInstance());
-
-                // Likewise, this is a good time to process and clean up any pending or stale crash
-                // reports left behind by previous runs.
-                CrashFileManager crashFileManager =
-                        new CrashFileManager(ContextUtils.getApplicationContext().getCacheDir());
-                crashFileManager.cleanOutAllNonFreshMinidumpFiles();
-
-                // Finally, uploading any pending crash reports.
-                File[] minidumps = crashFileManager.getAllMinidumpFiles(
-                        MinidumpUploadService.MAX_TRIES_ALLOWED);
-                int numMinidumpsSansLogcat = 0;
-                for (File minidump : minidumps) {
-                    if (CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName())) {
-                        ++numMinidumpsSansLogcat;
-                    }
-                }
-                // TODO(isherman): These two histograms are intended to be temporary, and can
-                // probably be removed around the M60 timeframe: http://crbug.com/699785
-                RecordHistogram.recordSparseSlowlyHistogram(
-                        "Stability.Android.PendingMinidumpsOnStartup", minidumps.length);
-                RecordHistogram.recordSparseSlowlyHistogram(
-                        "Stability.Android.PendingMinidumpsOnStartup.SansLogcat",
-                        numMinidumpsSansLogcat);
-                if (minidumps.length == 0) return;
-
-                Log.i(TAG, "Attempting to upload %d accumulated crash dumps.", minidumps.length);
-                File mostRecentMinidump = minidumps[0];
-                if (doesCrashMinidumpNeedLogcat(mostRecentMinidump)) {
-                    AsyncTask.THREAD_POOL_EXECUTOR.execute(
-                            new LogcatExtractionRunnable(mostRecentMinidump));
-
-                    // The JobScheduler will schedule uploads for all of the available minidumps
-                    // once the logcat is attached. But if the JobScheduler API is not being used,
-                    // then the logcat extraction process will only initiate an upload for the first
-                    // minidump; it's required to manually initiate uploads for all of the remaining
-                    // minidumps.
-                    if (!MinidumpUploadService.shouldUseJobSchedulerForUploads()) {
-                        List<File> remainingMinidumps =
-                                Arrays.asList(minidumps).subList(1, minidumps.length);
-                        for (File minidump : remainingMinidumps) {
-                            MinidumpUploadService.tryUploadCrashDump(minidump);
-                        }
-                    }
-                } else if (MinidumpUploadService.shouldUseJobSchedulerForUploads()) {
-                    MinidumpUploadService.scheduleUploadJob();
-                } else {
-                    MinidumpUploadService.tryUploadAllCrashDumps();
-                }
-            }
-
-            /**
-             * Returns whether or not it's appropriate to try to extract recent logcat output and
-             * include that logcat output alongside the given {@param minidump} in a crash report.
-             * Logcat output should only be extracted if (a) it hasn't already been extracted for
-             * this minidump file, and (b) the minidump is fairly fresh. The freshness check is
-             * important for two reasons: (1) First of all, it helps avoid including irrelevant
-             * logcat output for a crash report. (2) Secondly, it provides an escape hatch that can
-             * help circumvent a possible infinite crash loop, if the code responsible for
-             * extracting and appending the logcat content is itself crashing. That is, the user can
-             * wait 12 hours prior to relaunching Chrome, at which point this potential crash loop
-             * would be circumvented.
-             * @return Whether to try to include logcat output in the crash report corresponding to
-             *     the given minidump.
-             */
-            private boolean doesCrashMinidumpNeedLogcat(File minidump) {
-                if (!CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName())) return false;
-
-                long ageInMillis = new Date().getTime() - minidump.lastModified();
-                long ageInHours = TimeUnit.HOURS.convert(ageInMillis, TimeUnit.MILLISECONDS);
-                return ageInHours < LOGCAT_RELEVANCE_THRESHOLD_IN_HOURS;
-            }
-        }
-                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    /**
-     * Deletes the snapshot database which is no longer used because the feature has been removed
-     * in Chrome M41.
-     */
-    @WorkerThread
-    private void removeSnapshotDatabase() {
-        synchronized (SNAPSHOT_DATABASE_LOCK) {
-            SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
-            if (!prefs.getBoolean(SNAPSHOT_DATABASE_REMOVED, false)) {
-                mAppContext.deleteDatabase(SNAPSHOT_DATABASE_NAME);
-                prefs.edit().putBoolean(SNAPSHOT_DATABASE_REMOVED, true).apply();
-            }
-        }
-    }
-
-    /**
      * @return Whether deferred startup has been completed.
      */
     @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
index 49d3da01..dddd8ef 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -6,6 +6,10 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.AsyncTask;
+import android.os.SystemClock;
+import android.support.annotation.WorkerThread;
 import android.view.View;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodManager;
@@ -17,18 +21,26 @@
 import org.chromium.base.CommandLine;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
+import org.chromium.base.PowerMonitor;
 import org.chromium.base.SysUtils;
 import org.chromium.base.ThreadUtils;
+import org.chromium.base.TraceEvent;
+import org.chromium.base.annotations.SuppressFBWarnings;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AfterStartupTaskUtils;
 import org.chromium.chrome.browser.AppHooks;
 import org.chromium.chrome.browser.ChromeActivitySessionTracker;
 import org.chromium.chrome.browser.ChromeApplication;
 import org.chromium.chrome.browser.ChromeBackupAgent;
 import org.chromium.chrome.browser.ChromeFeatureList;
+import org.chromium.chrome.browser.DefaultBrowserInfo;
 import org.chromium.chrome.browser.DeferredStartupHandler;
 import org.chromium.chrome.browser.DevToolsServer;
 import org.chromium.chrome.browser.banners.AppBannerManager;
+import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider;
+import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
+import org.chromium.chrome.browser.crash.MinidumpUploadService;
 import org.chromium.chrome.browser.download.DownloadController;
 import org.chromium.chrome.browser.download.DownloadManagerService;
 import org.chromium.chrome.browser.firstrun.ForcedSigninProcessor;
@@ -37,16 +49,31 @@
 import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator;
 import org.chromium.chrome.browser.locale.LocaleManager;
 import org.chromium.chrome.browser.media.MediaCaptureNotificationService;
+import org.chromium.chrome.browser.metrics.LaunchMetrics;
+import org.chromium.chrome.browser.metrics.UmaUtils;
 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
+import org.chromium.chrome.browser.notifications.ChannelsUpdater;
+import org.chromium.chrome.browser.ntp.NewTabPage;
+import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
+import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
+import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
+import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
 import org.chromium.chrome.browser.photo_picker.PhotoPickerDialog;
 import org.chromium.chrome.browser.physicalweb.PhysicalWeb;
+import org.chromium.chrome.browser.precache.PrecacheLauncher;
+import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.rlz.RevenueStats;
 import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
 import org.chromium.chrome.browser.services.AccountsChangedReceiver;
 import org.chromium.chrome.browser.services.GoogleServicesManager;
+import org.chromium.chrome.browser.share.ShareHelper;
 import org.chromium.chrome.browser.sync.SyncController;
+import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
+import org.chromium.chrome.browser.webapps.WebApkVersionManager;
+import org.chromium.chrome.browser.webapps.WebappRegistry;
+import org.chromium.components.minidump_uploader.CrashFileManager;
 import org.chromium.components.signin.AccountManagerHelper;
 import org.chromium.content.browser.ChildProcessLauncher;
 import org.chromium.content.common.ContentSwitches;
@@ -56,9 +83,13 @@
 import org.chromium.ui.PhotoPickerListener;
 import org.chromium.ui.UiUtils;
 
+import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Locale;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Handles the initialization dependences of the browser process.  This is meant to handle the
@@ -66,10 +97,16 @@
  * triggered a single time for the lifetime of the browser process.
  */
 public class ProcessInitializationHandler {
+    private static final String TAG = "ProcessInitHandler";
 
     private static final String SESSIONS_UUID_PREF_KEY = "chromium.sync.sessions.id";
     private static final String DEV_TOOLS_SERVER_SOCKET_PREFIX = "chrome";
 
+    /** Prevents race conditions when deleting snapshot database. */
+    private static final Object SNAPSHOT_DATABASE_LOCK = new Object();
+    private static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed";
+    private static final String SNAPSHOT_DATABASE_NAME = "snapshots.db";
+
     private static ProcessInitializationHandler sInstance;
 
     private boolean mInitializedPreNative;
@@ -80,6 +117,7 @@
     /**
      * @return The ProcessInitializationHandler for use during the lifetime of the browser process.
      */
+    @SuppressFBWarnings("LI_LAZY_INIT_STATIC")
     public static ProcessInitializationHandler getInstance() {
         ThreadUtils.checkUiThread();
         if (sInstance == null) {
@@ -199,14 +237,24 @@
     }
 
     /**
-     * Initializes the deferred startup tasks that should only be triggered once per browser process
-     * lifetime.
+     * Handle application level deferred startup tasks that can be lazily done after all
+     * the necessary initialization has been completed. Should only be triggered once per browser
+     * process lifetime. Any calls requiring network access should probably go here.
+     *
+     * Keep these tasks short and break up long tasks into multiple smaller tasks, as they run on
+     * the UI thread and are blocking. Remember to follow RAIL guidelines, as much as possible, and
+     * that most devices are quite slow, so leave enough buffer.
      */
     public final void initializeDeferredStartupTasks() {
         ThreadUtils.checkUiThread();
         if (mInitializedDeferredStartupTasks) return;
-        handleDeferredStartupTasksInitialization();
         mInitializedDeferredStartupTasks = true;
+
+        RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashUpload.DeferredStartUptime2",
+                SystemClock.uptimeMillis() - UmaUtils.getForegroundStartTime(),
+                TimeUnit.MILLISECONDS);
+
+        handleDeferredStartupTasksInitialization();
     }
 
     /**
@@ -220,6 +268,40 @@
         deferredStartupHandler.addDeferredTask(new Runnable() {
             @Override
             public void run() {
+                // Punt all tasks that may block on disk off onto a background thread.
+                initAsyncDiskTask(application);
+
+                DefaultBrowserInfo.initBrowserFetcher();
+
+                AfterStartupTaskUtils.setStartupComplete();
+
+                PartnerBrowserCustomizations.setOnInitializeAsyncFinished(new Runnable() {
+                    @Override
+                    public void run() {
+                        String homepageUrl = HomepageManager.getHomepageUri(application);
+                        LaunchMetrics.recordHomePageLaunchMetrics(
+                                HomepageManager.isHomepageEnabled(application),
+                                NewTabPage.isNTPUrl(homepageUrl), homepageUrl);
+                    }
+                });
+
+                PartnerBookmarksShim.kickOffReading(application);
+
+                PowerMonitor.create();
+
+                ShareHelper.clearSharedImages();
+
+                OfflinePageUtils.clearSharedOfflineFiles(application);
+
+                if (ChannelsUpdater.getInstance().shouldUpdateChannels()) {
+                    initChannelsAsync();
+                }
+            }
+        });
+
+        deferredStartupHandler.addDeferredTask(new Runnable() {
+            @Override
+            public void run() {
                 // Clear any media notifications that existed when Chrome was last killed.
                 MediaCaptureNotificationService.clearMediaNotifications(application);
 
@@ -316,6 +398,189 @@
         });
     }
 
+    private void initChannelsAsync() {
+        new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                ChannelsUpdater.getInstance().updateChannels();
+                return null;
+            }
+        }
+                .executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+    }
+
+    private void initAsyncDiskTask(final Context context) {
+        new AsyncTask<Void, Void, Void>() {
+            /**
+             * The threshold after which it's no longer appropriate to try to attach logcat output
+             * to a minidump file.
+             * Note: This threshold of 12 hours was chosen fairly imprecisely, based on the
+             * following intuition: On the one hand, Chrome can only access its own logcat output,
+             * so the most recent lines should be relevant when available. On a typical device,
+             * multiple hours of logcat output are available. On the other hand, it's important to
+             * provide an escape hatch in case the logcat extraction code itself crashes, as
+             * described in the doesCrashMinidumpNeedLogcat() documentation. Since this is a fairly
+             * small and relatively frequently-executed piece of code, crashes are expected to be
+             * unlikely; so it's okay for the escape hatch to be hard to use -- it's intended as an
+             * extreme last resort.
+             */
+            private static final long LOGCAT_RELEVANCE_THRESHOLD_IN_HOURS = 12;
+
+            private long mAsyncTaskStartTime;
+
+            @Override
+            protected Void doInBackground(Void... params) {
+                try {
+                    TraceEvent.begin("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
+                    mAsyncTaskStartTime = SystemClock.uptimeMillis();
+
+                    initCrashReporting();
+
+                    // Initialize the WebappRegistry if it's not already initialized. Must be in
+                    // async task due to shared preferences disk access on N.
+                    WebappRegistry.getInstance();
+
+                    // Force a widget refresh in order to wake up any possible zombie widgets.
+                    // This is needed to ensure the right behavior when the process is suddenly
+                    // killed.
+                    BookmarkWidgetProvider.refreshAllWidgets(context);
+
+                    // Initialize whether or not precaching is enabled.
+                    PrecacheLauncher.updatePrecachingEnabled(context);
+
+                    if (ChromeWebApkHost.isEnabled()) {
+                        WebApkVersionManager.updateWebApksIfNeeded();
+                    }
+
+                    removeSnapshotDatabase(context);
+
+                    // Warm up all web app shared prefs. This must be run after the WebappRegistry
+                    // instance is initialized.
+                    WebappRegistry.warmUpSharedPrefs();
+
+                    return null;
+                } finally {
+                    TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
+                }
+            }
+
+            @Override
+            protected void onPostExecute(Void params) {
+                // Must be run on the UI thread after the WebappRegistry has been completely warmed.
+                WebappRegistry.getInstance().unregisterOldWebapps(System.currentTimeMillis());
+
+                RecordHistogram.recordLongTimesHistogram(
+                        "UMA.Debug.EnableCrashUpload.DeferredStartUpAsyncTaskDuration",
+                        SystemClock.uptimeMillis() - mAsyncTaskStartTime, TimeUnit.MILLISECONDS);
+            }
+
+            /**
+             * Initializes the crash reporting system. More specifically, enables the crash
+             * reporting system if it is user-permitted, and initiates uploading of any pending
+             * crash reports. Also updates some UMA metrics and performs cleanup in the local crash
+             * minidump storage directory.
+             */
+            private void initCrashReporting() {
+                RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashUpload.Uptime3",
+                        mAsyncTaskStartTime - UmaUtils.getForegroundStartTime(),
+                        TimeUnit.MILLISECONDS);
+
+                // Crash reports can be uploaded as part of a background service even while the main
+                // Chrome activity is not running, and hence regular metrics reporting is not
+                // possible. Instead, metrics are temporarily written to prefs; export those prefs
+                // to UMA metrics here.
+                MinidumpUploadService.storeBreakpadUploadStatsInUma(
+                        ChromePreferenceManager.getInstance());
+
+                // Likewise, this is a good time to process and clean up any pending or stale crash
+                // reports left behind by previous runs.
+                CrashFileManager crashFileManager =
+                        new CrashFileManager(ContextUtils.getApplicationContext().getCacheDir());
+                crashFileManager.cleanOutAllNonFreshMinidumpFiles();
+
+                // Finally, uploading any pending crash reports.
+                File[] minidumps = crashFileManager.getAllMinidumpFiles(
+                        MinidumpUploadService.MAX_TRIES_ALLOWED);
+                int numMinidumpsSansLogcat = 0;
+                for (File minidump : minidumps) {
+                    if (CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName())) {
+                        ++numMinidumpsSansLogcat;
+                    }
+                }
+                // TODO(isherman): These two histograms are intended to be temporary, and can
+                // probably be removed around the M60 timeframe: http://crbug.com/699785
+                RecordHistogram.recordSparseSlowlyHistogram(
+                        "Stability.Android.PendingMinidumpsOnStartup", minidumps.length);
+                RecordHistogram.recordSparseSlowlyHistogram(
+                        "Stability.Android.PendingMinidumpsOnStartup.SansLogcat",
+                        numMinidumpsSansLogcat);
+                if (minidumps.length == 0) return;
+
+                Log.i(TAG, "Attempting to upload %d accumulated crash dumps.", minidumps.length);
+                File mostRecentMinidump = minidumps[0];
+                if (doesCrashMinidumpNeedLogcat(mostRecentMinidump)) {
+                    AsyncTask.THREAD_POOL_EXECUTOR.execute(
+                            new LogcatExtractionRunnable(mostRecentMinidump));
+
+                    // The JobScheduler will schedule uploads for all of the available minidumps
+                    // once the logcat is attached. But if the JobScheduler API is not being used,
+                    // then the logcat extraction process will only initiate an upload for the first
+                    // minidump; it's required to manually initiate uploads for all of the remaining
+                    // minidumps.
+                    if (!MinidumpUploadService.shouldUseJobSchedulerForUploads()) {
+                        List<File> remainingMinidumps =
+                                Arrays.asList(minidumps).subList(1, minidumps.length);
+                        for (File minidump : remainingMinidumps) {
+                            MinidumpUploadService.tryUploadCrashDump(minidump);
+                        }
+                    }
+                } else if (MinidumpUploadService.shouldUseJobSchedulerForUploads()) {
+                    MinidumpUploadService.scheduleUploadJob();
+                } else {
+                    MinidumpUploadService.tryUploadAllCrashDumps();
+                }
+            }
+
+            /**
+             * Returns whether or not it's appropriate to try to extract recent logcat output and
+             * include that logcat output alongside the given {@param minidump} in a crash report.
+             * Logcat output should only be extracted if (a) it hasn't already been extracted for
+             * this minidump file, and (b) the minidump is fairly fresh. The freshness check is
+             * important for two reasons: (1) First of all, it helps avoid including irrelevant
+             * logcat output for a crash report. (2) Secondly, it provides an escape hatch that can
+             * help circumvent a possible infinite crash loop, if the code responsible for
+             * extracting and appending the logcat content is itself crashing. That is, the user can
+             * wait 12 hours prior to relaunching Chrome, at which point this potential crash loop
+             * would be circumvented.
+             * @return Whether to try to include logcat output in the crash report corresponding to
+             *     the given minidump.
+             */
+            private boolean doesCrashMinidumpNeedLogcat(File minidump) {
+                if (!CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName())) return false;
+
+                long ageInMillis = new Date().getTime() - minidump.lastModified();
+                long ageInHours = TimeUnit.HOURS.convert(ageInMillis, TimeUnit.MILLISECONDS);
+                return ageInHours < LOGCAT_RELEVANCE_THRESHOLD_IN_HOURS;
+            }
+        }
+                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+    }
+
+    /**
+     * Deletes the snapshot database which is no longer used because the feature has been removed
+     * in Chrome M41.
+     */
+    @WorkerThread
+    private void removeSnapshotDatabase(Context context) {
+        synchronized (SNAPSHOT_DATABASE_LOCK) {
+            SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
+            if (!prefs.getBoolean(SNAPSHOT_DATABASE_REMOVED, false)) {
+                context.deleteDatabase(SNAPSHOT_DATABASE_NAME);
+                prefs.edit().putBoolean(SNAPSHOT_DATABASE_REMOVED, true).apply();
+            }
+        }
+    }
+
     private void startModerateBindingManagementIfNeeded(Context context) {
         // Moderate binding doesn't apply to low end devices.
         if (SysUtils.isLowEndDevice()) return;
diff --git a/chrome/browser/chromeos/attestation/platform_verification_flow_unittest.cc b/chrome/browser/chromeos/attestation/platform_verification_flow_unittest.cc
index ae03ba7..f16d9d3 100644
--- a/chrome/browser/chromeos/attestation/platform_verification_flow_unittest.cc
+++ b/chrome/browser/chromeos/attestation/platform_verification_flow_unittest.cc
@@ -31,7 +31,7 @@
 using testing::DoAll;
 using testing::Invoke;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 using testing::WithArgs;
 
diff --git a/chrome/browser/chromeos/customization/customization_document_unittest.cc b/chrome/browser/chromeos/customization/customization_document_unittest.cc
index 7a2baae7..6922a29 100644
--- a/chrome/browser/chromeos/customization/customization_document_unittest.cc
+++ b/chrome/browser/chromeos/customization/customization_document_unittest.cc
@@ -112,7 +112,7 @@
 using ::testing::DoAll;
 using ::testing::NotNull;
 using ::testing::Return;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::_;
 
 TEST(StartupCustomizationDocumentTest, Basic) {
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
index fb1afc01..17a6f4b 100644
--- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
@@ -67,7 +67,7 @@
 using testing::Mock;
 using testing::Return;
 using testing::SaveArg;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 using testing::WithArgs;
 using testing::_;
diff --git a/chrome/browser/resources/md_bookmarks/command_manager.js b/chrome/browser/resources/md_bookmarks/command_manager.js
index 9c5e564..a21c9c4 100644
--- a/chrome/browser/resources/md_bookmarks/command_manager.js
+++ b/chrome/browser/resources/md_bookmarks/command_manager.js
@@ -103,21 +103,41 @@
         });
         break;
       case Command.DELETE:
-        // TODO(tsergeant): Filter IDs so we don't try to delete children of
-        // something else already being deleted.
         chrome.bookmarkManagerPrivate.removeTrees(
-            Array.from(itemIds), function() {
+            Array.from(this.minimizeDeletionSet_(itemIds)), function() {
               // TODO(jiaxi): Add toast later.
             });
         break;
     }
-
   },
 
   ////////////////////////////////////////////////////////////////////////////
   // Private functions:
 
   /**
+   * Minimize the set of |itemIds| by removing any node which has an ancestor
+   * node already in the set. This ensures that instead of trying to delete both
+   * a node and its descendant, we will only try to delete the topmost node,
+   * preventing an error in the bookmarkManagerPrivate.removeTrees API call.
+   * @param {!Set<string>} itemIds
+   * @return {!Set<string>}
+   */
+  minimizeDeletionSet_: function(itemIds) {
+    var minimizedSet = new Set();
+    var nodes = this.getState().nodes;
+    itemIds.forEach(function(itemId) {
+      var currentId = itemId;
+      while (currentId != ROOT_NODE_ID) {
+        currentId = assert(nodes[currentId].parentId);
+        if (itemIds.has(currentId))
+          return;
+      }
+      minimizedSet.add(itemId);
+    });
+    return minimizedSet;
+  },
+
+  /**
    * @param {!Set<string>} itemIds
    * @param {function(BookmarkNode):boolean} predicate
    * @return {boolean} True if any node in |itemIds| returns true for
diff --git a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
index 7460413..92453f04e 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
@@ -47,7 +47,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SaveArg;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrictMock;
 using content::BrowserThread;
 using content::RenderFrameHostTester;
@@ -284,8 +284,8 @@
     }
     if (get_valid_cached_result) {
       EXPECT_CALL(*csd_service_, GetValidCachedResult(url, NotNull()))
-          .WillOnce(DoAll(SetArgumentPointee<1>(true),
-                          Return(*get_valid_cached_result)));
+          .WillOnce(
+              DoAll(SetArgPointee<1>(true), Return(*get_valid_cached_result)));
     }
     if (is_in_cache) {
       EXPECT_CALL(*csd_service_, IsInCache(url)).WillOnce(Return(*is_in_cache));
diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc
index 5b84fda..9a465f5 100644
--- a/chrome/browser/search/instant_service.cc
+++ b/chrome/browser/search/instant_service.cc
@@ -59,7 +59,7 @@
 namespace {
 
 const base::Feature kNtpTilesFeature{"NTPTilesInInstantService",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
+                                     base::FEATURE_ENABLED_BY_DEFAULT};
 
 }  // namespace
 
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_toolbar_view_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_toolbar_view_unittest.mm
index 01b3cde..45d0055 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_toolbar_view_unittest.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_toolbar_view_unittest.mm
@@ -22,7 +22,7 @@
 using ::testing::DoAll;
 using ::testing::NiceMock;
 using ::testing::Return;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 
 // Allows us to control which way the view is rendered.
 @interface DrawDetachedBarFakeController :
diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
index c87508d..a89e90e 100644
--- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
@@ -31,6 +31,7 @@
 #include "chrome/test/base/menu_model_test.h"
 #include "chrome/test/base/testing_profile.h"
 #include "components/browser_sync/profile_sync_service_mock.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "components/sessions/core/persistent_tab_restore_service.h"
 #include "components/sessions/core/serialized_navigation_entry_test_helper.h"
 #include "components/sessions/core/session_types.h"
@@ -157,6 +158,13 @@
   RecentTabsSubMenuModelTest() {}
 
   void SetUp() override {
+    // Set up our mock sync service factory before the sync service (and any
+    // other services that depend on it) gets created.
+    will_create_browser_context_services_subscription_ =
+        BrowserContextDependencyManager::GetInstance()
+            ->RegisterWillCreateBrowserContextServicesCallbackForTesting(
+                base::Bind(OnWillCreateBrowserContextServices));
+
     BrowserWithTestWindowTest::SetUp();
 
     local_device_ = base::MakeUnique<syncer::LocalDeviceInfoProviderMock>(
@@ -166,8 +174,7 @@
     sync_prefs_ = base::MakeUnique<syncer::SyncPrefs>(profile()->GetPrefs());
 
     mock_sync_service_ = static_cast<browser_sync::ProfileSyncServiceMock*>(
-        ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
-            profile(), BuildMockProfileSyncService));
+        ProfileSyncServiceFactory::GetForProfile(profile()));
 
     EXPECT_CALL(*mock_sync_service_, AddObserver(_))
         .WillRepeatedly(Invoke(&fake_sync_service_observer_list_,
@@ -241,6 +248,16 @@
   }
 
  private:
+  static void OnWillCreateBrowserContextServices(
+      content::BrowserContext* context) {
+    ProfileSyncServiceFactory::GetInstance()->SetTestingFactory(
+        context, BuildMockProfileSyncService);
+  }
+
+  std::unique_ptr<
+      base::CallbackList<void(content::BrowserContext*)>::Subscription>
+      will_create_browser_context_services_subscription_;
+
   std::unique_ptr<syncer::LocalDeviceInfoProviderMock> local_device_;
   DummyRouter dummy_router_;
   std::unique_ptr<syncer::SyncPrefs> sync_prefs_;
diff --git a/chrome/test/data/webui/md_bookmarks/command_manager_test.js b/chrome/test/data/webui/md_bookmarks/command_manager_test.js
index 07e414cb..c0b993b 100644
--- a/chrome/test/data/webui/md_bookmarks/command_manager_test.js
+++ b/chrome/test/data/webui/md_bookmarks/command_manager_test.js
@@ -25,13 +25,19 @@
 
   setup(function() {
     store = new bookmarks.TestStore({
-      nodes: testTree(createFolder(
-          '1',
-          [
-            createFolder('11', []),
-            createFolder('12', []),
-            createItem('13'),
-          ])),
+      nodes: testTree(
+          createFolder(
+              '1',
+              [
+                createFolder(
+                    '11',
+                    [
+                      createItem('111'),
+                    ]),
+                createFolder('12', []),
+                createItem('13'),
+              ]),
+          createFolder('2', [])),
     });
     bookmarks.Store.instance_ = store;
 
@@ -111,4 +117,17 @@
     MockInteractions.pressAndReleaseKeyOn(document, keyCode, '', key);
     assertLastCommand('edit', ['11']);
   });
+
+  test('does not delete children at same time as ancestor', function() {
+    var lastDelete = null;
+    chrome.bookmarkManagerPrivate.removeTrees = function(idArray) {
+      lastDelete = idArray.sort();
+    };
+
+    var parentAndChildren = new Set(['1', '2', '12', '111']);
+    assertTrue(commandManager.canExecute(Command.DELETE, parentAndChildren));
+    commandManager.handle(Command.DELETE, parentAndChildren);
+
+    assertDeepEquals(['1', '2'], lastDelete);
+  });
 });
diff --git a/components/browser_sync/profile_sync_service_autofill_unittest.cc b/components/browser_sync/profile_sync_service_autofill_unittest.cc
index f60c2af..fbee5358 100644
--- a/components/browser_sync/profile_sync_service_autofill_unittest.cc
+++ b/components/browser_sync/profile_sync_service_autofill_unittest.cc
@@ -90,7 +90,7 @@
 using testing::DoAll;
 using testing::ElementsAre;
 using testing::Not;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::Return;
 
 namespace browser_sync {
@@ -842,7 +842,7 @@
   std::vector<AutofillEntry> entries;
   entries.push_back(MakeAutofillEntry("foo", "bar", 1));
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true)));
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, AUTOFILL);
   EXPECT_CALL(personal_data_manager(), Refresh());
@@ -889,7 +889,7 @@
   entries.push_back(MakeAutofillEntry("dup", "", 2));
   entries.push_back(MakeAutofillEntry("dup", "", 3));
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true)));
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, AUTOFILL);
   EXPECT_CALL(personal_data_manager(), Refresh());
@@ -909,7 +909,7 @@
   native_entries.push_back(native_entry);
 
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
 
   std::vector<AutofillEntry> sync_entries;
   sync_entries.push_back(sync_entry);
@@ -951,7 +951,7 @@
   native_entries.push_back(native_entry1);
 
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
 
   std::vector<AutofillEntry> sync_entries;
   sync_entries.push_back(sync_entry0);
@@ -994,7 +994,7 @@
   std::vector<AutofillEntry> native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
 
   std::vector<AutofillEntry> sync_entries;
   sync_entries.push_back(sync_entry);
@@ -1364,8 +1364,8 @@
   AutofillEntry added_entry(MakeAutofillEntry("added", "entry", 1));
 
   EXPECT_CALL(autofill_table(), GetAutofillTimestamps(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(added_entry.date_created()),
-                      SetArgumentPointee<3>(added_entry.date_last_used()),
+      .WillOnce(DoAll(SetArgPointee<2>(added_entry.date_created()),
+                      SetArgPointee<3>(added_entry.date_last_used()),
                       Return(true)));
 
   AutofillChangeList changes;
@@ -1412,7 +1412,7 @@
   original_entries.push_back(original_entry);
 
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL(personal_data_manager(), Refresh());
   CreateRootHelper create_root(this, AUTOFILL);
   StartSyncService(create_root.callback(), false, AUTOFILL);
@@ -1421,8 +1421,8 @@
   AutofillEntry updated_entry(MakeAutofillEntry("my", "entry", 1, 2));
 
   EXPECT_CALL(autofill_table(), GetAutofillTimestamps(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(updated_entry.date_created()),
-                      SetArgumentPointee<3>(updated_entry.date_last_used()),
+      .WillOnce(DoAll(SetArgPointee<2>(updated_entry.date_created()),
+                      SetArgPointee<3>(updated_entry.date_last_used()),
                       Return(true)));
 
   AutofillChangeList changes;
@@ -1444,7 +1444,7 @@
   original_entries.push_back(original_entry);
 
   EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL(personal_data_manager(), Refresh());
   CreateRootHelper create_root(this, AUTOFILL);
   StartSyncService(create_root.callback(), false, AUTOFILL);
diff --git a/components/browser_sync/profile_sync_service_typed_url_unittest.cc b/components/browser_sync/profile_sync_service_typed_url_unittest.cc
index db7db21..c408d6c 100644
--- a/components/browser_sync/profile_sync_service_typed_url_unittest.cc
+++ b/components/browser_sync/profile_sync_service_typed_url_unittest.cc
@@ -48,7 +48,7 @@
 using history::TypedUrlSyncableService;
 using testing::DoAll;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::_;
 
 namespace browser_sync {
@@ -419,9 +419,9 @@
       MakeTypedUrlEntry("http://foo.com", "bar", 2, 15, false, &visits));
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(DoAll(SetArgumentPointee<2>(visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(visits), Return(true)));
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   TypedUrlSyncableService* syncable_service =
@@ -443,7 +443,7 @@
   entries.push_back(native_entry1);
   entries.push_back(native_entry2);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true)));
   // Return an error from GetMostRecentVisitsForURL() for the second URL.
   EXPECT_CALL((history_backend()),
               GetMostRecentVisitsForURL(native_entry1.id(), _, _))
@@ -468,9 +468,9 @@
   entries.push_back(
       MakeTypedUrlEntry("http://foo.com", "bar", 2, 15, false, &visits));
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(DoAll(SetArgumentPointee<2>(visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(visits), Return(true)));
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
@@ -492,10 +492,9 @@
   history::URLRows native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(native_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true)));
   EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED))
       .WillRepeatedly(Return(true));
 
@@ -553,10 +552,9 @@
   history::URLRows native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(native_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true)));
   EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED))
       .WillRepeatedly(Return(true));
 
@@ -585,12 +583,12 @@
   history::URLRows native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
   // Return an error getting the visits for the native URL.
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
       .WillRepeatedly(Return(false));
   EXPECT_CALL((history_backend()), GetURL(_, _))
-      .WillRepeatedly(DoAll(SetArgumentPointee<1>(native_entry), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<1>(native_entry), Return(true)));
   EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED))
       .WillRepeatedly(Return(true));
 
@@ -615,7 +613,7 @@
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(added_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(added_visits), Return(true)));
 
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
@@ -640,7 +638,7 @@
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(DoAll(SetArgumentPointee<2>(added_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(added_visits), Return(true)));
 
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
@@ -665,9 +663,9 @@
   original_entries.push_back(original_entry);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(original_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(original_visits), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -675,7 +673,7 @@
   history::URLRow updated_entry(MakeTypedUrlEntry("http://mine.com", "entry", 7,
                                                   17, false, &updated_visits));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(updated_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(updated_visits), Return(true)));
 
   history::URLRows changed_urls;
   changed_urls.push_back(updated_entry);
@@ -694,7 +692,7 @@
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(added_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(added_visits), Return(true)));
 
   SetIdleChangeProcessorExpectations();
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
@@ -716,9 +714,9 @@
   original_entries.push_back(original_entry);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(original_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(original_visits), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -726,7 +724,7 @@
   history::URLRow updated_entry(MakeTypedUrlEntry("http://mine.com", "entry", 7,
                                                   17, false, &updated_visits));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(updated_visits), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<2>(updated_visits), Return(true)));
 
   SendNotificationURLVisited(ui::PAGE_TRANSITION_TYPED, updated_entry);
 
@@ -744,10 +742,9 @@
   original_entries.push_back(original_entry);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
   history::URLRows new_sync_entries;
@@ -801,10 +798,9 @@
   original_entries.push_back(original_entry2);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits1), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -829,10 +825,9 @@
   original_entries.push_back(original_entry2);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits1), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -858,10 +853,9 @@
   original_entries.push_back(original_entry2);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits1), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -887,12 +881,11 @@
   history::URLRows native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetURL(_, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(native_entry), Return(false)));
+      .WillOnce(DoAll(SetArgPointee<1>(native_entry), Return(false)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(native_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true)));
   EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED))
       .WillRepeatedly(Return(false));
 
@@ -924,7 +917,7 @@
   history::URLRows native_entries;
   native_entries.push_back(native_entry);
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(false)));
+      .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(false)));
 
   history::URLRows sync_entries;
   sync_entries.push_back(sync_entry);
@@ -953,11 +946,9 @@
   original_entries.push_back(file_entry);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
@@ -998,11 +989,9 @@
   original_entries.push_back(localhost_entry);
 
   EXPECT_CALL((history_backend()), GetAllTypedURLs(_))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<0>(original_entries), Return(true)));
   EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _))
-      .WillRepeatedly(
-          DoAll(SetArgumentPointee<2>(original_visits), Return(true)));
+      .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true)));
   CreateRootHelper create_root(this, syncer::TYPED_URLS);
   StartSyncService(create_root.callback());
 
diff --git a/components/search_engines/search_engine_data_type_controller_unittest.cc b/components/search_engines/search_engine_data_type_controller_unittest.cc
index a9c0721..ca42589b 100644
--- a/components/search_engines/search_engine_data_type_controller_unittest.cc
+++ b/components/search_engines/search_engine_data_type_controller_unittest.cc
@@ -27,7 +27,7 @@
 using testing::DoAll;
 using testing::InvokeWithoutArgs;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 
 namespace browser_sync {
 namespace {
diff --git a/components/sync/driver/async_directory_type_controller_unittest.cc b/components/sync/driver/async_directory_type_controller_unittest.cc
index fe61189..0afdebb 100644
--- a/components/sync/driver/async_directory_type_controller_unittest.cc
+++ b/components/sync/driver/async_directory_type_controller_unittest.cc
@@ -44,7 +44,7 @@
 using testing::InvokeWithoutArgs;
 using testing::Mock;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 
 const ModelType kType = AUTOFILL_PROFILE;
@@ -226,7 +226,7 @@
     EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
         .WillOnce(Return(true));
     EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
-        .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
+        .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
     EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
         .WillOnce(Return(SyncError()));
     EXPECT_CALL(*change_processor_.get(), GetSyncCount()).WillOnce(Return(0));
@@ -286,7 +286,7 @@
   EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
       .WillOnce(Return(true));
   EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(false), Return(true)));
   EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
       .WillOnce(Return(SyncError()));
   EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_));
@@ -320,7 +320,7 @@
   EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
       .WillOnce(Return(true));
   EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
   EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
       .WillOnce(Return(SyncError()));
   EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_));
@@ -345,7 +345,7 @@
   EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
       .WillRepeatedly(Return(true));
   EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
-      .WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(false)));
+      .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(false)));
   EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
   Start();
   WaitForDTC();
@@ -381,8 +381,8 @@
       .WillOnce(Return(true));
   EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
       .WillOnce(DoAll(SignalEvent(&wait_for_db_thread_pause),
-                      WaitOnEvent(&pause_db_thread),
-                      SetArgumentPointee<0>(true), Return(true)));
+                      WaitOnEvent(&pause_db_thread), SetArgPointee<0>(true),
+                      Return(true)));
   EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
       .WillOnce(Return(SyncError(FROM_HERE, SyncError::DATATYPE_ERROR,
                                  "Disconnected.", kType)));
diff --git a/components/sync/driver/frontend_data_type_controller_unittest.cc b/components/sync/driver/frontend_data_type_controller_unittest.cc
index 7ca38ff6..73a0d33 100644
--- a/components/sync/driver/frontend_data_type_controller_unittest.cc
+++ b/components/sync/driver/frontend_data_type_controller_unittest.cc
@@ -27,7 +27,7 @@
 using testing::DoAll;
 using testing::InvokeWithoutArgs;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 
 namespace syncer {
@@ -89,7 +89,7 @@
     EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
         .WillOnce(Return(true));
     EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
-        .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
+        .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
     EXPECT_CALL(*model_associator_, AssociateModels(_, _))
         .WillOnce(Return(SyncError()));
     EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
@@ -146,7 +146,7 @@
   EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
       .WillOnce(Return(true));
   EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(false), Return(true)));
   EXPECT_CALL(*model_associator_, AssociateModels(_, _))
       .WillOnce(Return(SyncError()));
   EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
@@ -184,7 +184,7 @@
   EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
       .WillOnce(Return(true));
   EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
   EXPECT_CALL(*model_associator_, AssociateModels(_, _))
       .WillOnce(Return(
           SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "error", BOOKMARKS)));
@@ -205,7 +205,7 @@
   EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
       .WillRepeatedly(Return(true));
   EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
-      .WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(false)));
+      .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(false)));
   EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
   Start();
   EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
diff --git a/components/sync_bookmarks/bookmark_data_type_controller_unittest.cc b/components/sync_bookmarks/bookmark_data_type_controller_unittest.cc
index d3ae78a6..340785c5 100644
--- a/components/sync_bookmarks/bookmark_data_type_controller_unittest.cc
+++ b/components/sync_bookmarks/bookmark_data_type_controller_unittest.cc
@@ -39,7 +39,7 @@
 using testing::DoAll;
 using testing::InvokeWithoutArgs;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 
 namespace {
 
@@ -106,8 +106,8 @@
   void SetAssociateExpectations() {
     EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
         WillRepeatedly(Return(true));
-    EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
-        WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true)));
+    EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
+        .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true)));
     EXPECT_CALL(*model_associator_, AssociateModels(_, _)).
         WillRepeatedly(Return(syncer::SyncError()));
   }
@@ -205,8 +205,8 @@
   CreateBookmarkModel(LOAD_MODEL);
   SetStartExpectations();
   SetAssociateExpectations();
-  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
-      WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(true)));
+  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
+      .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(true)));
   EXPECT_CALL(start_callback_, Run(DataTypeController::OK_FIRST_RUN, _, _));
   Start();
 }
@@ -229,8 +229,8 @@
   CreateBookmarkModel(LOAD_MODEL);
   SetStartExpectations();
   SetAssociateExpectations();
-  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
-      WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true)));
+  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
+      .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true)));
 
   EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _));
   Start();
@@ -242,8 +242,8 @@
   // Set up association to fail.
   EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
       WillRepeatedly(Return(true));
-  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
-      WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true)));
+  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
+      .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true)));
   EXPECT_CALL(*model_associator_, AssociateModels(_, _)).
       WillRepeatedly(Return(syncer::SyncError(FROM_HERE,
                                               syncer::SyncError::DATATYPE_ERROR,
@@ -263,8 +263,8 @@
   // Set up association to fail with an unrecoverable error.
   EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
       WillRepeatedly(Return(true));
-  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
-      WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(false)));
+  EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
+      .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(false)));
   EXPECT_CALL(start_callback_,
               Run(DataTypeController::UNRECOVERABLE_ERROR, _, _));
   Start();
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py
index bd66f46..d5189ccc 100755
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -5824,7 +5824,7 @@
 TEST_P(%(test_name)s, %(name)sValidArgsNewId) {
   EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId));
   EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _))
-     .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+     .WillOnce(SetArgPointee<1>(kNewServiceId));
   SpecializedSetup<cmds::%(name)s, 0>(true);
   cmds::%(name)s cmd;
   cmd.Init(kNewClientId);
@@ -5854,7 +5854,7 @@
   EXPECT_CALL(*gl_,
               %(gl_func_name)s(%(gl_args_with_new_id)s));
   EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _))
-     .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+     .WillOnce(SetArgPointee<1>(kNewServiceId));
   SpecializedSetup<cmds::%(name)s, 0>(true);
   cmds::%(name)s cmd;
   cmd.Init(%(args_with_new_id)s);
@@ -6073,7 +6073,7 @@
     valid_test = """
 TEST_P(%(test_name)s, %(name)sValidArgs) {
   EXPECT_CALL(*gl_, %(gl_func_name)s(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>();
   GLuint temp = kNewClientId;
   SpecializedSetup<cmds::%(name)s, 0>(true);
@@ -8354,7 +8354,7 @@
   SpecializedSetup<cmds::%(name)s, 0>(true);
 %(expect_len_code)s
   EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s))
-      .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)),
+      .WillOnce(DoAll(SetArgPointee<2>(strlen(kInfo)),
                       SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1)));
   cmds::%(name)s cmd;
   cmd.Init(%(args)s);
@@ -8383,7 +8383,7 @@
     if get_len_func and get_len_func[0:2] == 'gl':
       sub['expect_len_code'] = (
         "  EXPECT_CALL(*gl_, %s(%s, %s, _))\n"
-        "      .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % (
+        "      .WillOnce(SetArgPointee<2>(strlen(kInfo) + 1));") % (
             get_len_func[2:], id_name, get_len_enum)
     self.WriteValidUnitTest(func, f, valid_test, sub, *extras)
 
diff --git a/gpu/command_buffer/service/command_buffer_service_unittest.cc b/gpu/command_buffer/service/command_buffer_service_unittest.cc
index d2d8b3c2..33629eb5 100644
--- a/gpu/command_buffer/service/command_buffer_service_unittest.cc
+++ b/gpu/command_buffer/service/command_buffer_service_unittest.cc
@@ -20,7 +20,7 @@
 using testing::_;
 using testing::DoAll;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/command_executor_unittest.cc b/gpu/command_buffer/service/command_executor_unittest.cc
index 34610ed..5108b223 100644
--- a/gpu/command_buffer/service/command_executor_unittest.cc
+++ b/gpu/command_buffer/service/command_executor_unittest.cc
@@ -23,7 +23,7 @@
 using testing::Invoke;
 using testing::NiceMock;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/context_group_unittest.cc b/gpu/command_buffer/service/context_group_unittest.cc
index 2bdcdfa..d332dc4 100644
--- a/gpu/command_buffer/service/context_group_unittest.cc
+++ b/gpu/command_buffer/service/context_group_unittest.cc
@@ -25,7 +25,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrEq;
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/feature_info_unittest.cc b/gpu/command_buffer/service/feature_info_unittest.cc
index 288d4b98..d989631 100644
--- a/gpu/command_buffer/service/feature_info_unittest.cc
+++ b/gpu/command_buffer/service/feature_info_unittest.cc
@@ -31,7 +31,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrEq;
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc
index 2e660b8d..d0f05b2 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc
@@ -23,7 +23,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrEq;
 
 namespace gpu {
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
index 3cc0df7..23e41af 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
@@ -33,7 +33,7 @@
 TEST_P(GLES2DecoderTest1, BindBufferValidArgsNewId) {
   EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId));
   EXPECT_CALL(*gl_, GenBuffersARB(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   SpecializedSetup<cmds::BindBuffer, 0>(true);
   cmds::BindBuffer cmd;
   cmd.Init(GL_ARRAY_BUFFER, kNewClientId);
@@ -63,7 +63,7 @@
 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgsNewId) {
   EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId));
   EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   SpecializedSetup<cmds::BindFramebuffer, 0>(true);
   cmds::BindFramebuffer cmd;
   cmd.Init(GL_FRAMEBUFFER, kNewClientId);
@@ -94,7 +94,7 @@
 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) {
   EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId));
   EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
   cmds::BindRenderbuffer cmd;
   cmd.Init(GL_RENDERBUFFER, kNewClientId);
@@ -656,7 +656,7 @@
 
 TEST_P(GLES2DecoderTest1, GenBuffersImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenBuffersARB(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
   GLuint temp = kNewClientId;
   SpecializedSetup<cmds::GenBuffersImmediate, 0>(true);
@@ -719,7 +719,7 @@
 
 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenFramebuffersImmediate* cmd =
       GetImmediateAs<cmds::GenFramebuffersImmediate>();
   GLuint temp = kNewClientId;
@@ -758,7 +758,7 @@
 
 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenRenderbuffersImmediate* cmd =
       GetImmediateAs<cmds::GenRenderbuffersImmediate>();
   GLuint temp = kNewClientId;
@@ -797,7 +797,7 @@
 
 TEST_P(GLES3DecoderTest1, GenSamplersImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenSamplers(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenSamplersImmediate* cmd =
       GetImmediateAs<cmds::GenSamplersImmediate>();
   GLuint temp = kNewClientId;
@@ -836,7 +836,7 @@
 
 TEST_P(GLES2DecoderTest1, GenTexturesImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenTextures(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenTexturesImmediate* cmd =
       GetImmediateAs<cmds::GenTexturesImmediate>();
   GLuint temp = kNewClientId;
@@ -875,7 +875,7 @@
 
 TEST_P(GLES3DecoderTest1, GenTransformFeedbacksImmediateValidArgs) {
   EXPECT_CALL(*gl_, GenTransformFeedbacks(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   cmds::GenTransformFeedbacksImmediate* cmd =
       GetImmediateAs<cmds::GenTransformFeedbacksImmediate>();
   GLuint temp = kNewClientId;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
index 157e953..87f472e 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
@@ -26,7 +26,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrEq;
 
 namespace gpu {
@@ -614,25 +614,21 @@
       .Times(1)
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
-      .WillOnce(SetArgumentPointee<2>(1));
-  EXPECT_CALL(*gl_,
-      GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(strlen(log) + 1))
+      .WillOnce(SetArgPointee<2>(1));
+  EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(strlen(log) + 1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_,
-      GetProgramInfoLog(kServiceProgramId, strlen(log) + 1, _, _))
-      .WillOnce(DoAll(
-          SetArgumentPointee<2>(strlen(log)),
-          SetArrayArgument<3>(log, log + strlen(log) + 1)))
+  EXPECT_CALL(*gl_, GetProgramInfoLog(kServiceProgramId, strlen(log) + 1, _, _))
+      .WillOnce(DoAll(SetArgPointee<2>(strlen(log)),
+                      SetArrayArgument<3>(log, log + strlen(log) + 1)))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTES, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      .WillOnce(SetArgPointee<2>(0));
   EXPECT_CALL(
-      *gl_,
-      GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      *gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(0));
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORMS, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      .WillOnce(SetArgPointee<2>(0));
 
   Program* program = GetProgram(client_program_id_);
   ASSERT_TRUE(program != NULL);
@@ -730,19 +726,17 @@
       .Times(1)
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
-      .WillOnce(SetArgumentPointee<2>(1));
-  EXPECT_CALL(*gl_,
-      GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(0))
+      .WillOnce(SetArgPointee<2>(1));
+  EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(0))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTES, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      .WillOnce(SetArgPointee<2>(0));
   EXPECT_CALL(
-      *gl_,
-      GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      *gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(0));
   EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORMS, _))
-      .WillOnce(SetArgumentPointee<2>(0));
+      .WillOnce(SetArgPointee<2>(0));
 
   cmds::AttachShader attach_cmd;
   attach_cmd.Init(client_program_id_, kClientVertexShaderId);
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc
index bdfa2a0..cb001576 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc
@@ -24,7 +24,7 @@
 using ::testing::Pointee;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrEq;
 
 namespace gpu {
@@ -124,9 +124,8 @@
   link_cmd.Init(client_program_id_);
   EXPECT_EQ(error::kNoError, ExecuteCmd(link_cmd));
 
-  EXPECT_CALL(*gl_,
-      GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(0))
+  EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(0))
       .RetiresOnSaturation();
 };
 
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc
index 0298713..dc2f25e 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc
@@ -42,7 +42,7 @@
 using ::testing::Return;
 using ::testing::SaveArg;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc
index f605294..fd86ff81 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc
@@ -28,7 +28,7 @@
 using ::testing::Return;
 using ::testing::SaveArg;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
index 4a51f3e..a3cf9fe3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
@@ -42,7 +42,7 @@
 using ::testing::Return;
 using ::testing::SaveArg;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc
index 7d61f12..e1c96ac4 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc
@@ -42,7 +42,7 @@
 using ::testing::Return;
 using ::testing::SaveArg;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
@@ -318,7 +318,7 @@
   const GLenum kFormat = GL_RGB;
   // Use a different texture for framebuffer to avoid drawing feedback loops.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId))
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kNewClientId);
   DoBindTexture(GL_TEXTURE_2D, kNewClientId, kNewServiceId);
@@ -1912,7 +1912,7 @@
   SetupAllNeededVertexBuffers();
   // Register a texture id.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId))
+      .WillOnce(SetArgPointee<1>(kFBOServiceTextureId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kFBOClientTextureId);
 
@@ -1976,7 +1976,7 @@
 
   // Register a texture id.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId))
+      .WillOnce(SetArgPointee<1>(kFBOServiceTextureId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kFBOClientTextureId);
 
@@ -2123,7 +2123,7 @@
 
   // Register a texture id.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId))
+      .WillOnce(SetArgPointee<1>(kFBOServiceTextureId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kFBOClientTextureId);
 
@@ -2199,7 +2199,7 @@
 
   // Register a texture id.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId))
+      .WillOnce(SetArgPointee<1>(kFBOServiceTextureId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kFBOClientTextureId);
 
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
index f4067970..760974b 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
@@ -44,7 +44,7 @@
 using ::testing::Return;
 using ::testing::SaveArg;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
@@ -767,7 +767,7 @@
   GLsizei height = 4;
   GLint border = 0;
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId))
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kNewClientId);
 
@@ -857,7 +857,7 @@
   GLsizei height = 4;
   GLint border = 0;
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId))
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
       .RetiresOnSaturation();
   GenHelper<GenTexturesImmediate>(kNewClientId);
 
@@ -2213,7 +2213,7 @@
   InitDecoder(init);
   EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_EXTERNAL_OES, kNewServiceId));
   EXPECT_CALL(*gl_, GenTextures(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   BindTexture cmd;
   cmd.Init(GL_TEXTURE_EXTERNAL_OES, kNewClientId);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
@@ -2618,7 +2618,7 @@
   InitDecoder(init);
   EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_RECTANGLE_ARB, kNewServiceId));
   EXPECT_CALL(*gl_, GenTextures(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   BindTexture cmd;
   cmd.Init(GL_TEXTURE_RECTANGLE_ARB, kNewClientId);
   EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
@@ -3226,7 +3226,7 @@
 
   // Create new texture for consume.
   EXPECT_CALL(*gl_, GenTextures(_, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId))
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
       .RetiresOnSaturation();
   DoBindTexture(GL_TEXTURE_2D, kNewClientId, kNewServiceId);
 
@@ -3409,8 +3409,8 @@
   GLuint new_texture_id = kNewClientId;
 
   EXPECT_CALL(*gl_, GenTextures(1, _))
-        .WillOnce(SetArgumentPointee<1>(kNewServiceId))
-        .RetiresOnSaturation();
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
+      .RetiresOnSaturation();
   EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, _))
         .Times(2)
         .RetiresOnSaturation();
@@ -3456,8 +3456,8 @@
   EXPECT_EQ(GL_NO_ERROR, GetGLError());
 
   EXPECT_CALL(*gl_, GenTextures(1, _))
-        .WillOnce(SetArgumentPointee<1>(kNewServiceId))
-        .RetiresOnSaturation();
+      .WillOnce(SetArgPointee<1>(kNewServiceId))
+      .RetiresOnSaturation();
   EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_CUBE_MAP, _))
         .Times(2)
         .RetiresOnSaturation();
@@ -4769,7 +4769,7 @@
       .Times(1)
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, GenTextures(1, _))
-      .WillOnce(SetArgumentPointee<1>(kNewServiceId));
+      .WillOnce(SetArgPointee<1>(kNewServiceId));
   if (!feature_info()->gl_version_info().BehavesLikeGLES() &&
       feature_info()->gl_version_info().IsAtLeastGL(3, 2)) {
     EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_2D,
diff --git a/gpu/command_buffer/service/query_manager_unittest.cc b/gpu/command_buffer/service/query_manager_unittest.cc
index aa6be4f..934a225 100644
--- a/gpu/command_buffer/service/query_manager_unittest.cc
+++ b/gpu/command_buffer/service/query_manager_unittest.cc
@@ -25,7 +25,7 @@
 using ::testing::_;
 using ::testing::InSequence;
 using ::testing::Return;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 
 namespace gpu {
 namespace gles2 {
@@ -81,8 +81,8 @@
                                    uint32_t shm_offset,
                                    GLuint service_id) {
     EXPECT_CALL(*gl_, GenQueries(1, _))
-       .WillOnce(SetArgumentPointee<1>(service_id))
-       .RetiresOnSaturation();
+        .WillOnce(SetArgPointee<1>(service_id))
+        .RetiresOnSaturation();
     return manager_->CreateQuery(target, client_id, shm_id, shm_offset);
   }
 
@@ -279,8 +279,8 @@
   // Process with return not available.
   // Expect 1 GL command.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(0))
+              GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(0))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager_->ProcessPendingQueries(false));
   EXPECT_TRUE(query->IsPending());
@@ -290,12 +290,11 @@
   // Process with return available.
   // Expect 2 GL commands.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1))
+              GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(kResult))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(kResult))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager_->ProcessPendingQueries(false));
   EXPECT_FALSE(query->IsPending());
@@ -365,25 +364,23 @@
   // Expect 4 GL commands.
   {
     InSequence s;
-    EXPECT_CALL(*gl_,
-        GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-        .WillOnce(SetArgumentPointee<2>(1))
+    EXPECT_CALL(
+        *gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+        .WillOnce(SetArgPointee<2>(1))
         .RetiresOnSaturation();
-    EXPECT_CALL(*gl_,
-        GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
-        .WillOnce(SetArgumentPointee<2>(kResult1))
+    EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+        .WillOnce(SetArgPointee<2>(kResult1))
         .RetiresOnSaturation();
-    EXPECT_CALL(*gl_,
-        GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-        .WillOnce(SetArgumentPointee<2>(1))
+    EXPECT_CALL(
+        *gl_, GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+        .WillOnce(SetArgPointee<2>(1))
         .RetiresOnSaturation();
-    EXPECT_CALL(*gl_,
-        GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_EXT, _))
-        .WillOnce(SetArgumentPointee<2>(kResult2))
+    EXPECT_CALL(*gl_, GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_EXT, _))
+        .WillOnce(SetArgPointee<2>(kResult2))
         .RetiresOnSaturation();
-    EXPECT_CALL(*gl_,
-        GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-        .WillOnce(SetArgumentPointee<2>(0))
+    EXPECT_CALL(
+        *gl_, GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+        .WillOnce(SetArgPointee<2>(0))
         .RetiresOnSaturation();
     EXPECT_TRUE(manager_->ProcessPendingQueries(false));
   }
@@ -401,8 +398,8 @@
   // Process with renaming query. No result.
   // Expect 1 GL commands.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(0))
+              GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(0))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager_->ProcessPendingQueries(false));
   EXPECT_TRUE(query3->IsPending());
@@ -413,12 +410,11 @@
   // Process with renaming query. With result.
   // Expect 2 GL commands.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1))
+              GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(kResult3))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService3Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(kResult3))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager_->ProcessPendingQueries(false));
   EXPECT_FALSE(query3->IsPending());
@@ -446,12 +442,11 @@
   // Process with return available.
   // Expect 2 GL commands.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1))
+              GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(kResult))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(kResult))
       .RetiresOnSaturation();
   EXPECT_FALSE(manager_->ProcessPendingQueries(false));
 }
@@ -475,12 +470,11 @@
   // Process with return available.
   // Expect 2 GL commands.
   EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1))
+              GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_,
-      GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(kResult))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(kResult))
       .RetiresOnSaturation();
   EXPECT_FALSE(manager_->ProcessPendingQueries(false));
 }
@@ -518,7 +512,7 @@
       new QueryManager(decoder_.get(), feature_info.get()));
 
   EXPECT_CALL(*gl_, GenQueries(1, _))
-      .WillOnce(SetArgumentPointee<1>(kService1Id))
+      .WillOnce(SetArgPointee<1>(kService1Id))
       .RetiresOnSaturation();
   QueryManager::Query* query = manager->CreateQuery(
       kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
@@ -552,7 +546,7 @@
       new QueryManager(decoder_.get(), feature_info.get()));
 
   EXPECT_CALL(*gl_, GenQueries(1, _))
-      .WillOnce(SetArgumentPointee<1>(kService1Id))
+      .WillOnce(SetArgPointee<1>(kService1Id))
       .RetiresOnSaturation();
   QueryManager::Query* query = manager->CreateQuery(
       kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
@@ -585,7 +579,7 @@
       new QueryManager(decoder_.get(), feature_info.get()));
 
   EXPECT_CALL(*gl_, GenQueries(1, _))
-      .WillOnce(SetArgumentPointee<1>(kService1Id))
+      .WillOnce(SetArgPointee<1>(kService1Id))
       .RetiresOnSaturation();
   QueryManager::Query* query = manager->CreateQuery(
       kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
@@ -603,7 +597,7 @@
   manager->PauseQueries();
 
   EXPECT_CALL(*gl_, GenQueries(1, _))
-      .WillOnce(SetArgumentPointee<1>(kService2Id))
+      .WillOnce(SetArgPointee<1>(kService2Id))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService2Id))
       .Times(1)
@@ -615,17 +609,15 @@
       .RetiresOnSaturation();
   EXPECT_TRUE(manager->EndQuery(query, kSubmitCount));
 
-  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService2Id,
-                                      GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1u))
+  EXPECT_CALL(*gl_,
+              GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1u))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id,
-                                      GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(0u))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(0u))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService2Id,
-                                      GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1u))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService2Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(1u))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager->ProcessPendingQueries(false));
   EXPECT_TRUE(query->IsFinished());
@@ -647,13 +639,12 @@
   EXPECT_TRUE(manager->BeginQuery(query));
   EXPECT_TRUE(manager->EndQuery(query, kSubmitCount + 1));
 
-  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id,
-                                      GL_QUERY_RESULT_AVAILABLE_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(1u))
+  EXPECT_CALL(*gl_,
+              GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
+      .WillOnce(SetArgPointee<2>(1u))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id,
-                                      GL_QUERY_RESULT_EXT, _))
-      .WillOnce(SetArgumentPointee<2>(0u))
+  EXPECT_CALL(*gl_, GetQueryObjectuiv(kService1Id, GL_QUERY_RESULT_EXT, _))
+      .WillOnce(SetArgPointee<2>(0u))
       .RetiresOnSaturation();
   EXPECT_TRUE(manager->ProcessPendingQueries(false));
   EXPECT_TRUE(query->IsFinished());
@@ -999,7 +990,7 @@
       new QueryManager(decoder_.get(), feature_info.get()));
 
   EXPECT_CALL(*gl_, GenQueries(1, _))
-      .WillOnce(SetArgumentPointee<1>(kService1Id))
+      .WillOnce(SetArgPointee<1>(kService1Id))
       .RetiresOnSaturation();
   QueryManager::Query* query = manager->CreateQuery(
       kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc
index 3630f610..7c843d0 100644
--- a/gpu/command_buffer/service/test_helper.cc
+++ b/gpu/command_buffer/service/test_helper.cc
@@ -33,7 +33,7 @@
 using ::testing::NotNull;
 using ::testing::Return;
 using ::testing::SetArrayArgument;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::SetArgPointee;
 using ::testing::StrEq;
 using ::testing::StrictMock;
@@ -351,17 +351,17 @@
   SetupFeatureInfoInitExpectationsWithGLVersion(gl, extensions, "", gl_version,
       context_type);
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_RENDERBUFFER_SIZE, _))
-      .WillOnce(SetArgumentPointee<1>(kMaxRenderbufferSize))
+      .WillOnce(SetArgPointee<1>(kMaxRenderbufferSize))
       .RetiresOnSaturation();
   if (strstr(extensions, "GL_EXT_framebuffer_multisample") ||
       strstr(extensions, "GL_EXT_multisampled_render_to_texture") ||
       gl_info.is_es3 || gl_info.is_desktop_core_profile) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxSamples))
+        .WillOnce(SetArgPointee<1>(kMaxSamples))
         .RetiresOnSaturation();
   } else if (strstr(extensions, "GL_IMG_multisampled_render_to_texture")) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES_IMG, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxSamples))
+        .WillOnce(SetArgPointee<1>(kMaxSamples))
         .RetiresOnSaturation();
   }
 
@@ -372,10 +372,10 @@
         strstr(extensions, "GL_ARB_draw_buffers") ||
         (gl_info.is_es3 && strstr(extensions, "GL_NV_draw_buffers"))))) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, _))
-        .WillOnce(SetArgumentPointee<1>(8))
+        .WillOnce(SetArgPointee<1>(8))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, _))
-        .WillOnce(SetArgumentPointee<1>(8))
+        .WillOnce(SetArgPointee<1>(8))
         .RetiresOnSaturation();
   }
 
@@ -384,94 +384,94 @@
        strstr(extensions, "GL_ARB_blend_func_extended")) ||
       (gl_info.is_es && strstr(extensions, "GL_EXT_blend_func_extended"))) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT, _))
-        .WillOnce(SetArgumentPointee<1>(8))
+        .WillOnce(SetArgPointee<1>(8))
         .RetiresOnSaturation();
   }
 
   if (gl_info.is_es3_capable) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxTransformFeedbackSeparateAttribs))
+        .WillOnce(SetArgPointee<1>(kMaxTransformFeedbackSeparateAttribs))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_UNIFORM_BUFFER_BINDINGS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxUniformBufferBindings))
+        .WillOnce(SetArgPointee<1>(kMaxUniformBufferBindings))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, _))
-        .WillOnce(SetArgumentPointee<1>(kUniformBufferOffsetAlignment))
+        .WillOnce(SetArgPointee<1>(kUniformBufferOffsetAlignment))
         .RetiresOnSaturation();
   }
 
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_ATTRIBS, _))
-      .WillOnce(SetArgumentPointee<1>(kNumVertexAttribs))
+      .WillOnce(SetArgPointee<1>(kNumVertexAttribs))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, _))
-      .WillOnce(SetArgumentPointee<1>(kNumTextureUnits))
+      .WillOnce(SetArgPointee<1>(kNumTextureUnits))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_TEXTURE_SIZE, _))
-      .WillOnce(SetArgumentPointee<1>(kMaxTextureSize))
+      .WillOnce(SetArgPointee<1>(kMaxTextureSize))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, _))
-      .WillOnce(SetArgumentPointee<1>(kMaxCubeMapTextureSize))
+      .WillOnce(SetArgPointee<1>(kMaxCubeMapTextureSize))
       .RetiresOnSaturation();
   if (gl_info.is_es3_capable) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_3D_TEXTURE_SIZE, _))
-        .WillOnce(SetArgumentPointee<1>(kMax3DTextureSize))
+        .WillOnce(SetArgPointee<1>(kMax3DTextureSize))
         .RetiresOnSaturation();
   }
   if (gl_info.is_es3_capable) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxArrayTextureLayers))
+        .WillOnce(SetArgPointee<1>(kMaxArrayTextureLayers))
         .RetiresOnSaturation();
   }
   if (strstr(extensions, "GL_ARB_texture_rectangle") ||
       gl_info.is_desktop_core_profile) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_RECTANGLE_TEXTURE_SIZE, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxRectangleTextureSize))
+        .WillOnce(SetArgPointee<1>(kMaxRectangleTextureSize))
         .RetiresOnSaturation();
   }
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, _))
-      .WillOnce(SetArgumentPointee<1>(kMaxTextureImageUnits))
+      .WillOnce(SetArgPointee<1>(kMaxTextureImageUnits))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, _))
-      .WillOnce(SetArgumentPointee<1>(kMaxVertexTextureImageUnits))
+      .WillOnce(SetArgPointee<1>(kMaxVertexTextureImageUnits))
       .RetiresOnSaturation();
 
   if (gl_info.is_es || gl_info.is_desktop_core_profile) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxFragmentUniformVectors))
+        .WillOnce(SetArgPointee<1>(kMaxFragmentUniformVectors))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VARYING_VECTORS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxVaryingVectors))
+        .WillOnce(SetArgPointee<1>(kMaxVaryingVectors))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_UNIFORM_VECTORS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxVertexUniformVectors))
+        .WillOnce(SetArgPointee<1>(kMaxVertexUniformVectors))
         .RetiresOnSaturation();
   } else {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxFragmentUniformComponents))
+        .WillOnce(SetArgPointee<1>(kMaxFragmentUniformComponents))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VARYING_FLOATS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxVaryingFloats))
+        .WillOnce(SetArgPointee<1>(kMaxVaryingFloats))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, _))
-        .WillOnce(SetArgumentPointee<1>(kMaxVertexUniformComponents))
+        .WillOnce(SetArgPointee<1>(kMaxVertexUniformComponents))
         .RetiresOnSaturation();
   }
 
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_OUTPUT_COMPONENTS, _))
       .Times(testing::Between(0, 1))
-      .WillRepeatedly(SetArgumentPointee<1>(kMaxVertexOutputComponents))
+      .WillRepeatedly(SetArgPointee<1>(kMaxVertexOutputComponents))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_FRAGMENT_INPUT_COMPONENTS, _))
       .Times(testing::Between(0, 1))
-      .WillRepeatedly(SetArgumentPointee<1>(kMaxFragmentInputComponents))
+      .WillRepeatedly(SetArgPointee<1>(kMaxFragmentInputComponents))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MAX_PROGRAM_TEXEL_OFFSET, _))
       .Times(testing::Between(0, 1))
-      .WillRepeatedly(SetArgumentPointee<1>(kMaxProgramTexelOffset))
+      .WillRepeatedly(SetArgPointee<1>(kMaxProgramTexelOffset))
       .RetiresOnSaturation();
   EXPECT_CALL(*gl, GetIntegerv(GL_MIN_PROGRAM_TEXEL_OFFSET, _))
       .Times(testing::Between(0, 1))
-      .WillRepeatedly(SetArgumentPointee<1>(kMinProgramTexelOffset))
+      .WillRepeatedly(SetArgPointee<1>(kMinProgramTexelOffset))
       .RetiresOnSaturation();
 
   bool use_default_textures = bind_generates_resource;
@@ -511,7 +511,7 @@
   gl::GLVersionInfo gl_info(gl_version, gl_renderer, extensions);
   if (!gl_info.is_es && gl_info.major_version >= 3) {
     EXPECT_CALL(*gl, GetIntegerv(GL_NUM_EXTENSIONS, _))
-        .WillOnce(SetArgumentPointee<1>(split_extensions_.size()))
+        .WillOnce(SetArgPointee<1>(split_extensions_.size()))
         .RetiresOnSaturation();
     for (size_t ii = 0; ii < split_extensions_.size(); ++ii) {
       EXPECT_CALL(*gl, GetStringi(GL_EXTENSIONS, ii))
@@ -546,10 +546,10 @@
     static const GLuint fb_ids[] = {103, 104};
     const GLsizei width = 16;
     EXPECT_CALL(*gl, GetIntegerv(GL_FRAMEBUFFER_BINDING, _))
-        .WillOnce(SetArgumentPointee<1>(fb_ids[0]))
+        .WillOnce(SetArgPointee<1>(fb_ids[0]))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_TEXTURE_BINDING_2D, _))
-        .WillOnce(SetArgumentPointee<1>(tx_ids[0]))
+        .WillOnce(SetArgPointee<1>(tx_ids[0]))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GenTextures(1, _))
         .WillOnce(SetArrayArgument<1>(tx_ids + 1, tx_ids + 2))
@@ -691,10 +691,10 @@
         strstr(extensions, "GL_ARB_draw_buffers") ||
         (gl_info.is_es3 && strstr(extensions, "GL_NV_draw_buffers"))))) {
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, _))
-        .WillOnce(SetArgumentPointee<1>(8))
+        .WillOnce(SetArgPointee<1>(8))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, _))
-        .WillOnce(SetArgumentPointee<1>(8))
+        .WillOnce(SetArgPointee<1>(8))
         .RetiresOnSaturation();
   }
 
@@ -705,10 +705,10 @@
     static const GLuint fb_ids[] = {103, 104};
     const GLsizei width = 1;
     EXPECT_CALL(*gl, GetIntegerv(GL_FRAMEBUFFER_BINDING, _))
-        .WillOnce(SetArgumentPointee<1>(fb_ids[0]))
+        .WillOnce(SetArgPointee<1>(fb_ids[0]))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GetIntegerv(GL_TEXTURE_BINDING_2D, _))
-        .WillOnce(SetArgumentPointee<1>(tx_ids[0]))
+        .WillOnce(SetArgPointee<1>(tx_ids[0]))
         .RetiresOnSaturation();
     EXPECT_CALL(*gl, GenTextures(1, _))
         .WillOnce(SetArrayArgument<1>(tx_ids + 1, tx_ids + 2))
@@ -866,39 +866,32 @@
     ProgramOutputInfo* program_outputs,
     size_t num_program_outputs,
     GLuint service_id) {
-  EXPECT_CALL(*gl,
-      GetProgramiv(service_id, GL_LINK_STATUS, _))
-      .WillOnce(SetArgumentPointee<2>(1))
+  EXPECT_CALL(*gl, GetProgramiv(service_id, GL_LINK_STATUS, _))
+      .WillOnce(SetArgPointee<2>(1))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl,
-      GetProgramiv(service_id, GL_INFO_LOG_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(0))
+  EXPECT_CALL(*gl, GetProgramiv(service_id, GL_INFO_LOG_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(0))
       .RetiresOnSaturation();
-  EXPECT_CALL(*gl,
-      GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTES, _))
-      .WillOnce(SetArgumentPointee<2>(num_attribs))
+  EXPECT_CALL(*gl, GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTES, _))
+      .WillOnce(SetArgPointee<2>(num_attribs))
       .RetiresOnSaturation();
   size_t max_attrib_len = 0;
   for (size_t ii = 0; ii < num_attribs; ++ii) {
     size_t len = strlen(attribs[ii].name) + 1;
     max_attrib_len = std::max(max_attrib_len, len);
   }
-  EXPECT_CALL(*gl,
-      GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
-      .WillOnce(SetArgumentPointee<2>(max_attrib_len))
+  EXPECT_CALL(*gl, GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
+      .WillOnce(SetArgPointee<2>(max_attrib_len))
       .RetiresOnSaturation();
 
   for (size_t ii = 0; ii < num_attribs; ++ii) {
     const AttribInfo& info = attribs[ii];
     EXPECT_CALL(*gl,
-        GetActiveAttrib(service_id, ii,
-                        max_attrib_len, _, _, _, _))
+                GetActiveAttrib(service_id, ii, max_attrib_len, _, _, _, _))
         .WillOnce(DoAll(
-            SetArgumentPointee<3>(strlen(info.name)),
-            SetArgumentPointee<4>(info.size),
-            SetArgumentPointee<5>(info.type),
-            SetArrayArgument<6>(info.name,
-                                info.name + strlen(info.name) + 1)))
+            SetArgPointee<3>(strlen(info.name)), SetArgPointee<4>(info.size),
+            SetArgPointee<5>(info.type),
+            SetArrayArgument<6>(info.name, info.name + strlen(info.name) + 1)))
         .RetiresOnSaturation();
     if (!ProgramManager::HasBuiltInPrefix(info.name)) {
       EXPECT_CALL(*gl, GetAttribLocation(service_id, StrEq(info.name)))
@@ -906,9 +899,8 @@
           .RetiresOnSaturation();
     }
   }
-  EXPECT_CALL(*gl,
-      GetProgramiv(service_id, GL_ACTIVE_UNIFORMS, _))
-      .WillOnce(SetArgumentPointee<2>(num_uniforms))
+  EXPECT_CALL(*gl, GetProgramiv(service_id, GL_ACTIVE_UNIFORMS, _))
+      .WillOnce(SetArgPointee<2>(num_uniforms))
       .RetiresOnSaturation();
 
   if (num_uniforms > 0) {
@@ -918,15 +910,15 @@
       max_uniform_len = std::max(max_uniform_len, len);
     }
     EXPECT_CALL(*gl, GetProgramiv(service_id, GL_ACTIVE_UNIFORM_MAX_LENGTH, _))
-        .WillOnce(SetArgumentPointee<2>(max_uniform_len))
+        .WillOnce(SetArgPointee<2>(max_uniform_len))
         .RetiresOnSaturation();
     for (size_t ii = 0; ii < num_uniforms; ++ii) {
       const UniformInfo& info = uniforms[ii];
       EXPECT_CALL(*gl,
                   GetActiveUniform(service_id, ii, max_uniform_len, _, _, _, _))
-          .WillOnce(DoAll(SetArgumentPointee<3>(strlen(info.name)),
-                          SetArgumentPointee<4>(info.size),
-                          SetArgumentPointee<5>(info.type),
+          .WillOnce(DoAll(SetArgPointee<3>(strlen(info.name)),
+                          SetArgPointee<4>(info.size),
+                          SetArgPointee<5>(info.type),
                           SetArrayArgument<6>(
                               info.name, info.name + strlen(info.name) + 1)))
           .RetiresOnSaturation();
@@ -956,7 +948,7 @@
   if (feature_info->feature_flags().chromium_path_rendering) {
     EXPECT_CALL(*gl, GetProgramInterfaceiv(service_id, GL_FRAGMENT_INPUT_NV,
                                            GL_ACTIVE_RESOURCES, _))
-        .WillOnce(SetArgumentPointee<3>(int(num_varyings)))
+        .WillOnce(SetArgPointee<3>(int(num_varyings)))
         .RetiresOnSaturation();
     size_t max_varying_len = 0;
     for (size_t ii = 0; ii < num_varyings; ++ii) {
@@ -965,13 +957,13 @@
     }
     EXPECT_CALL(*gl, GetProgramInterfaceiv(service_id, GL_FRAGMENT_INPUT_NV,
                                            GL_MAX_NAME_LENGTH, _))
-        .WillOnce(SetArgumentPointee<3>(int(max_varying_len)))
+        .WillOnce(SetArgPointee<3>(int(max_varying_len)))
         .RetiresOnSaturation();
     for (size_t ii = 0; ii < num_varyings; ++ii) {
       VaryingInfo& info = varyings[ii];
       EXPECT_CALL(*gl, GetProgramResourceName(service_id, GL_FRAGMENT_INPUT_NV,
                                               ii, max_varying_len, _, _))
-          .WillOnce(DoAll(SetArgumentPointee<4>(strlen(info.name)),
+          .WillOnce(DoAll(SetArgPointee<4>(strlen(info.name)),
                           SetArrayArgument<5>(
                               info.name, info.name + strlen(info.name) + 1)))
           .RetiresOnSaturation();
@@ -1164,15 +1156,12 @@
                                           NotNull(),   // varying_map
                                           NotNull(),   // interface_block_map
                                           NotNull()))  // output_variable_list
-      .WillOnce(DoAll(SetArgumentPointee<1>(*log_info),
-                      SetArgumentPointee<2>(*translated_source),
-                      SetArgumentPointee<3>(*shader_version),
-                      SetArgumentPointee<4>(*attrib_map),
-                      SetArgumentPointee<5>(*uniform_map),
-                      SetArgumentPointee<6>(*varying_map),
-                      SetArgumentPointee<7>(*interface_block_map),
-                      SetArgumentPointee<8>(*output_variable_list),
-                      Return(expected_valid)))
+      .WillOnce(DoAll(
+          SetArgPointee<1>(*log_info), SetArgPointee<2>(*translated_source),
+          SetArgPointee<3>(*shader_version), SetArgPointee<4>(*attrib_map),
+          SetArgPointee<5>(*uniform_map), SetArgPointee<6>(*varying_map),
+          SetArgPointee<7>(*interface_block_map),
+          SetArgPointee<8>(*output_variable_list), Return(expected_valid)))
       .RetiresOnSaturation();
   if (expected_valid) {
     EXPECT_CALL(*gl, ShaderSource(shader->service_id(), 1, _, NULL))
@@ -1181,10 +1170,9 @@
     EXPECT_CALL(*gl, CompileShader(shader->service_id()))
         .Times(1)
         .RetiresOnSaturation();
-    EXPECT_CALL(*gl, GetShaderiv(shader->service_id(),
-                                 GL_COMPILE_STATUS,
+    EXPECT_CALL(*gl, GetShaderiv(shader->service_id(), GL_COMPILE_STATUS,
                                  NotNull()))  // status
-        .WillOnce(SetArgumentPointee<2>(GL_TRUE))
+        .WillOnce(SetArgPointee<2>(GL_TRUE))
         .RetiresOnSaturation();
   }
   shader->RequestCompile(translator, Shader::kGL);
diff --git a/media/audio/alsa/alsa_output_unittest.cc b/media/audio/alsa/alsa_output_unittest.cc
index bb6073827..f2c55411 100644
--- a/media/audio/alsa/alsa_output_unittest.cc
+++ b/media/audio/alsa/alsa_output_unittest.cc
@@ -34,7 +34,7 @@
 using testing::Mock;
 using testing::MockFunction;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 using testing::StrEq;
 using testing::Unused;
@@ -259,16 +259,14 @@
   // AlsaPcmOutputStream::kMinLatencyMicros will get clipped to
   // AlsaPcmOutputStream::kMinLatencyMicros,
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_,
               PcmSetParams(_, _, _, _, _, _,
                            AlsaPcmOutputStream::kMinLatencyMicros))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
 
   AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout,
                                                   kPacketFramesInMinLatency);
@@ -290,14 +288,13 @@
                                 .InMicroseconds();
 
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle), Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_,
               PcmSetParams(_, _, _, _, _, _, expected_micros))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
 
   test_stream = CreateStream(kTestChannelLayout,
                              kOverMinLatencyPacketSize);
@@ -323,10 +320,9 @@
   // with the resulting configuration data, and transitions the object state to
   // kIsOpened.
   EXPECT_CALL(mock_alsa_wrapper_,
-              PcmOpen(_, StrEq(kTestDeviceName),
-                      SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+              PcmOpen(_, StrEq(kTestDeviceName), SND_PCM_STREAM_PLAYBACK,
+                      SND_PCM_NONBLOCK))
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_,
               PcmSetParams(kFakeHandle,
                            SND_PCM_FORMAT_U8,
@@ -337,9 +333,8 @@
                            expected_micros))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(kFakeHandle, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
 
   // Open the stream.
   AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
@@ -380,8 +375,7 @@
 
 TEST_F(AlsaPcmOutputStreamTest, PcmSetParamsFailed) {
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmSetParams(_, _, _, _, _, _, _))
       .WillOnce(Return(kTestFailedErrno));
   EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle))
@@ -411,14 +405,12 @@
   // with the resulting configuration data, and transitions the object state to
   // kIsOpened.
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmSetParams(_, _, _, _, _, _, _))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
 
   // Open the stream.
   AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
@@ -438,7 +430,7 @@
   EXPECT_CALL(mock_alsa_wrapper_, PcmState(kFakeHandle))
       .WillRepeatedly(Return(SND_PCM_STATE_RUNNING));
   EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(kFakeHandle, _))
-      .WillRepeatedly(DoAll(SetArgumentPointee<1>(0), Return(0)));
+      .WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(0)));
   EXPECT_CALL(mock_callback,
               OnMoreData(base::TimeDelta(), tick_clock->NowTicks(), 0, _))
       .WillRepeatedly(DoAll(ClearBuffer(), Return(kTestFramesPerPacket)));
@@ -482,14 +474,12 @@
 TEST_F(AlsaPcmOutputStreamTest, WritePacket_NormalPacket) {
   // We need to open the stream before writing data to ALSA.
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmSetParams(_, _, _, _, _, _, _))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
   AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
   ASSERT_TRUE(test_stream->Open());
   InitBuffer(test_stream);
@@ -529,14 +519,12 @@
 TEST_F(AlsaPcmOutputStreamTest, WritePacket_WriteFails) {
   // We need to open the stream before writing data to ALSA.
   EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmSetParams(_, _, _, _, _, _, _))
       .WillOnce(Return(0));
   EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
-                      SetArgumentPointee<2>(kTestFramesPerPacket / 2),
-                      Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(kTestFramesPerPacket),
+                      SetArgPointee<2>(kTestFramesPerPacket / 2), Return(0)));
   AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
   ASSERT_TRUE(test_stream->Open());
   InitBuffer(test_stream);
@@ -601,7 +589,7 @@
   EXPECT_CALL(mock_alsa_wrapper_, PcmState(_))
       .WillOnce(Return(SND_PCM_STATE_RUNNING));
   EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(1), Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(1), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
       .WillRepeatedly(Return(0));  // Buffer is full.
 
@@ -633,7 +621,7 @@
   EXPECT_CALL(mock_alsa_wrapper_, PcmState(_))
       .WillOnce(Return(SND_PCM_STATE_RUNNING));
   EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _))
-      .WillOnce(DoAll(SetArgumentPointee<1>(-1), Return(0)));
+      .WillOnce(DoAll(SetArgPointee<1>(-1), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
       .WillRepeatedly(Return(0));  // Buffer is full.
   EXPECT_CALL(mock_callback,
@@ -730,14 +718,14 @@
       // The DeviceNameHint and DeviceNameFreeHint need to be paired to avoid a
       // memory leak.
       EXPECT_CALL(mock_alsa_wrapper_, DeviceNameHint(_, _, _))
-          .WillOnce(DoAll(SetArgumentPointee<2>(&kFakeHints[0]), Return(0)));
+          .WillOnce(DoAll(SetArgPointee<2>(&kFakeHints[0]), Return(0)));
       EXPECT_CALL(mock_alsa_wrapper_, DeviceNameFreeHint(&kFakeHints[0]))
           .Times(1);
     }
 
     EXPECT_CALL(mock_alsa_wrapper_,
                 PcmOpen(_, StrEq(kExpectedDeviceName[i]), _, _))
-        .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle), Return(0)));
+        .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
     EXPECT_CALL(mock_alsa_wrapper_,
                 PcmSetParams(kFakeHandle, _, _, i, _, _, _))
         .WillOnce(Return(0));
@@ -784,7 +772,7 @@
                            AlsaPcmOutputStream::kDefaultDevice;
 
   EXPECT_CALL(mock_alsa_wrapper_, DeviceNameHint(_, _, _))
-      .WillOnce(DoAll(SetArgumentPointee<2>(&kFakeHints[0]), Return(0)));
+      .WillOnce(DoAll(SetArgPointee<2>(&kFakeHints[0]), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_, DeviceNameFreeHint(&kFakeHints[0]))
       .Times(1);
   EXPECT_CALL(mock_alsa_wrapper_, DeviceNameGetHint(_, StrEq("IOID")))
@@ -818,7 +806,7 @@
       .WillRepeatedly(Return(kTestFailedErrno));
   EXPECT_CALL(mock_alsa_wrapper_,
               PcmOpen(_, StrEq(AlsaPcmOutputStream::kDefaultDevice), _, _))
-      .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle), Return(0)));
+      .WillOnce(DoAll(SetArgPointee<0>(kFakeHandle), Return(0)));
   EXPECT_CALL(mock_alsa_wrapper_,
               PcmSetParams(kFakeHandle, _, _, 2, _, _, _))
       .WillOnce(Return(0));
diff --git a/media/audio/cras/cras_unified_unittest.cc b/media/audio/cras/cras_unified_unittest.cc
index 89a3ef0..89f9438 100644
--- a/media/audio/cras/cras_unified_unittest.cc
+++ b/media/audio/cras/cras_unified_unittest.cc
@@ -31,7 +31,7 @@
 using testing::DoAll;
 using testing::InvokeWithoutArgs;
 using testing::Return;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::StrictMock;
 
 namespace media {
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
index 7c79934..721f7b8 100644
--- a/media/filters/chunk_demuxer_unittest.cc
+++ b/media/filters/chunk_demuxer_unittest.cc
@@ -42,7 +42,7 @@
 using ::testing::NotNull;
 using ::testing::Return;
 using ::testing::SaveArg;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrictMock;
 using ::testing::WithParamInterface;
 using ::testing::_;
diff --git a/media/filters/ffmpeg_glue_unittest.cc b/media/filters/ffmpeg_glue_unittest.cc
index cda290e9..11f56f1 100644
--- a/media/filters/ffmpeg_glue_unittest.cc
+++ b/media/filters/ffmpeg_glue_unittest.cc
@@ -23,7 +23,7 @@
 using ::testing::DoAll;
 using ::testing::InSequence;
 using ::testing::Return;
-using ::testing::SetArgumentPointee;
+using ::testing::SetArgPointee;
 using ::testing::StrictMock;
 
 namespace media {
@@ -174,7 +174,7 @@
   EXPECT_CALL(*protocol_, SetPosition(16))
       .WillOnce(Return(true));
   EXPECT_CALL(*protocol_, GetPosition(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(8), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(8), Return(true)));
 
   EXPECT_EQ(AVERROR(EIO), Seek(-16, SEEK_SET));
   EXPECT_EQ(8, Seek(16, SEEK_SET));
@@ -185,16 +185,16 @@
       .WillOnce(Return(false));
 
   EXPECT_CALL(*protocol_, GetPosition(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(8), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(8), Return(true)));
   EXPECT_CALL(*protocol_, SetPosition(16))
       .WillOnce(Return(false));
 
   EXPECT_CALL(*protocol_, GetPosition(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(8), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(8), Return(true)));
   EXPECT_CALL(*protocol_, SetPosition(16))
       .WillOnce(Return(true));
   EXPECT_CALL(*protocol_, GetPosition(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(16), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(16), Return(true)));
 
   EXPECT_EQ(AVERROR(EIO), Seek(8, SEEK_CUR));
   EXPECT_EQ(AVERROR(EIO), Seek(8, SEEK_CUR));
@@ -206,16 +206,16 @@
       .WillOnce(Return(false));
 
   EXPECT_CALL(*protocol_, GetSize(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(16), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(16), Return(true)));
   EXPECT_CALL(*protocol_, SetPosition(8))
       .WillOnce(Return(false));
 
   EXPECT_CALL(*protocol_, GetSize(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(16), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(16), Return(true)));
   EXPECT_CALL(*protocol_, SetPosition(8))
       .WillOnce(Return(true));
   EXPECT_CALL(*protocol_, GetPosition(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(8), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(8), Return(true)));
 
   EXPECT_EQ(AVERROR(EIO), Seek(-8, SEEK_END));
   EXPECT_EQ(AVERROR(EIO), Seek(-8, SEEK_END));
@@ -226,7 +226,7 @@
       .WillOnce(Return(false));
 
   EXPECT_CALL(*protocol_, GetSize(_))
-      .WillOnce(DoAll(SetArgumentPointee<0>(16), Return(true)));
+      .WillOnce(DoAll(SetArgPointee<0>(16), Return(true)));
 
   EXPECT_EQ(AVERROR(EIO), Seek(0, AVSEEK_SIZE));
   EXPECT_EQ(16, Seek(0, AVSEEK_SIZE));
diff --git a/remoting/protocol/jingle_session_unittest.cc b/remoting/protocol/jingle_session_unittest.cc
index 2c3c61b..8538c8d 100644
--- a/remoting/protocol/jingle_session_unittest.cc
+++ b/remoting/protocol/jingle_session_unittest.cc
@@ -44,7 +44,7 @@
 using testing::InvokeWithoutArgs;
 using testing::Return;
 using testing::SaveArg;
-using testing::SetArgumentPointee;
+using testing::SetArgPointee;
 using testing::WithArg;
 
 namespace remoting {
@@ -223,7 +223,7 @@
     EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _))
         .WillOnce(
             DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)),
-                  SetArgumentPointee<1>(protocol::SessionManager::ACCEPT)));
+                  SetArgPointee<1>(protocol::SessionManager::ACCEPT)));
 
     {
       InSequence dummy;
@@ -357,7 +357,7 @@
 
   // Reject incoming session.
   EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _))
-      .WillOnce(SetArgumentPointee<1>(protocol::SessionManager::DECLINE));
+      .WillOnce(SetArgPointee<1>(protocol::SessionManager::DECLINE));
 
   {
     InSequence dummy;
@@ -497,9 +497,9 @@
   CreateSessionManagers(auth_config);
 
   EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _))
-      .WillOnce(DoAll(
-          WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)),
-          SetArgumentPointee<1>(protocol::SessionManager::ACCEPT)));
+      .WillOnce(
+          DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)),
+                SetArgPointee<1>(protocol::SessionManager::ACCEPT)));
 
   EXPECT_CALL(host_session_event_handler_,
       OnSessionStateChange(Session::ACCEPTED))
@@ -526,7 +526,7 @@
   EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _))
       .WillOnce(
           DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)),
-                SetArgumentPointee<1>(protocol::SessionManager::ACCEPT)));
+                SetArgPointee<1>(protocol::SessionManager::ACCEPT)));
 
   EXPECT_CALL(host_session_event_handler_,
       OnSessionStateChange(Session::ACCEPTED))
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 8b1f4d7..8d4ee637 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -1606,24 +1606,6 @@
             ]
         }
     ],
-    "NTPTilesInInstantService": [
-        {
-            "platforms": [
-                "chromeos",
-                "linux",
-                "mac",
-                "win"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "NTPTilesInInstantService"
-                    ]
-                }
-            ]
-        }
-    ],
     "NetDelayableH2AndQuicRequests": [
         {
             "platforms": [
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index 91658413..659e50d 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -12755,7 +12755,6 @@
 crbug.com/591099 fast/selectors/adjacent-selectors-with-subselector.html [ Failure ]
 crbug.com/591099 fast/selectors/element-closest-general.html [ Failure ]
 crbug.com/591099 fast/selectors/element-closest-scope.html [ Failure ]
-crbug.com/591099 fast/selectors/focus-within-display-none.html [ Crash ]
 crbug.com/591099 fast/selectors/focus-within-window-inactive.html [ Crash ]
 crbug.com/591099 fast/selectors/input-with-selection-pseudo-element.html [ Failure ]
 crbug.com/591099 fast/selectors/lang-vs-xml-lang.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path-expected.txt b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path-expected.txt
index f14593d..856576bb 100644
--- a/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = 12 duplicate test names: "Changing pointerEvents, an independent inherited property, propagates correctly with a single style recalc.", "Changing visibility, an independent inherited property, propagates correctly with a single style recalc.", "Changing whiteSpace, an independent inherited property, propagates correctly with a single style recalc.", "Changing borderCollapse, an independent inherited property, propagates correctly with a single style recalc.", "Changing emptyCells, an independent inherited property, propagates correctly with a single style recalc.", "Changing captionSide, an independent inherited property, propagates correctly with a single style recalc.", "Changing listStylePosition, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitBoxDirection, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitPrintColorAdjust, an independent inherited property, propagates correctly with a single style recalc.", "Changing textTransform, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitRtlOrdering, an independent inherited property, propagates correctly with a single style recalc.", "Changing textAlign, an independent inherited property, propagates correctly with a single style recalc."
+Harness Error. harness_status.status = 1 , harness_status.message = 11 duplicate test names: "Changing pointerEvents, an independent inherited property, propagates correctly with a single style recalc.", "Changing visibility, an independent inherited property, propagates correctly with a single style recalc.", "Changing whiteSpace, an independent inherited property, propagates correctly with a single style recalc.", "Changing borderCollapse, an independent inherited property, propagates correctly with a single style recalc.", "Changing emptyCells, an independent inherited property, propagates correctly with a single style recalc.", "Changing captionSide, an independent inherited property, propagates correctly with a single style recalc.", "Changing listStylePosition, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitBoxDirection, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitPrintColorAdjust, an independent inherited property, propagates correctly with a single style recalc.", "Changing textTransform, an independent inherited property, propagates correctly with a single style recalc.", "Changing webkitRtlOrdering, an independent inherited property, propagates correctly with a single style recalc."
 PASS Changing pointerEvents, an independent inherited property, propagates correctly with a single style recalc. 
 PASS Changing pointerEvents, an independent inherited property, propagates correctly with a single style recalc. 
 PASS Changing pointerEvents, an independent inherited property, propagates correctly with a single style recalc. 
@@ -37,7 +37,5 @@
 PASS Changing textTransform, an independent inherited property, propagates correctly with a single style recalc. 
 PASS Changing webkitRtlOrdering, an independent inherited property, propagates correctly with a single style recalc. 
 PASS Changing webkitRtlOrdering, an independent inherited property, propagates correctly with a single style recalc. 
-PASS Changing textAlign, an independent inherited property, propagates correctly with a single style recalc. 
-PASS Changing textAlign, an independent inherited property, propagates correctly with a single style recalc. 
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
index 3445b94..843dde0 100644
--- a/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
+++ b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
@@ -24,7 +24,6 @@
     ["webkitPrintColorAdjust", ["economy", "exact"]],
     ["textTransform", ["capitalize", "uppercase", "lowercase", "none"]],
     ["webkitRtlOrdering", ["logical", "visual"]],
-    ["textAlign", ["start", "left"]],
 ];
 
 independent_properties.forEach(function(test_data)
diff --git a/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent-expected.html b/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent-expected.html
new file mode 100644
index 0000000..f8eb0d09
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent-expected.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<ul style="text-align:left">
+  <li>This text should not be centered</li>
+</ul>
diff --git a/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent.html b/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent.html
new file mode 100644
index 0000000..cef3904
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/css/text-align-inherit-webkit-match-parent.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<style>
+  ul { text-align: center }
+  ul.left { text-align: left }
+</style>
+<ul id="uList">
+  <li>This text should not be centered</li>
+</ul>
+<script>
+  uList.offsetTop;
+  uList.className = "left";
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/selectors/focus-within-display-none.html b/third_party/WebKit/LayoutTests/fast/selectors/focus-within-display-none.html
deleted file mode 100644
index 09ef562..0000000
--- a/third_party/WebKit/LayoutTests/fast/selectors/focus-within-display-none.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<script src=../../resources/testharness.js></script>
-<script src=../../resources/testharnessreport.js></script>
-<input id="input">
-<script>
-  const input = document.getElementById("input");
-  input.focus();
-
-  async_test((t) => {
-    window.requestAnimationFrame(() => {
-      t.step(() => assert_true(input.matches(":focus"),
-                               "Check input mathces ':focus' after being focused"));
-      t.step(() => assert_true(input.matches(":focus-within"),
-                               "Check input mathces ':focus-within' after being focused"));
-
-      input.style.display = "none";
-      window.requestAnimationFrame(() => {
-        t.step(() => assert_false(input.matches(":focus"),
-                                  "Check input doesn't math ':focus' after getting 'display: none'"));
-        t.step(() => assert_false(input.matches(":focus-within"),
-                                  "Check input doesn't math ':focus-within' after getting 'display: none'"));
-        t.done();
-      });
-    });
-  }, "Test ':focus-within' after 'display:none'");
-</script>
diff --git a/third_party/WebKit/Source/core/css/CSSProperties.json5 b/third_party/WebKit/Source/core/css/CSSProperties.json5
index c9d2a8ed..6d3486c 100644
--- a/third_party/WebKit/Source/core/css/CSSProperties.json5
+++ b/third_party/WebKit/Source/core/css/CSSProperties.json5
@@ -1828,7 +1828,7 @@
     {
       name: "text-align",
       custom_value: true,
-      independent: true,
+      independent: false,
       inherited: true,
       default_value: "start",
       field_template: "keyword",
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
index d9a49cbf..b69c797 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
@@ -454,7 +454,6 @@
   } else {
     state.Style()->SetTextAlign(state.ParentStyle()->GetTextAlign());
   }
-  state.Style()->SetTextAlignIsInherited(false);
 }
 
 void StyleBuilderFunctions::applyInheritCSSPropertyTextIndent(