diff --git a/BUILD.gn b/BUILD.gn
index 6b43e6b..79d7364 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -66,6 +66,7 @@
     ":gn_visibility",
     "//base:base_perftests",
     "//base:base_unittests",
+    "//base/util:base_util_unittests",
     "//chrome/installer",
     "//chrome/updater",
     "//net:net_unittests",
diff --git a/base/util/BUILD.gn b/base/util/BUILD.gn
new file mode 100644
index 0000000..c3b1942c
--- /dev/null
+++ b/base/util/BUILD.gn
@@ -0,0 +1,12 @@
+# Copyright (c) 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//testing/test.gni")
+
+test("base_util_unittests") {
+  deps = [
+    "type-safety:tests",
+    "//base/test:run_all_base_unittests",
+  ]
+}
diff --git a/base/util/type-safety/BUILD.gn b/base/util/type-safety/BUILD.gn
new file mode 100644
index 0000000..8b7b05e
--- /dev/null
+++ b/base/util/type-safety/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright (c) 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/jumbo.gni")
+
+# Change this target's type to jumbo_component if it starts to contain more than
+# just headers. Header-only targets cannot be compiled to libraries, so it must
+# remain a source_set for now.
+source_set("type-safety") {
+  sources = [
+    "id_type.h",
+  ]
+}
+
+source_set("tests") {
+  testonly = true
+  sources = [
+    "id_type_unittest.cc",
+  ]
+
+  deps = [
+    ":type-safety",
+    "//testing/gtest",
+  ]
+}
diff --git a/base/util/type-safety/DEPS b/base/util/type-safety/DEPS
new file mode 100644
index 0000000..d8f89b0
--- /dev/null
+++ b/base/util/type-safety/DEPS
@@ -0,0 +1,5 @@
+include_rules = [
+  "-base",
+  "+base/util/type-safety",
+  "-third_party",
+]
diff --git a/base/util/type-safety/OWNERS b/base/util/type-safety/OWNERS
new file mode 100644
index 0000000..3889b827
--- /dev/null
+++ b/base/util/type-safety/OWNERS
@@ -0,0 +1,2 @@
+lukasza@chromium.com
+mpawlowski@opera.com
diff --git a/gpu/command_buffer/common/id_type.h b/base/util/type-safety/id_type.h
similarity index 95%
rename from gpu/command_buffer/common/id_type.h
rename to base/util/type-safety/id_type.h
index e3efbfa..2563139 100644
--- a/gpu/command_buffer/common/id_type.h
+++ b/base/util/type-safety/id_type.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef GPU_COMMAND_BUFFER_COMMON_ID_TYPE_H_
-#define GPU_COMMAND_BUFFER_COMMON_ID_TYPE_H_
+#ifndef BASE_UTIL_TYPE_SAFETY_ID_TYPE_H_
+#define BASE_UTIL_TYPE_SAFETY_ID_TYPE_H_
 
 #include <stdint.h>
 #include <cstddef>
@@ -43,7 +43,7 @@
 // - it ensures initialization to zero and allows checking against
 //   default-initialized values via is_null method.
 
-namespace gpu {
+namespace util {
 
 template <typename TypeMarker, typename WrappedType, WrappedType kInvalidValue>
 class IdType {
@@ -104,6 +104,6 @@
   return stream << id.GetUnsafeValue();
 }
 
-}  // namespace gpu
+}  // namespace util
 
-#endif  // CONTENT_COMMON_ID_TYPE_H_
+#endif  // BASE_UTIL_TYPE_SAFETY_ID_TYPE_H_
diff --git a/gpu/command_buffer/common/id_type_unittest.cc b/base/util/type-safety/id_type_unittest.cc
similarity index 98%
rename from gpu/command_buffer/common/id_type_unittest.cc
rename to base/util/type-safety/id_type_unittest.cc
index a8f0b34..9320951 100644
--- a/gpu/command_buffer/common/id_type_unittest.cc
+++ b/base/util/type-safety/id_type_unittest.cc
@@ -9,10 +9,10 @@
 #include <type_traits>
 #include <unordered_map>
 
-#include "gpu/command_buffer/common/id_type.h"
+#include "base/util/type-safety/id_type.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-namespace gpu {
+namespace util {
 
 namespace {
 
@@ -197,4 +197,4 @@
                                            123,
                                            std::numeric_limits<int>::max()));
 
-}  // namespace gpu
+}  // namespace util
diff --git a/chrome/browser/extensions/api/management/management_api_browsertest.cc b/chrome/browser/extensions/api/management/management_api_browsertest.cc
index c06d409..16f29ac9 100644
--- a/chrome/browser/extensions/api/management/management_api_browsertest.cc
+++ b/chrome/browser/extensions/api/management/management_api_browsertest.cc
@@ -36,7 +36,7 @@
 #endif
 
 namespace keys = extension_management_api_constants;
-namespace util = extension_function_test_utils;
+namespace test_utils = extension_function_test_utils;
 
 namespace extensions {
 
@@ -179,19 +179,17 @@
       new ManagementCreateAppShortcutFunction());
   create_shortcut_function->set_user_gesture(true);
   ManagementCreateAppShortcutFunction::SetAutoConfirmForTest(true);
-  util::RunFunctionAndReturnSingleResult(
+  test_utils::RunFunctionAndReturnSingleResult(
       create_shortcut_function.get(),
-      base::StringPrintf("[\"%s\"]", app_id.c_str()),
-      browser());
+      base::StringPrintf("[\"%s\"]", app_id.c_str()), browser());
 
   create_shortcut_function = new ManagementCreateAppShortcutFunction();
   create_shortcut_function->set_user_gesture(true);
   ManagementCreateAppShortcutFunction::SetAutoConfirmForTest(false);
   EXPECT_TRUE(base::MatchPattern(
-      util::RunFunctionAndReturnError(
+      test_utils::RunFunctionAndReturnError(
           create_shortcut_function.get(),
-          base::StringPrintf("[\"%s\"]", app_id.c_str()),
-          browser()),
+          base::StringPrintf("[\"%s\"]", app_id.c_str()), browser()),
       keys::kCreateShortcutCanceledError));
 }
 
@@ -209,7 +207,8 @@
   scoped_refptr<ManagementGetAllFunction> function =
       new ManagementGetAllFunction();
   std::unique_ptr<base::Value> result(
-      util::RunFunctionAndReturnSingleResult(function.get(), "[]", browser()));
+      test_utils::RunFunctionAndReturnSingleResult(function.get(), "[]",
+                                                   browser()));
   base::ListValue* list;
   ASSERT_TRUE(result->GetAsList(&list));
   EXPECT_EQ(1U, list->GetSize());
@@ -218,8 +217,8 @@
   ASSERT_TRUE(CrashEnabledExtension(extension->id()));
 
   function = new ManagementGetAllFunction();
-  result.reset(util::RunFunctionAndReturnSingleResult(
-      function.get(), "[]", browser()));
+  result.reset(test_utils::RunFunctionAndReturnSingleResult(function.get(),
+                                                            "[]", browser()));
   ASSERT_TRUE(result->GetAsList(&list));
   EXPECT_EQ(1U, list->GetSize());
 }
@@ -271,7 +270,7 @@
       function->set_user_gesture(true);
     function->SetRenderFrameHost(browser()->tab_strip_model()->
         GetActiveWebContents()->GetMainFrame());
-    bool response = util::RunFunction(
+    bool response = test_utils::RunFunction(
         function.get(), base::StringPrintf("[\"%s\", %s]", kId, enabled_string),
         browser(), api_test_utils::NONE);
     if (expected_error.empty()) {
@@ -294,8 +293,9 @@
                        DisabledReason) {
   scoped_refptr<ManagementGetFunction> function =
       new ManagementGetFunction();
-  std::unique_ptr<base::Value> result(util::RunFunctionAndReturnSingleResult(
-      function.get(), base::StringPrintf("[\"%s\"]", kId), browser()));
+  std::unique_ptr<base::Value> result(
+      test_utils::RunFunctionAndReturnSingleResult(
+          function.get(), base::StringPrintf("[\"%s\"]", kId), browser()));
   ASSERT_TRUE(result.get() != NULL);
   ASSERT_TRUE(result->is_dict());
   base::DictionaryValue* dict =
diff --git a/chrome/browser/extensions/api/storage/settings_sync_unittest.cc b/chrome/browser/extensions/api/storage/settings_sync_unittest.cc
index d46189d..29cdc5a 100644
--- a/chrome/browser/extensions/api/storage/settings_sync_unittest.cc
+++ b/chrome/browser/extensions/api/storage/settings_sync_unittest.cc
@@ -41,8 +41,6 @@
 using base::Value;
 namespace extensions {
 
-namespace util = settings_test_util;
-
 namespace {
 
 // To save typing ValueStore::DEFAULTS everywhere.
@@ -213,8 +211,8 @@
   ValueStore* AddExtensionAndGetStorage(
       const std::string& id, Manifest::Type type) {
     scoped_refptr<const Extension> extension =
-        util::AddExtensionWithId(profile_.get(), id, type);
-    return util::GetStorage(extension, frontend_.get());
+        settings_test_util::AddExtensionWithId(profile_.get(), id, type);
+    return settings_test_util::GetStorage(extension, frontend_.get());
   }
 
   // Gets the syncer::SyncableService for the given sync type.
@@ -1425,7 +1423,7 @@
 static void UnlimitedSyncStorageTestCallback(ValueStore* sync_storage) {
   // Sync storage should still run out after ~100K; the unlimitedStorage
   // permission can't apply to sync.
-  std::unique_ptr<base::Value> kilobyte = util::CreateKilobyte();
+  std::unique_ptr<base::Value> kilobyte = settings_test_util::CreateKilobyte();
   for (int i = 0; i < 100; ++i) {
     sync_storage->Set(ValueStore::DEFAULTS, base::NumberToString(i), *kilobyte);
   }
@@ -1437,7 +1435,7 @@
 
 static void UnlimitedLocalStorageTestCallback(ValueStore* local_storage) {
   // Local storage should never run out.
-  std::unique_ptr<base::Value> megabyte = util::CreateMegabyte();
+  std::unique_ptr<base::Value> megabyte = settings_test_util::CreateMegabyte();
   for (int i = 0; i < 7; ++i) {
     local_storage->Set(ValueStore::DEFAULTS, base::NumberToString(i),
                        *megabyte);
@@ -1463,7 +1461,7 @@
   std::set<std::string> permissions;
   permissions.insert("unlimitedStorage");
   scoped_refptr<const Extension> extension =
-      util::AddExtensionWithIdAndPermissions(
+      settings_test_util::AddExtensionWithIdAndPermissions(
           profile_.get(), id, Manifest::TYPE_EXTENSION, permissions);
 
   frontend_->RunWithStorage(extension,
diff --git a/chrome/browser/ui/ash/wallpaper_controller_client.cc b/chrome/browser/ui/ash/wallpaper_controller_client.cc
index 9f1280b..026caed 100644
--- a/chrome/browser/ui/ash/wallpaper_controller_client.cc
+++ b/chrome/browser/ui/ash/wallpaper_controller_client.cc
@@ -530,11 +530,11 @@
 
 void WallpaperControllerClient::OnReadyToSetWallpaper() {
   // Apply device customization.
-  namespace util = chromeos::customization_wallpaper_util;
-  if (util::ShouldUseCustomizedDefaultWallpaper()) {
+  namespace customization_util = chromeos::customization_wallpaper_util;
+  if (customization_util::ShouldUseCustomizedDefaultWallpaper()) {
     base::FilePath customized_default_small_path;
     base::FilePath customized_default_large_path;
-    if (util::GetCustomizedDefaultWallpaperPaths(
+    if (customization_util::GetCustomizedDefaultWallpaperPaths(
             &customized_default_small_path, &customized_default_large_path)) {
       wallpaper_controller_->SetCustomizedDefaultWallpaperPaths(
           customized_default_small_path, customized_default_large_path);
diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
index 88b20d9..1ba34ee 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
@@ -101,7 +101,6 @@
 namespace {
 
 // Shorten identifiers to improve line wrapping.
-using util = WindowSizerTestUtil;
 const int kDesktopBorderSize = WindowSizer::kDesktopBorderSize;
 const int kMaximumWindowWidth = WindowSizer::kMaximumWindowWidth;
 const int kWindowTilePixels = WindowSizer::kWindowTilePixels;
@@ -128,9 +127,9 @@
 TEST_F(WindowSizerAshTest, DefaultSizeCase) {
   { // 4:3 monitor case, 1024x768, no taskbar
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize,
                   1024 - kDesktopBorderSize * 2, 768 - kDesktopBorderSize),
@@ -139,9 +138,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_bottom_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_bottom_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kDesktopBorderSize, kDesktopBorderSize,
                         1024 - kDesktopBorderSize * 2,
                         taskbar_bottom_work_area.height() - kDesktopBorderSize),
@@ -150,9 +149,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_right_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_right_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize,
                   taskbar_right_work_area.width() - kDesktopBorderSize * 2,
@@ -162,9 +161,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on left
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_left_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_left_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x() + kDesktopBorderSize,
                         kDesktopBorderSize,
                         taskbar_left_work_area.width() - kDesktopBorderSize * 2,
@@ -174,9 +173,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_top_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_top_work_area, gfx::Rect(), gfx::Rect(), gfx::Rect(),
+        DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kDesktopBorderSize,
                         taskbar_top_work_area.y() + kDesktopBorderSize,
                         1024 - kDesktopBorderSize * 2,
@@ -186,9 +185,9 @@
 
   { // 4:3 monitor case, 1280x1024
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1280x1024, p1280x1024, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1280x1024, p1280x1024, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect((1280 - kMaximumWindowWidth) / 2, kDesktopBorderSize,
                         kMaximumWindowWidth, 1024 - kDesktopBorderSize),
               window_bounds);
@@ -196,9 +195,9 @@
 
   { // 4:3 monitor case, 1600x1200
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect((1600 - kMaximumWindowWidth) / 2, kDesktopBorderSize,
                         kMaximumWindowWidth, 1200 - kDesktopBorderSize),
               window_bounds);
@@ -206,9 +205,9 @@
 
   { // 16:10 monitor case, 1680x1050
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1680x1050, p1680x1050, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1680x1050, p1680x1050, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect((1680 - kMaximumWindowWidth) / 2, kDesktopBorderSize,
                         kMaximumWindowWidth, 1050 - kDesktopBorderSize),
               window_bounds);
@@ -216,9 +215,9 @@
 
   { // 16:10 monitor case, 1920x1200
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1920x1200, p1920x1200, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1920x1200, p1920x1200, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect((1920 - kMaximumWindowWidth) / 2, kDesktopBorderSize,
                         kMaximumWindowWidth, 1200 - kDesktopBorderSize),
               window_bounds);
@@ -230,7 +229,7 @@
 TEST_F(WindowSizerAshTest, LastWindowBoundsCase) {
   { // normal, in the middle of the screen somewhere.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize, 500, 400),
         gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -242,7 +241,7 @@
 
   { // taskbar on top.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, taskbar_top_work_area, gfx::Rect(),
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize, 500, 400),
         gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -256,7 +255,7 @@
 
   { // Too small to satisify the minimum visibility condition.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize, 29, 29), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -270,7 +269,7 @@
 
   { // Normal.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize, 500, 400),
         gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -284,7 +283,7 @@
 TEST_F(WindowSizerAshTest, LastWindowOffscreenWithNonAggressiveRepositioning) {
   { // taskbar on left.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, taskbar_left_work_area, gfx::Rect(),
         gfx::Rect(kDesktopBorderSize, kDesktopBorderSize, 500, 400),
         gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -297,9 +296,9 @@
   { // offset would put the new window offscreen at the bottom but the minimum
     // visibility condition is barely satisfied without relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(10, 728, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(10, 728, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738, 500, 400).ToString(),
               window_bounds.ToString());
   }
@@ -307,9 +306,9 @@
   { // offset would put the new window offscreen at the bottom and the minimum
     // visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(10, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(10, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels,
                         738 /* not 739 */,
                         500,
@@ -320,9 +319,9 @@
   { // offset would put the new window offscreen at the right but the minimum
     // visibility condition is barely satisfied without relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(984, 10, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(984, 10, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994, 10 + kWindowTilePixels, 500, 400).ToString(),
               window_bounds.ToString());
   }
@@ -330,9 +329,9 @@
   { // offset would put the new window offscreen at the right and the minimum
     // visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 10, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 10, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */,
                         10 + kWindowTilePixels,
                         500,
@@ -343,9 +342,9 @@
   { // offset would put the new window offscreen at the bottom right and the
     // minimum visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */,
                         738 /* not 739 */,
                         500,
@@ -356,7 +355,8 @@
 
 // Test the placement of newly created windows.
 TEST_F(WindowSizerAshTest, PlaceNewWindows) {
-  // Create a browser to pass into the util::GetWindowBounds function.
+  // Create a browser to pass into the WindowSizerTestUtil::GetWindowBounds
+  // function.
   Browser::CreateParams native_params(&profile_, true);
   auto browser = CreateWindowlessBrowser(native_params);
 
@@ -380,28 +380,28 @@
     Browser::CreateParams params_popup(Browser::TYPE_POPUP, &profile_, true);
     auto new_popup = CreateWindowlessBrowser(params_popup);
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(),
-                          gfx::Rect(50, 100, 300, 150), bottom_s1600x1200,
-                          PERSISTED, new_popup.get(), gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(50, 100, 300, 150),
+        bottom_s1600x1200, PERSISTED, new_popup.get(), gfx::Rect(),
+        &window_bounds);
     EXPECT_EQ("50,100 300x150", window_bounds.ToString());
   }
 
   browser_window->Hide();
   { // If a window is there but not shown the persisted default should be used.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(),
-                          gfx::Rect(50, 100, 300, 150), bottom_s1600x1200,
-                          PERSISTED, browser.get(), gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(50, 100, 300, 150),
+        bottom_s1600x1200, PERSISTED, browser.get(), gfx::Rect(),
+        &window_bounds);
     EXPECT_EQ("50,100 300x150", window_bounds.ToString());
   }
 
   { // If a window is there but not shown the default should be returned.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(),
-                          bottom_s1600x1200, DEFAULT, browser.get(),
-                          gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(), bottom_s1600x1200,
+        DEFAULT, browser.get(), gfx::Rect(), &window_bounds);
     // Note: We need to also take the defaults maximum width into account here
     // since that might get used if the resolution is too big.
     EXPECT_EQ(
@@ -682,7 +682,8 @@
 }
 
 TEST_F(WindowSizerAshTest, DefaultStateBecomesMaximized) {
-  // Create a browser to pass into the util::GetWindowBounds function.
+  // Create a browser to pass into the WindowSizerTestUtil::GetWindowBounds
+  // function.
   Browser::CreateParams native_params(&profile_, true);
   auto browser = CreateWindowlessBrowser(native_params);
 
diff --git a/chrome/browser/ui/window_sizer/window_sizer_common_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_common_unittest.cc
index 91343898..3f1a075 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_common_unittest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_common_unittest.cc
@@ -24,8 +24,6 @@
 
 namespace {
 
-using util = WindowSizerTestUtil;
-
 class TestScreen : public display::ScreenBase {
  public:
   TestScreen() : previous_screen_(display::Screen::GetScreen()) {
@@ -135,27 +133,27 @@
     gfx::Rect initial_bounds(-470, 50, 500, 400);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
   { // off the left and the minimum visibility condition is satisfied by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 50, 500, 400).ToString(),
               window_bounds.ToString());
   }
 
   { // off the top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -370, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -370, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("50,0 500x400", window_bounds.ToString());
   }
 
@@ -164,18 +162,18 @@
     gfx::Rect initial_bounds(994, 50, 500, 400);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
   { // off the right and the minimum visibility condition is satisified by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */, 50, 500, 400).ToString(),
               window_bounds.ToString());
   }
@@ -185,27 +183,27 @@
     gfx::Rect initial_bounds(50, 738, 500, 400);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
   { // off the bottom and the minimum visibility condition is satisified by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 739, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 738 /* not 739 */, 500, 400).ToString(),
               window_bounds.ToString());
   }
 
   { // off the topleft
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, -371, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, -371, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 0, 500, 400).ToString(),
               window_bounds.ToString());
   }
@@ -213,9 +211,9 @@
   { // off the topright and the minimum visibility condition is satisified by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, -371, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, -371, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */, 0, 500, 400).ToString(),
               window_bounds.ToString());
   }
@@ -223,9 +221,9 @@
   { // off the bottomleft and the minimum visibility condition is satisified by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, 739, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(-470 /* not -471 */,
                         738 /* not 739 */,
                         500,
@@ -236,9 +234,9 @@
   { // off the bottomright and the minimum visibility condition is satisified by
     // relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, 739, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */,
                         738 /* not 739 */,
                         500,
@@ -248,68 +246,68 @@
 
   { // entirely off left
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-700, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-700, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(-470 /* not -700 */, 50, 500, 400).ToString(),
               window_bounds.ToString());
   }
 
   { // entirely off left (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-700, 50, 500, 400), left_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-700, 50, 500, 400),
+        left_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("0,50 500x400", window_bounds.ToString());
   }
 
   { // entirely off top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -500, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -500, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("50,0 500x400", window_bounds.ToString());
   }
 
   { // entirely off top (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -500, 500, 400), top_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -500, 500, 400),
+        top_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("50,0 500x400", window_bounds.ToString());
   }
 
   { // entirely off right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(1200, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(1200, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 1200 */, 50, 500, 400).ToString(),
               window_bounds.ToString());
   }
 
   { // entirely off right (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(1200, 50, 500, 400), right_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(1200, 50, 500, 400),
+        right_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("524,50 500x400", window_bounds.ToString());
   }
 
   { // entirely off bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 800, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 800, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 738 /* not 800 */, 500, 400).ToString(),
               window_bounds.ToString());
   }
 
   { // entirely off bottom (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 800, 500, 400), bottom_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 800, 500, 400),
+        bottom_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("50,368 500x400", window_bounds.ToString());
   }
 }
@@ -320,7 +318,7 @@
 TEST(WindowSizerTestCommon, AdjustFitSize) {
   { // Check that the window gets resized to the screen.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(), gfx::Rect(), gfx::Rect(), DEFAULT,
         NULL, gfx::Rect(-10, -10, 1024 + 20, 768 + 20), &window_bounds);
     EXPECT_EQ("0,0 1024x768", window_bounds.ToString());
@@ -328,9 +326,9 @@
 
   { // Check that a window which hangs out of the screen get moved back in.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL,
-                          gfx::Rect(1020, 700, 100, 100), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(), gfx::Rect(), DEFAULT,
+        NULL, gfx::Rect(1020, 700, 100, 100), &window_bounds);
     EXPECT_EQ("924,668 100x100", window_bounds.ToString());
   }
 }
diff --git a/chrome/browser/ui/window_sizer/window_sizer_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_unittest.cc
index f6d5b39..1a29a1a 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_unittest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_unittest.cc
@@ -9,7 +9,6 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
-using util = WindowSizerTestUtil;
 const int kWindowTilePixels = WindowSizer::kWindowTilePixels;
 }
 
@@ -18,9 +17,9 @@
 TEST(WindowSizerTest, DefaultSizeCase) {
   { // 4:3 monitor case, 1024x768, no taskbar
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         1024 - kWindowTilePixels * 2,
                         768 - kWindowTilePixels * 2),
@@ -29,9 +28,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_bottom_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_bottom_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         1024 - kWindowTilePixels * 2,
                         (taskbar_bottom_work_area.height() -
@@ -41,9 +40,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_right_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_right_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         taskbar_right_work_area.width() - kWindowTilePixels*2,
                         768 - kWindowTilePixels * 2),
@@ -52,9 +51,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on left
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_left_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_left_work_area, gfx::Rect(), gfx::Rect(),
+        gfx::Rect(), DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x() + kWindowTilePixels,
                         kWindowTilePixels,
                         taskbar_left_work_area.width() - kWindowTilePixels * 2,
@@ -65,9 +64,9 @@
 
   { // 4:3 monitor case, 1024x768, taskbar on top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, taskbar_top_work_area, gfx::Rect(),
-                          gfx::Rect(), gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, taskbar_top_work_area, gfx::Rect(), gfx::Rect(), gfx::Rect(),
+        DEFAULT, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels,
                         taskbar_top_work_area.y() + kWindowTilePixels,
                         1024 - kWindowTilePixels * 2,
@@ -77,9 +76,9 @@
 
   { // 4:3 monitor case, 1280x1024
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1280x1024, p1280x1024, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1280x1024, p1280x1024, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         WindowSizer::kWindowMaxDefaultWidth,
                         1024 - kWindowTilePixels * 2),
@@ -88,9 +87,9 @@
 
   { // 4:3 monitor case, 1600x1200
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         WindowSizer::kWindowMaxDefaultWidth,
                         1200 - kWindowTilePixels * 2),
@@ -109,9 +108,9 @@
         window_width / 2 - static_cast<int>(kWindowTilePixels * 1.5);
 #endif  // defined(OS_MACOSX)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1680x1050, p1680x1050, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1680x1050, p1680x1050, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         expected_window_width, 1050 - kWindowTilePixels * 2),
               window_bounds);
@@ -129,9 +128,9 @@
         window_width / 2 - static_cast<int>(kWindowTilePixels * 1.5);
 #endif  // defined(OS_MACOSX)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1920x1200, p1920x1200, gfx::Rect(), gfx::Rect(),
-                          gfx::Rect(), DEFAULT, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1920x1200, p1920x1200, gfx::Rect(),
+                                         gfx::Rect(), gfx::Rect(), DEFAULT,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels,
                         expected_window_width, 1200 - kWindowTilePixels * 2),
               window_bounds);
@@ -143,7 +142,7 @@
 TEST(WindowSizerTest, LastWindowBoundsCase) {
   { // normal, in the middle of the screen somewhere.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -153,7 +152,7 @@
 
   { // taskbar on top.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, taskbar_top_work_area, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -165,7 +164,7 @@
 
   { // Too small to satisify the minimum visibility condition.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -179,7 +178,7 @@
 
   { // Normal.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -194,9 +193,9 @@
     gfx::Rect initial_bounds(kWindowTilePixels, kWindowTilePixels, 500, 400);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
@@ -204,9 +203,9 @@
     gfx::Rect initial_bounds(0, 0, 1024, 768);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(), initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
@@ -214,9 +213,9 @@
     gfx::Rect initial_bounds(-600, 10, 500, 400);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, left_s1024x768, initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, left_s1024x768,
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
@@ -224,9 +223,9 @@
     gfx::Rect initial_bounds(-1024, 0, 1024, 768);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, left_s1024x768, initial_bounds,
-                          gfx::Rect(), PERSISTED, NULL, gfx::Rect(),
-                          &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(p1024x768, p1024x768, left_s1024x768,
+                                         initial_bounds, gfx::Rect(), PERSISTED,
+                                         NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
@@ -236,9 +235,9 @@
     gfx::Rect initial_bounds(1074, 50, 600, 500);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600),
-                          initial_bounds, right_s1024x768, PERSISTED, NULL,
-                          gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600), initial_bounds,
+        right_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(initial_bounds.ToString(), window_bounds.ToString());
   }
 
@@ -248,9 +247,9 @@
     gfx::Rect initial_bounds(1274, 50, 600, 500);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600),
-                          initial_bounds, right_s1024x768, PERSISTED, NULL,
-                          gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600), initial_bounds,
+        right_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("1224,50 600x500", window_bounds.ToString());
   }
 
@@ -260,15 +259,15 @@
     gfx::Rect initial_bounds(1274, 50, 900, 700);
 
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600),
-                          initial_bounds, right_s1024x768, PERSISTED, NULL,
-                          gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(1024, 0, 800, 600), initial_bounds,
+        right_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ("1024,0 800x600", window_bounds.ToString());
   }
 
   { // width and height too small
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), gfx::Rect(),
         PERSISTED, NULL, gfx::Rect(), &window_bounds);
@@ -283,7 +282,7 @@
     // be moved higher than the menubar.  (Perhaps the user changed
     // resolution to something smaller before relaunching Chrome?)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, p1024x768, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 30, 5000), gfx::Rect(),
         PERSISTED, NULL, gfx::Rect(), &window_bounds);
@@ -303,7 +302,7 @@
   { // taskbar on left.  The new window overlaps slightly with the taskbar, so
     // it is moved to be flush with the left edge of the work area.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, taskbar_left_work_area, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -313,9 +312,9 @@
 
   { // offset would put the new window offscreen at the bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(10, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(10, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels,
                         0 /* not 729 + kWindowTilePixels */,
                         500, 400),
@@ -324,9 +323,9 @@
 
   { // offset would put the new window offscreen at the right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 10, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 10, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/,
                         10 + kWindowTilePixels,
                         500, 400),
@@ -335,9 +334,9 @@
 
   { // offset would put the new window offscreen at the bottom right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/,
                         0 /* not 729 + kWindowTilePixels*/,
                         500, 400),
@@ -348,141 +347,141 @@
 TEST(WindowSizerTest, PersistedWindowOffscreenWithAggressiveRepositioning) {
   { // off the left
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not -471 */, 50, 500, 400), window_bounds);
   }
 
   { // off the top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -370, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -370, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds);
   }
 
   { // off the right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 995 */, 50, 500, 400), window_bounds);
   }
 
   { // off the bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 739, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 0 /* not 739 */, 500, 400), window_bounds);
   }
 
   { // off the topleft
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, -371, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, -371, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not -371 */, 500, 400),
               window_bounds);
   }
 
   { // off the topright
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, -371, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, -371, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not -371 */, 500, 400),
                         window_bounds);
   }
 
   { // off the bottomleft
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-471, 739, 500, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-471, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not 739 */, 500, 400),
                         window_bounds);
   }
 
   { // off the bottomright
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(995, 739, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(995, 739, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not 739 */, 500, 400),
                         window_bounds);
   }
 
   { // entirely off left
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-700, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-700, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not -700 */, 50, 500, 400), window_bounds);
   }
 
   { // entirely off left (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-700, 50, 500, 400), left_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-700, 50, 500, 400),
+        left_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0, 50, 500, 400), window_bounds);
   }
 
   { // entirely off top
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -500, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -500, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds);
   }
 
   { // entirely off top (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, -500, 500, 400), top_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, -500, 500, 400),
+        top_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds);
   }
 
   { // entirely off right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(1200, 50, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(1200, 50, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not 1200 */, 50, 500, 400), window_bounds);
   }
 
   { // entirely off right (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(1200, 50, 500, 400), right_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(1200, 50, 500, 400),
+        right_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(524 /* not 1200 */, 50, 500, 400), window_bounds);
   }
 
   { // entirely off bottom
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 800, 500, 400), gfx::Rect(), PERSISTED,
-                          NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 800, 500, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 0 /* not 800 */, 500, 400), window_bounds);
   }
 
   { // entirely off bottom (monitor was detached since last run)
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(50, 800, 500, 400), bottom_s1024x768,
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(50, 800, 500, 400),
+        bottom_s1024x768, PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(50, 368 /* not 800 */, 500, 400), window_bounds);
   }
 
   { // wider than the screen. off both the left and right
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(-100, 50, 2000, 400), gfx::Rect(),
-                          PERSISTED, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(-100, 50, 2000, 400),
+        gfx::Rect(), PERSISTED, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(0 /* not -100 */, 50, 2000, 400), window_bounds);
   }
 }
@@ -490,7 +489,7 @@
 TEST(WindowSizerTest, LastWindowOffscreenWithNonAggressiveRepositioning) {
   { // taskbar on left.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(
+    WindowSizerTestUtil::GetWindowBounds(
         p1024x768, taskbar_left_work_area, gfx::Rect(),
         gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), gfx::Rect(),
         LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
@@ -503,9 +502,9 @@
   { // offset would put the new window offscreen at the bottom but the minimum
     // visibility condition is barely satisfied without relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(10, 728, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(10, 728, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738,
                         500, 400), window_bounds);
   }
@@ -513,9 +512,9 @@
   { // offset would put the new window offscreen at the bottom and the minimum
     // visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(10, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(10, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738 /* not 739 */, 500, 400),
               window_bounds);
   }
@@ -523,18 +522,18 @@
   { // offset would put the new window offscreen at the right but the minimum
     // visibility condition is barely satisfied without relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(984, 10, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(984, 10, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994, 10 + kWindowTilePixels, 500, 400), window_bounds);
   }
 
   { // offset would put the new window offscreen at the right and the minimum
     // visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 10, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 10, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */, 10 + kWindowTilePixels,
                         500, 400), window_bounds);
   }
@@ -542,9 +541,9 @@
   { // offset would put the new window offscreen at the bottom right and the
     // minimum visibility condition is satisified by relocation.
     gfx::Rect window_bounds;
-    util::GetWindowBounds(p1024x768, p1024x768, gfx::Rect(),
-                          gfx::Rect(985, 729, 500, 400), gfx::Rect(),
-                          LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
+    WindowSizerTestUtil::GetWindowBounds(
+        p1024x768, p1024x768, gfx::Rect(), gfx::Rect(985, 729, 500, 400),
+        gfx::Rect(), LAST_ACTIVE, NULL, gfx::Rect(), &window_bounds);
     EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400),
               window_bounds);
   }
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index dcb8773..79d85fc 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -229,6 +229,7 @@
 
   public_deps = [
     ":accessibility_buildflags",
+    "//base/util/type-safety",
     "//ipc",
     "//media/mojo/interfaces:remoting",
     "//third_party/blink/public/mojom:embedded_frame_sink_mojo_bindings",
diff --git a/content/browser/download/save_types.h b/content/browser/download/save_types.h
index 20c8089..77fdf8c 100644
--- a/content/browser/download/save_types.h
+++ b/content/browser/download/save_types.h
@@ -13,16 +13,16 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "gpu/command_buffer/common/id_type.h"
+#include "base/util/type-safety/id_type.h"
 #include "url/gurl.h"
 
 namespace content {
 
 class SavePackage;
-using SavePackageId = gpu::IdType32<SavePackage>;
+using SavePackageId = util::IdType32<SavePackage>;
 
 class SaveItem;
-using SaveItemId = gpu::IdType32<SaveItem>;
+using SaveItemId = util::IdType32<SaveItem>;
 
 // Map from save_item_id into final file path.
 using FinalNamesMap =
diff --git a/content/browser/isolation_context.h b/content/browser/isolation_context.h
index e91a20b..82f69d0 100644
--- a/content/browser/isolation_context.h
+++ b/content/browser/isolation_context.h
@@ -6,14 +6,14 @@
 #define CONTENT_BROWSER_ISOLATION_CONTEXT_H_
 
 #include "base/optional.h"
+#include "base/util/type-safety/id_type.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/browser_or_resource_context.h"
-#include "gpu/command_buffer/common/id_type.h"
 
 namespace content {
 
 class BrowsingInstance;
-using BrowsingInstanceId = gpu::IdType32<BrowsingInstance>;
+using BrowsingInstanceId = util::IdType32<BrowsingInstance>;
 
 // This class is used to specify the context in which process model decisions
 // need to be made.  For example, dynamically added isolated origins only take
diff --git a/extensions/browser/api/storage/storage_frontend_unittest.cc b/extensions/browser/api/storage/storage_frontend_unittest.cc
index eb204de..3da66c8 100644
--- a/extensions/browser/api/storage/storage_frontend_unittest.cc
+++ b/extensions/browser/api/storage/storage_frontend_unittest.cc
@@ -24,7 +24,6 @@
 namespace extensions {
 
 namespace settings = settings_namespace;
-namespace util = settings_test_util;
 
 namespace {
 
@@ -84,10 +83,11 @@
 TEST_F(ExtensionSettingsFrontendTest, SettingsPreservedAcrossReconstruction) {
   const std::string id = "ext";
   scoped_refptr<const Extension> extension =
-      util::AddExtensionWithId(browser_context(), id, Manifest::TYPE_EXTENSION);
+      settings_test_util::AddExtensionWithId(browser_context(), id,
+                                             Manifest::TYPE_EXTENSION);
 
-  ValueStore* storage =
-      util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  ValueStore* storage = settings_test_util::GetStorage(
+      extension, settings::LOCAL, frontend_.get());
 
   // The correctness of Get/Set/Remove/Clear is tested elsewhere so no need to
   // be too rigorous.
@@ -104,7 +104,8 @@
   }
 
   ResetFrontend();
-  storage = util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  storage = settings_test_util::GetStorage(extension, settings::LOCAL,
+                                           frontend_.get());
 
   {
     ValueStore::ReadResult result = storage->Get();
@@ -115,11 +116,12 @@
 
 TEST_F(ExtensionSettingsFrontendTest, SettingsClearedOnUninstall) {
   const std::string id = "ext";
-  scoped_refptr<const Extension> extension = util::AddExtensionWithId(
-      browser_context(), id, Manifest::TYPE_LEGACY_PACKAGED_APP);
+  scoped_refptr<const Extension> extension =
+      settings_test_util::AddExtensionWithId(
+          browser_context(), id, Manifest::TYPE_LEGACY_PACKAGED_APP);
 
-  ValueStore* storage =
-      util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  ValueStore* storage = settings_test_util::GetStorage(
+      extension, settings::LOCAL, frontend_.get());
 
   {
     base::Value bar("bar");
@@ -132,7 +134,8 @@
   content::RunAllTasksUntilIdle();
 
   // The storage area may no longer be valid post-uninstall, so re-request.
-  storage = util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  storage = settings_test_util::GetStorage(extension, settings::LOCAL,
+                                           frontend_.get());
   {
     ValueStore::ReadResult result = storage->Get();
     ASSERT_TRUE(result.status().ok());
@@ -143,10 +146,11 @@
 TEST_F(ExtensionSettingsFrontendTest, LeveldbDatabaseDeletedFromDiskOnClear) {
   const std::string id = "ext";
   scoped_refptr<const Extension> extension =
-      util::AddExtensionWithId(browser_context(), id, Manifest::TYPE_EXTENSION);
+      settings_test_util::AddExtensionWithId(browser_context(), id,
+                                             Manifest::TYPE_EXTENSION);
 
-  ValueStore* storage =
-      util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  ValueStore* storage = settings_test_util::GetStorage(
+      extension, settings::LOCAL, frontend_.get());
 
   {
     base::Value bar("bar");
@@ -176,15 +180,16 @@
        DISABLED_QuotaLimitsEnforcedCorrectlyForSyncAndLocal) {
   const std::string id = "ext";
   scoped_refptr<const Extension> extension =
-      util::AddExtensionWithId(browser_context(), id, Manifest::TYPE_EXTENSION);
+      settings_test_util::AddExtensionWithId(browser_context(), id,
+                                             Manifest::TYPE_EXTENSION);
 
-  ValueStore* sync_storage =
-      util::GetStorage(extension, settings::SYNC, frontend_.get());
-  ValueStore* local_storage =
-      util::GetStorage(extension, settings::LOCAL, frontend_.get());
+  ValueStore* sync_storage = settings_test_util::GetStorage(
+      extension, settings::SYNC, frontend_.get());
+  ValueStore* local_storage = settings_test_util::GetStorage(
+      extension, settings::LOCAL, frontend_.get());
 
   // Sync storage should run out after ~100K.
-  std::unique_ptr<base::Value> kilobyte = util::CreateKilobyte();
+  std::unique_ptr<base::Value> kilobyte = settings_test_util::CreateKilobyte();
   for (int i = 0; i < 100; ++i) {
     sync_storage->Set(DEFAULTS, base::NumberToString(i), *kilobyte);
   }
@@ -201,7 +206,7 @@
       local_storage->Set(DEFAULTS, "WontError", *kilobyte).status().ok());
 
   // Local storage should run out after ~5MB.
-  std::unique_ptr<base::Value> megabyte = util::CreateMegabyte();
+  std::unique_ptr<base::Value> megabyte = settings_test_util::CreateMegabyte();
   for (int i = 0; i < 5; ++i) {
     local_storage->Set(DEFAULTS, base::NumberToString(i), *megabyte);
   }
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 91b97b6b..19ef376 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -363,7 +363,6 @@
     "command_buffer/common/gles2_cmd_format_test_autogen.h",
     "command_buffer/common/gles2_cmd_utils_unittest.cc",
     "command_buffer/common/id_allocator_test.cc",
-    "command_buffer/common/id_type_unittest.cc",
     "command_buffer/common/raster_cmd_format_test.cc",
     "command_buffer/common/raster_cmd_format_test_autogen.h",
     "command_buffer/common/unittest_main.cc",
diff --git a/gpu/command_buffer/common/BUILD.gn b/gpu/command_buffer/common/BUILD.gn
index 260d231..16b7de08 100644
--- a/gpu/command_buffer/common/BUILD.gn
+++ b/gpu/command_buffer/common/BUILD.gn
@@ -82,7 +82,6 @@
     "gpu_memory_buffer_support.h",
     "id_allocator.cc",
     "id_allocator.h",
-    "id_type.h",
     "mailbox.cc",
     "mailbox.h",
     "mailbox_holder.cc",
@@ -107,6 +106,7 @@
   configs += [ "//gpu:gpu_implementation" ]
 
   public_deps = [
+    "//base/util/type-safety",
     "//mojo/public/cpp/system",
     "//ui/gfx:memory_buffer",
     "//ui/gfx/geometry",
diff --git a/gpu/command_buffer/common/command_buffer_id.h b/gpu/command_buffer/common/command_buffer_id.h
index 99b5bb862..26a2995 100644
--- a/gpu/command_buffer/common/command_buffer_id.h
+++ b/gpu/command_buffer/common/command_buffer_id.h
@@ -5,12 +5,12 @@
 #ifndef GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_ID_H_
 #define GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_ID_H_
 
-#include "gpu/command_buffer/common/id_type.h"
+#include "base/util/type-safety/id_type.h"
 
 namespace gpu {
 
 class CommandBuffer;
-using CommandBufferId = gpu::IdTypeU64<CommandBuffer>;
+using CommandBufferId = util::IdTypeU64<CommandBuffer>;
 
 }  // namespace gpu
 
diff --git a/gpu/command_buffer/common/discardable_handle.h b/gpu/command_buffer/common/discardable_handle.h
index 33f2d85..33eda35 100644
--- a/gpu/command_buffer/common/discardable_handle.h
+++ b/gpu/command_buffer/common/discardable_handle.h
@@ -6,7 +6,7 @@
 #define GPU_COMMAND_BUFFER_COMMON_DISCARDABLE_HANDLE_H_
 
 #include "base/memory/ref_counted.h"
-#include "gpu/command_buffer/common/id_type.h"
+#include "base/util/type-safety/id_type.h"
 #include "gpu/gpu_export.h"
 
 namespace gpu {
@@ -83,7 +83,7 @@
 // handle (via the constructor), and can Lock an existing handle.
 class GPU_EXPORT ClientDiscardableHandle : public DiscardableHandleBase {
  public:
-  using Id = IdType32<ClientDiscardableHandle>;
+  using Id = util::IdType32<ClientDiscardableHandle>;
 
   ClientDiscardableHandle();  // Constructs an invalid handle.
   ClientDiscardableHandle(scoped_refptr<Buffer> buffer,
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index ffe8b4b0..1bf32ca 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -79,6 +79,7 @@
   ]
 
   public_deps = [
+    "//base/util/type-safety",
     "//gpu/command_buffer/common:common_sources",
     "//url:url",
   ]
@@ -282,6 +283,7 @@
   include_dirs = [ "//third_party/mesa_headers" ]
 
   public_deps = [
+    "//base/util/type-safety",
     "//cc/paint",
     "//gpu/command_buffer/common",
     "//gpu/command_buffer/common:gles2_sources",
diff --git a/gpu/command_buffer/service/sequence_id.h b/gpu/command_buffer/service/sequence_id.h
index a2302c2..7f8db99 100644
--- a/gpu/command_buffer/service/sequence_id.h
+++ b/gpu/command_buffer/service/sequence_id.h
@@ -5,12 +5,12 @@
 #ifndef GPU_COMMAND_BUFFER_SERVICE_SEQUENCE_ID_H_
 #define GPU_COMMAND_BUFFER_SERVICE_SEQUENCE_ID_H_
 
-#include "gpu/command_buffer/common/id_type.h"
+#include "base/util/type-safety/id_type.h"
 
 namespace gpu {
 
 class SyncPointOrderData;
-using SequenceId = gpu::IdTypeU32<SyncPointOrderData>;
+using SequenceId = util::IdTypeU32<SyncPointOrderData>;
 
 }  // namespace gpu
 
diff --git a/gpu/ipc/common/gpu_command_buffer_traits.h b/gpu/ipc/common/gpu_command_buffer_traits.h
index 1dc4008..5b1ff5c 100644
--- a/gpu/ipc/common/gpu_command_buffer_traits.h
+++ b/gpu/ipc/common/gpu_command_buffer_traits.h
@@ -5,7 +5,6 @@
 #ifndef GPU_IPC_COMMON_GPU_COMMAND_BUFFER_TRAITS_H_
 #define GPU_IPC_COMMON_GPU_COMMAND_BUFFER_TRAITS_H_
 
-#include "gpu/command_buffer/common/id_type.h"
 #include "gpu/gpu_export.h"
 #include "gpu/ipc/common/gpu_command_buffer_traits_multi.h"
 #include "ipc/ipc_message_utils.h"
@@ -60,26 +59,6 @@
   static void Log(const param_type& p, std::string* l);
 };
 
-template <typename TypeMarker, typename WrappedType, WrappedType kInvalidValue>
-struct ParamTraits<gpu::IdType<TypeMarker, WrappedType, kInvalidValue>> {
-  using param_type = gpu::IdType<TypeMarker, WrappedType, kInvalidValue>;
-  static void Write(base::Pickle* m, const param_type& p) {
-    WriteParam(m, p.GetUnsafeValue());
-  }
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r) {
-    WrappedType value;
-    if (!ReadParam(m, iter, &value))
-      return false;
-    *r = param_type::FromUnsafeValue(value);
-    return true;
-  }
-  static void Log(const param_type& p, std::string* l) {
-    LogParam(p.GetUnsafeValue(), l);
-  }
-};
-
 }  // namespace IPC
 
 #endif  // GPU_IPC_COMMON_GPU_COMMAND_BUFFER_TRAITS_H_
diff --git a/ipc/BUILD.gn b/ipc/BUILD.gn
index cb7e4a2..92265228 100644
--- a/ipc/BUILD.gn
+++ b/ipc/BUILD.gn
@@ -7,8 +7,8 @@
 import("//ipc/features.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 import("//testing/test.gni")
-import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
 import("//third_party/protobuf/proto_library.gni")
+import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
 
 buildflag_header("ipc_buildflags") {
   header = "ipc_buildflags.h"
@@ -88,6 +88,7 @@
     ":mojom",
     ":native_handle_type_converters",
     ":param_traits",
+    "//base/util/type-safety",
     "//mojo/public/cpp/base",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/system",
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h
index a1b58cd..4e28d4b0 100644
--- a/ipc/ipc_message_utils.h
+++ b/ipc/ipc_message_utils.h
@@ -35,6 +35,7 @@
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
+#include "base/util/type-safety/id_type.h"
 #include "build/build_config.h"
 #include "ipc/ipc_message_start.h"
 #include "ipc/ipc_param_traits.h"
@@ -1032,6 +1033,28 @@
   }
 };
 
+// base/util types ParamTraits
+
+template <typename TypeMarker, typename WrappedType, WrappedType kInvalidValue>
+struct ParamTraits<util::IdType<TypeMarker, WrappedType, kInvalidValue>> {
+  using param_type = util::IdType<TypeMarker, WrappedType, kInvalidValue>;
+  static void Write(base::Pickle* m, const param_type& p) {
+    WriteParam(m, p.GetUnsafeValue());
+  }
+  static bool Read(const base::Pickle* m,
+                   base::PickleIterator* iter,
+                   param_type* r) {
+    WrappedType value;
+    if (!ReadParam(m, iter, &value))
+      return false;
+    *r = param_type::FromUnsafeValue(value);
+    return true;
+  }
+  static void Log(const param_type& p, std::string* l) {
+    LogParam(p.GetUnsafeValue(), l);
+  }
+};
+
 // IPC types ParamTraits -------------------------------------------------------
 
 // A ChannelHandle is basically a platform-inspecific wrapper around the
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 83f1bde..0e56d85 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -766,6 +766,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "KTU84P",
+              "device_type": "hammerhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -3356,6 +3399,50 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "KTU84Z",
+              "device_type": "flo",
+              "os": "Android"
+            }
+          ],
+          "expiration": 10800,
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -5969,6 +6056,50 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "LMY48I",
+              "device_type": "hammerhead",
+              "os": "Android"
+            }
+          ],
+          "expiration": 10800,
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -8770,6 +8901,50 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "LMY49B",
+              "device_type": "flo",
+              "os": "Android"
+            }
+          ],
+          "expiration": 10800,
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -11425,6 +11600,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "MMB29Q",
+              "device_type": "bullhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -14168,6 +14386,50 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "MRA58Z",
+              "device_type": "flo",
+              "os": "Android"
+            }
+          ],
+          "expiration": 10800,
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -18832,6 +19094,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "KTU84P",
+              "device_type": "hammerhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -21520,6 +21825,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "MMB29Q",
+              "device_type": "bullhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
diff --git a/testing/buildbot/chromium.chrome.json b/testing/buildbot/chromium.chrome.json
index 253f7e6..1753530 100644
--- a/testing/buildbot/chromium.chrome.json
+++ b/testing/buildbot/chromium.chrome.json
@@ -153,6 +153,23 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04",
+              "pool": "chrome.tests"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index cd60a9e..a61afa9 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -722,6 +722,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -2311,6 +2326,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json
index 195cb080..5be3748 100644
--- a/testing/buildbot/chromium.clang.json
+++ b/testing/buildbot/chromium.clang.json
@@ -91,6 +91,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -1435,6 +1450,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -3032,6 +3063,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -4557,6 +4604,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "KTU84P",
+              "device_type": "hammerhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -7224,6 +7314,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "MMB29Q",
+              "device_type": "bullhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -9776,6 +9909,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -11154,6 +11302,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -12729,6 +12895,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -14066,6 +14247,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -15421,6 +15617,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -16759,6 +16970,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -18114,6 +18340,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -19426,6 +19667,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -20425,6 +20676,19 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -21431,6 +21695,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -22421,6 +22695,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -23432,6 +23716,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -24443,6 +24737,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -25490,6 +25794,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -27071,6 +27391,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -28652,6 +28988,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -30197,6 +30549,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -31208,6 +31570,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -32219,6 +32591,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -33230,6 +33612,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -34241,6 +34633,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -35282,6 +35684,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -36634,6 +37051,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Windows-10"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index bfaf61d..b7baddf 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -56,6 +56,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -2421,6 +2431,16 @@
         "swarming": {
           "can_use_on_swarming_builders": false
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": false
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -5847,6 +5867,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -6526,6 +6561,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--enable-blink-features=HeapConcurrentMarking"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -7319,6 +7372,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--enable-blink-features=HeapUnifiedGarbageCollection"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -8103,6 +8174,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -8885,6 +8971,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "isolate_coverage_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -10468,6 +10570,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "isolate_coverage_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -12022,6 +12140,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -13661,6 +13794,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "isolate_coverage_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -19141,6 +19290,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -20802,6 +20966,23 @@
           ],
           "expiration": 21600
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-10.14.5"
+            }
+          ],
+          "expiration": 21600
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index fa43d56..b1c22ed 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -50,6 +50,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -807,6 +822,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -2163,6 +2193,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -3807,6 +3852,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -5405,6 +5465,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -6923,6 +6998,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "isolate_coverage_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -8737,6 +8828,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index 8f2bdac7..f6602a4 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -91,6 +91,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.10"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -1579,6 +1595,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.11"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -3067,6 +3099,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "8086:0a2e",
+              "os": "Mac-10.12.6"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -4600,6 +4648,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -6123,6 +6187,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -7615,6 +7695,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "gpu": "none",
+              "os": "Mac-10.13.6"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json
index 642300e..a3686805 100644
--- a/testing/buildbot/chromium.memory.json
+++ b/testing/buildbot/chromium.memory.json
@@ -142,6 +142,49 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "base_util_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "MMB29Q",
+              "device_type": "bullhead",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "blink_common_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -2754,6 +2797,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -4409,6 +4470,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -5823,6 +5899,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -7572,6 +7666,25 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -9351,6 +9464,25 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -10997,6 +11129,24 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -12509,6 +12659,19 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "args": [
+          "--test-launcher-print-test-stdio=always"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -13654,6 +13817,21 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json
index a185fa8..d9b8915 100644
--- a/testing/buildbot/chromium.win.json
+++ b/testing/buildbot/chromium.win.json
@@ -88,6 +88,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -1296,6 +1306,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -3077,6 +3103,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -4894,6 +4936,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
@@ -6079,6 +6131,16 @@
         "swarming": {
           "can_use_on_swarming_builders": true
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index d34bf44..e503a66 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -268,6 +268,10 @@
     "label": "//base:base_unittests",
     "type": "console_test_launcher",
   },
+  "base_util_unittests": {
+    "label": "//base/util:base_util_unittests",
+    "type": "console_test_launcher",
+  },
   "bdict_fuzzer": {
     "label": "//third_party/hunspell:bdict_fuzzer",
     "type": "fuzzer",
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 3191f61..ecffa93 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -2150,6 +2150,7 @@
     'chromium_gtests': {
       'angle_unittests': {},
       'base_unittests': {},
+      'base_util_unittests': {},
       'blink_common_unittests': {},
       'blink_heap_unittests': {},
       'blink_platform_unittests': {},
diff --git a/testing/buildbot/tryserver.chromium.linux.json b/testing/buildbot/tryserver.chromium.linux.json
index 354605b..b7ee03b 100644
--- a/testing/buildbot/tryserver.chromium.linux.json
+++ b/testing/buildbot/tryserver.chromium.linux.json
@@ -97,6 +97,22 @@
             }
           ]
         },
+        "test": "base_util_unittests"
+      },
+      {
+        "isolate_coverage_data": true,
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Ubuntu-14.04"
+            }
+          ]
+        },
         "test": "blink_common_unittests"
       },
       {
diff --git a/tools/ipc_fuzzer/fuzzer/BUILD.gn b/tools/ipc_fuzzer/fuzzer/BUILD.gn
index a1363d1..cb39a9a 100644
--- a/tools/ipc_fuzzer/fuzzer/BUILD.gn
+++ b/tools/ipc_fuzzer/fuzzer/BUILD.gn
@@ -19,6 +19,7 @@
     "rand_util.h",
   ]
   deps = [
+    "//base/util/type-safety",
     "//tools/ipc_fuzzer/message_lib:ipc_message_lib",
   ]
   public_deps = [
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
index 12d284e5..2ccefca 100644
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
@@ -15,6 +15,7 @@
 #include "base/stl_util.h"
 #include "base/strings/string_util.h"
 #include "base/unguessable_token.h"
+#include "base/util/type-safety/id_type.h"
 #include "base/values.h"
 #include "build/build_config.h"
 #include "ipc/ipc_message.h"
@@ -947,8 +948,8 @@
 };
 
 template <typename TypeMarker, typename WrappedType, WrappedType kInvalidValue>
-struct FuzzTraits<gpu::IdType<TypeMarker, WrappedType, kInvalidValue>> {
-  using param_type = gpu::IdType<TypeMarker, WrappedType, kInvalidValue>;
+struct FuzzTraits<util::IdType<TypeMarker, WrappedType, kInvalidValue>> {
+  using param_type = util::IdType<TypeMarker, WrappedType, kInvalidValue>;
   static bool Fuzz(param_type* id, Fuzzer* fuzzer) {
     WrappedType raw_value = id->GetUnsafeValue();
     if (!FuzzParam(&raw_value, fuzzer))
